You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
681 lines
25 KiB
681 lines
25 KiB
(self["webpackChunk"] = self["webpackChunk"] || []).push([[20142],{
|
|
|
|
/***/ 10777:
|
|
/*!************************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/timeline/index.js + 5 modules ***!
|
|
\************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ timeline; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
var context = __webpack_require__(36355);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/timeline/TimelineItem.js
|
|
"use client";
|
|
|
|
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
var t = {};
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
}
|
|
return t;
|
|
};
|
|
|
|
|
|
|
|
const TimelineItem = _a => {
|
|
var {
|
|
prefixCls: customizePrefixCls,
|
|
className,
|
|
color = 'blue',
|
|
dot,
|
|
pending = false,
|
|
position /** Dead, but do not pass in <li {...omit()} */,
|
|
label,
|
|
children
|
|
} = _a,
|
|
restProps = __rest(_a, ["prefixCls", "className", "color", "dot", "pending", "position", "label", "children"]);
|
|
const {
|
|
getPrefixCls
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const prefixCls = getPrefixCls('timeline', customizePrefixCls);
|
|
const itemClassName = _classnames_2_5_1_classnames_default()(`${prefixCls}-item`, {
|
|
[`${prefixCls}-item-pending`]: pending
|
|
}, className);
|
|
const customColor = /blue|red|green|gray/.test(color || '') ? undefined : color;
|
|
const dotClassName = _classnames_2_5_1_classnames_default()(`${prefixCls}-item-head`, {
|
|
[`${prefixCls}-item-head-custom`]: !!dot,
|
|
[`${prefixCls}-item-head-${color}`]: !customColor
|
|
});
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("li", Object.assign({}, restProps, {
|
|
className: itemClassName
|
|
}), label && /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: `${prefixCls}-item-label`
|
|
}, label), /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: `${prefixCls}-item-tail`
|
|
}), /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: dotClassName,
|
|
style: {
|
|
borderColor: customColor,
|
|
color: customColor
|
|
}
|
|
}, dot), /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: `${prefixCls}-item-content`
|
|
}, children));
|
|
};
|
|
/* harmony default export */ var timeline_TimelineItem = (TimelineItem);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.5@@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
|
|
var toConsumableArray = __webpack_require__(12295);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.7@@ant-design/icons/es/icons/LoadingOutlined.js + 1 modules
|
|
var LoadingOutlined = __webpack_require__(5095);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/timeline/TimelineItemList.js
|
|
"use client";
|
|
|
|
|
|
var TimelineItemList_rest = undefined && undefined.__rest || function (s, e) {
|
|
var t = {};
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
}
|
|
return t;
|
|
};
|
|
|
|
|
|
|
|
|
|
const TimelineItemList = _a => {
|
|
var {
|
|
prefixCls,
|
|
className,
|
|
pending = false,
|
|
children,
|
|
items,
|
|
rootClassName,
|
|
reverse = false,
|
|
direction,
|
|
hashId,
|
|
pendingDot,
|
|
mode = ''
|
|
} = _a,
|
|
restProps = TimelineItemList_rest(_a, ["prefixCls", "className", "pending", "children", "items", "rootClassName", "reverse", "direction", "hashId", "pendingDot", "mode"]);
|
|
const getPositionCls = (position, idx) => {
|
|
if (mode === 'alternate') {
|
|
if (position === 'right') return `${prefixCls}-item-right`;
|
|
if (position === 'left') return `${prefixCls}-item-left`;
|
|
return idx % 2 === 0 ? `${prefixCls}-item-left` : `${prefixCls}-item-right`;
|
|
}
|
|
if (mode === 'left') return `${prefixCls}-item-left`;
|
|
if (mode === 'right') return `${prefixCls}-item-right`;
|
|
if (position === 'right') return `${prefixCls}-item-right`;
|
|
return '';
|
|
};
|
|
const mergedItems = (0,toConsumableArray/* default */.Z)(items || []);
|
|
const pendingNode = typeof pending === 'boolean' ? null : pending;
|
|
if (pending) {
|
|
mergedItems.push({
|
|
pending: !!pending,
|
|
dot: pendingDot || /*#__PURE__*/_react_17_0_2_react.createElement(LoadingOutlined/* default */.Z, null),
|
|
children: pendingNode
|
|
});
|
|
}
|
|
if (reverse) {
|
|
mergedItems.reverse();
|
|
}
|
|
const itemsCount = mergedItems.length;
|
|
const lastCls = `${prefixCls}-item-last`;
|
|
const itemsList = mergedItems.filter(item => !!item).map((item, idx) => {
|
|
var _a;
|
|
const pendingClass = idx === itemsCount - 2 ? lastCls : '';
|
|
const readyClass = idx === itemsCount - 1 ? lastCls : '';
|
|
const {
|
|
className: itemClassName
|
|
} = item,
|
|
itemProps = TimelineItemList_rest(item, ["className"]);
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(timeline_TimelineItem, Object.assign({}, itemProps, {
|
|
className: _classnames_2_5_1_classnames_default()([itemClassName, !reverse && !!pending ? pendingClass : readyClass, getPositionCls((_a = item === null || item === void 0 ? void 0 : item.position) !== null && _a !== void 0 ? _a : '', idx)]),
|
|
/* eslint-disable-next-line react/no-array-index-key */
|
|
key: (item === null || item === void 0 ? void 0 : item.key) || idx
|
|
}));
|
|
});
|
|
const hasLabelItem = mergedItems.some(item => !!(item === null || item === void 0 ? void 0 : item.label));
|
|
const classString = _classnames_2_5_1_classnames_default()(prefixCls, {
|
|
[`${prefixCls}-pending`]: !!pending,
|
|
[`${prefixCls}-reverse`]: !!reverse,
|
|
[`${prefixCls}-${mode}`]: !!mode && !hasLabelItem,
|
|
[`${prefixCls}-label`]: hasLabelItem,
|
|
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
}, className, rootClassName, hashId);
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("ul", Object.assign({}, restProps, {
|
|
className: classString
|
|
}), itemsList);
|
|
};
|
|
/* harmony default export */ var timeline_TimelineItemList = (TimelineItemList);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.39.3@rc-util/es/Children/toArray.js
|
|
var toArray = __webpack_require__(55401);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/timeline/useItems.js
|
|
"use client";
|
|
|
|
|
|
function useItems(items, children) {
|
|
if (items && Array.isArray(items)) return items;
|
|
return (0,toArray/* default */.Z)(children).map(ele => {
|
|
var _a, _b;
|
|
return Object.assign({
|
|
children: (_b = (_a = ele === null || ele === void 0 ? void 0 : ele.props) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : ''
|
|
}, ele.props);
|
|
});
|
|
}
|
|
/* harmony default export */ var timeline_useItems = (useItems);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/index.js
|
|
var style = __webpack_require__(17313);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js
|
|
var genComponentStyleHook = __webpack_require__(83116);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js
|
|
var statistic = __webpack_require__(37613);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/timeline/style/index.js
|
|
|
|
|
|
const genTimelineStyle = token => {
|
|
const {
|
|
componentCls
|
|
} = token;
|
|
return {
|
|
[componentCls]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), {
|
|
margin: 0,
|
|
padding: 0,
|
|
listStyle: 'none',
|
|
[`${componentCls}-item`]: {
|
|
position: 'relative',
|
|
margin: 0,
|
|
paddingBottom: token.itemPaddingBottom,
|
|
fontSize: token.fontSize,
|
|
listStyle: 'none',
|
|
'&-tail': {
|
|
position: 'absolute',
|
|
insetBlockStart: token.itemHeadSize,
|
|
insetInlineStart: (token.itemHeadSize - token.tailWidth) / 2,
|
|
height: `calc(100% - ${token.itemHeadSize}px)`,
|
|
borderInlineStart: `${token.tailWidth}px ${token.lineType} ${token.tailColor}`
|
|
},
|
|
'&-pending': {
|
|
[`${componentCls}-item-head`]: {
|
|
fontSize: token.fontSizeSM,
|
|
backgroundColor: 'transparent'
|
|
},
|
|
[`${componentCls}-item-tail`]: {
|
|
display: 'none'
|
|
}
|
|
},
|
|
'&-head': {
|
|
position: 'absolute',
|
|
width: token.itemHeadSize,
|
|
height: token.itemHeadSize,
|
|
backgroundColor: token.dotBg,
|
|
border: `${token.dotBorderWidth}px ${token.lineType} transparent`,
|
|
borderRadius: '50%',
|
|
'&-blue': {
|
|
color: token.colorPrimary,
|
|
borderColor: token.colorPrimary
|
|
},
|
|
'&-red': {
|
|
color: token.colorError,
|
|
borderColor: token.colorError
|
|
},
|
|
'&-green': {
|
|
color: token.colorSuccess,
|
|
borderColor: token.colorSuccess
|
|
},
|
|
'&-gray': {
|
|
color: token.colorTextDisabled,
|
|
borderColor: token.colorTextDisabled
|
|
}
|
|
},
|
|
'&-head-custom': {
|
|
position: 'absolute',
|
|
insetBlockStart: token.itemHeadSize / 2,
|
|
insetInlineStart: token.itemHeadSize / 2,
|
|
width: 'auto',
|
|
height: 'auto',
|
|
marginBlockStart: 0,
|
|
paddingBlock: token.customHeadPaddingVertical,
|
|
lineHeight: 1,
|
|
textAlign: 'center',
|
|
border: 0,
|
|
borderRadius: 0,
|
|
transform: `translate(-50%, -50%)`
|
|
},
|
|
'&-content': {
|
|
position: 'relative',
|
|
insetBlockStart: -(token.fontSize * token.lineHeight - token.fontSize) + token.lineWidth,
|
|
marginInlineStart: token.margin + token.itemHeadSize,
|
|
marginInlineEnd: 0,
|
|
marginBlockStart: 0,
|
|
marginBlockEnd: 0,
|
|
wordBreak: 'break-word'
|
|
},
|
|
'&-last': {
|
|
[`> ${componentCls}-item-tail`]: {
|
|
display: 'none'
|
|
},
|
|
[`> ${componentCls}-item-content`]: {
|
|
minHeight: token.controlHeightLG * 1.2
|
|
}
|
|
}
|
|
},
|
|
[`&${componentCls}-alternate,
|
|
&${componentCls}-right,
|
|
&${componentCls}-label`]: {
|
|
[`${componentCls}-item`]: {
|
|
'&-tail, &-head, &-head-custom': {
|
|
insetInlineStart: '50%'
|
|
},
|
|
'&-head': {
|
|
marginInlineStart: `-${token.marginXXS}px`,
|
|
'&-custom': {
|
|
marginInlineStart: token.tailWidth / 2
|
|
}
|
|
},
|
|
'&-left': {
|
|
[`${componentCls}-item-content`]: {
|
|
insetInlineStart: `calc(50% - ${token.marginXXS}px)`,
|
|
width: `calc(50% - ${token.marginSM}px)`,
|
|
textAlign: 'start'
|
|
}
|
|
},
|
|
'&-right': {
|
|
[`${componentCls}-item-content`]: {
|
|
width: `calc(50% - ${token.marginSM}px)`,
|
|
margin: 0,
|
|
textAlign: 'end'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
[`&${componentCls}-right`]: {
|
|
[`${componentCls}-item-right`]: {
|
|
[`${componentCls}-item-tail,
|
|
${componentCls}-item-head,
|
|
${componentCls}-item-head-custom`]: {
|
|
insetInlineStart: `calc(100% - ${(token.itemHeadSize + token.tailWidth) / 2}px)`
|
|
},
|
|
[`${componentCls}-item-content`]: {
|
|
width: `calc(100% - ${token.itemHeadSize + token.marginXS}px)`
|
|
}
|
|
}
|
|
},
|
|
[`&${componentCls}-pending
|
|
${componentCls}-item-last
|
|
${componentCls}-item-tail`]: {
|
|
display: 'block',
|
|
height: `calc(100% - ${token.margin}px)`,
|
|
borderInlineStart: `${token.tailWidth}px dotted ${token.tailColor}`
|
|
},
|
|
[`&${componentCls}-reverse
|
|
${componentCls}-item-last
|
|
${componentCls}-item-tail`]: {
|
|
display: 'none'
|
|
},
|
|
[`&${componentCls}-reverse ${componentCls}-item-pending`]: {
|
|
[`${componentCls}-item-tail`]: {
|
|
insetBlockStart: token.margin,
|
|
display: 'block',
|
|
height: `calc(100% - ${token.margin}px)`,
|
|
borderInlineStart: `${token.tailWidth}px dotted ${token.tailColor}`
|
|
},
|
|
[`${componentCls}-item-content`]: {
|
|
minHeight: token.controlHeightLG * 1.2
|
|
}
|
|
},
|
|
[`&${componentCls}-label`]: {
|
|
[`${componentCls}-item-label`]: {
|
|
position: 'absolute',
|
|
insetBlockStart: -(token.fontSize * token.lineHeight - token.fontSize) + token.tailWidth,
|
|
width: `calc(50% - ${token.marginSM}px)`,
|
|
textAlign: 'end'
|
|
},
|
|
[`${componentCls}-item-right`]: {
|
|
[`${componentCls}-item-label`]: {
|
|
insetInlineStart: `calc(50% + ${token.marginSM}px)`,
|
|
width: `calc(50% - ${token.marginSM}px)`,
|
|
textAlign: 'start'
|
|
}
|
|
}
|
|
},
|
|
// ====================== RTL =======================
|
|
'&-rtl': {
|
|
direction: 'rtl',
|
|
[`${componentCls}-item-head-custom`]: {
|
|
transform: `translate(50%, -50%)`
|
|
}
|
|
}
|
|
})
|
|
};
|
|
};
|
|
// ============================== Export ==============================
|
|
/* harmony default export */ var timeline_style = ((0,genComponentStyleHook/* default */.Z)('Timeline', token => {
|
|
const timeLineToken = (0,statistic/* merge */.TS)(token, {
|
|
itemHeadSize: 10,
|
|
customHeadPaddingVertical: token.paddingXXS,
|
|
paddingInlineEnd: 2
|
|
});
|
|
return [genTimelineStyle(timeLineToken)];
|
|
}, token => ({
|
|
tailColor: token.colorSplit,
|
|
tailWidth: token.lineWidthBold,
|
|
dotBorderWidth: token.wireframe ? token.lineWidthBold : token.lineWidth * 3,
|
|
dotBg: token.colorBgContainer,
|
|
itemPaddingBottom: token.padding * 1.25
|
|
})));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/timeline/Timeline.js
|
|
"use client";
|
|
|
|
var Timeline_rest = undefined && undefined.__rest || function (s, e) {
|
|
var t = {};
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
}
|
|
return t;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CSSINJS
|
|
|
|
const Timeline = props => {
|
|
const {
|
|
getPrefixCls,
|
|
direction,
|
|
timeline
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
children,
|
|
items,
|
|
className,
|
|
style
|
|
} = props,
|
|
restProps = Timeline_rest(props, ["prefixCls", "children", "items", "className", "style"]);
|
|
const prefixCls = getPrefixCls('timeline', customizePrefixCls);
|
|
// =================== Warning =====================
|
|
if (false) {}
|
|
// Style
|
|
const [wrapSSR, hashId] = timeline_style(prefixCls);
|
|
const mergedItems = timeline_useItems(items, children);
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(timeline_TimelineItemList, Object.assign({}, restProps, {
|
|
className: _classnames_2_5_1_classnames_default()(timeline === null || timeline === void 0 ? void 0 : timeline.className, className),
|
|
style: Object.assign(Object.assign({}, timeline === null || timeline === void 0 ? void 0 : timeline.style), style),
|
|
prefixCls: prefixCls,
|
|
direction: direction,
|
|
items: mergedItems,
|
|
hashId: hashId
|
|
})));
|
|
};
|
|
Timeline.Item = timeline_TimelineItem;
|
|
if (false) {}
|
|
/* harmony default export */ var timeline_Timeline = (Timeline);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/timeline/index.js
|
|
"use client";
|
|
|
|
|
|
/* harmony default export */ var timeline = (timeline_Timeline);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 24334:
|
|
/*!***********************************************************!*\
|
|
!*** ./node_modules/_js-base64@2.6.4@js-base64/base64.js ***!
|
|
\***********************************************************/
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
|
|
* base64.js
|
|
*
|
|
* Licensed under the BSD 3-Clause License.
|
|
* http://opensource.org/licenses/BSD-3-Clause
|
|
*
|
|
* References:
|
|
* http://en.wikipedia.org/wiki/Base64
|
|
*/
|
|
;(function (global, factory) {
|
|
true
|
|
? module.exports = factory(global)
|
|
: 0
|
|
}((
|
|
typeof self !== 'undefined' ? self
|
|
: typeof window !== 'undefined' ? window
|
|
: typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g
|
|
: this
|
|
), function(global) {
|
|
'use strict';
|
|
// existing version for noConflict()
|
|
global = global || {};
|
|
var _Base64 = global.Base64;
|
|
var version = "2.6.4";
|
|
// constants
|
|
var b64chars
|
|
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
var b64tab = function(bin) {
|
|
var t = {};
|
|
for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
|
|
return t;
|
|
}(b64chars);
|
|
var fromCharCode = String.fromCharCode;
|
|
// encoder stuff
|
|
var cb_utob = function(c) {
|
|
if (c.length < 2) {
|
|
var cc = c.charCodeAt(0);
|
|
return cc < 0x80 ? c
|
|
: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
|
|
+ fromCharCode(0x80 | (cc & 0x3f)))
|
|
: (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
|
|
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
|
|
+ fromCharCode(0x80 | ( cc & 0x3f)));
|
|
} else {
|
|
var cc = 0x10000
|
|
+ (c.charCodeAt(0) - 0xD800) * 0x400
|
|
+ (c.charCodeAt(1) - 0xDC00);
|
|
return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
|
|
+ fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
|
|
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
|
|
+ fromCharCode(0x80 | ( cc & 0x3f)));
|
|
}
|
|
};
|
|
var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
|
|
var utob = function(u) {
|
|
return u.replace(re_utob, cb_utob);
|
|
};
|
|
var cb_encode = function(ccc) {
|
|
var padlen = [0, 2, 1][ccc.length % 3],
|
|
ord = ccc.charCodeAt(0) << 16
|
|
| ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
|
|
| ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
|
|
chars = [
|
|
b64chars.charAt( ord >>> 18),
|
|
b64chars.charAt((ord >>> 12) & 63),
|
|
padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
|
|
padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
|
|
];
|
|
return chars.join('');
|
|
};
|
|
var btoa = global.btoa && typeof global.btoa == 'function'
|
|
? function(b){ return global.btoa(b) } : function(b) {
|
|
if (b.match(/[^\x00-\xFF]/)) throw new RangeError(
|
|
'The string contains invalid characters.'
|
|
);
|
|
return b.replace(/[\s\S]{1,3}/g, cb_encode);
|
|
};
|
|
var _encode = function(u) {
|
|
return btoa(utob(String(u)));
|
|
};
|
|
var mkUriSafe = function (b64) {
|
|
return b64.replace(/[+\/]/g, function(m0) {
|
|
return m0 == '+' ? '-' : '_';
|
|
}).replace(/=/g, '');
|
|
};
|
|
var encode = function(u, urisafe) {
|
|
return urisafe ? mkUriSafe(_encode(u)) : _encode(u);
|
|
};
|
|
var encodeURI = function(u) { return encode(u, true) };
|
|
var fromUint8Array;
|
|
if (global.Uint8Array) fromUint8Array = function(a, urisafe) {
|
|
// return btoa(fromCharCode.apply(null, a));
|
|
var b64 = '';
|
|
for (var i = 0, l = a.length; i < l; i += 3) {
|
|
var a0 = a[i], a1 = a[i+1], a2 = a[i+2];
|
|
var ord = a0 << 16 | a1 << 8 | a2;
|
|
b64 += b64chars.charAt( ord >>> 18)
|
|
+ b64chars.charAt((ord >>> 12) & 63)
|
|
+ ( typeof a1 != 'undefined'
|
|
? b64chars.charAt((ord >>> 6) & 63) : '=')
|
|
+ ( typeof a2 != 'undefined'
|
|
? b64chars.charAt( ord & 63) : '=');
|
|
}
|
|
return urisafe ? mkUriSafe(b64) : b64;
|
|
};
|
|
// decoder stuff
|
|
var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
|
|
var cb_btou = function(cccc) {
|
|
switch(cccc.length) {
|
|
case 4:
|
|
var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
|
|
| ((0x3f & cccc.charCodeAt(1)) << 12)
|
|
| ((0x3f & cccc.charCodeAt(2)) << 6)
|
|
| (0x3f & cccc.charCodeAt(3)),
|
|
offset = cp - 0x10000;
|
|
return (fromCharCode((offset >>> 10) + 0xD800)
|
|
+ fromCharCode((offset & 0x3FF) + 0xDC00));
|
|
case 3:
|
|
return fromCharCode(
|
|
((0x0f & cccc.charCodeAt(0)) << 12)
|
|
| ((0x3f & cccc.charCodeAt(1)) << 6)
|
|
| (0x3f & cccc.charCodeAt(2))
|
|
);
|
|
default:
|
|
return fromCharCode(
|
|
((0x1f & cccc.charCodeAt(0)) << 6)
|
|
| (0x3f & cccc.charCodeAt(1))
|
|
);
|
|
}
|
|
};
|
|
var btou = function(b) {
|
|
return b.replace(re_btou, cb_btou);
|
|
};
|
|
var cb_decode = function(cccc) {
|
|
var len = cccc.length,
|
|
padlen = len % 4,
|
|
n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
|
|
| (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
|
|
| (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
|
|
| (len > 3 ? b64tab[cccc.charAt(3)] : 0),
|
|
chars = [
|
|
fromCharCode( n >>> 16),
|
|
fromCharCode((n >>> 8) & 0xff),
|
|
fromCharCode( n & 0xff)
|
|
];
|
|
chars.length -= [0, 0, 2, 1][padlen];
|
|
return chars.join('');
|
|
};
|
|
var _atob = global.atob && typeof global.atob == 'function'
|
|
? function(a){ return global.atob(a) } : function(a){
|
|
return a.replace(/\S{1,4}/g, cb_decode);
|
|
};
|
|
var atob = function(a) {
|
|
return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, ''));
|
|
};
|
|
var _decode = function(a) { return btou(_atob(a)) };
|
|
var _fromURI = function(a) {
|
|
return String(a).replace(/[-_]/g, function(m0) {
|
|
return m0 == '-' ? '+' : '/'
|
|
}).replace(/[^A-Za-z0-9\+\/]/g, '');
|
|
};
|
|
var decode = function(a){
|
|
return _decode(_fromURI(a));
|
|
};
|
|
var toUint8Array;
|
|
if (global.Uint8Array) toUint8Array = function(a) {
|
|
return Uint8Array.from(atob(_fromURI(a)), function(c) {
|
|
return c.charCodeAt(0);
|
|
});
|
|
};
|
|
var noConflict = function() {
|
|
var Base64 = global.Base64;
|
|
global.Base64 = _Base64;
|
|
return Base64;
|
|
};
|
|
// export Base64
|
|
global.Base64 = {
|
|
VERSION: version,
|
|
atob: atob,
|
|
btoa: btoa,
|
|
fromBase64: decode,
|
|
toBase64: encode,
|
|
utob: utob,
|
|
encode: encode,
|
|
encodeURI: encodeURI,
|
|
btou: btou,
|
|
decode: decode,
|
|
noConflict: noConflict,
|
|
fromUint8Array: fromUint8Array,
|
|
toUint8Array: toUint8Array
|
|
};
|
|
// if ES5 is available, make Base64.extendString() available
|
|
if (typeof Object.defineProperty === 'function') {
|
|
var noEnum = function(v){
|
|
return {value:v,enumerable:false,writable:true,configurable:true};
|
|
};
|
|
global.Base64.extendString = function () {
|
|
Object.defineProperty(
|
|
String.prototype, 'fromBase64', noEnum(function () {
|
|
return decode(this)
|
|
}));
|
|
Object.defineProperty(
|
|
String.prototype, 'toBase64', noEnum(function (urisafe) {
|
|
return encode(this, urisafe)
|
|
}));
|
|
Object.defineProperty(
|
|
String.prototype, 'toBase64URI', noEnum(function () {
|
|
return encode(this, true)
|
|
}));
|
|
};
|
|
}
|
|
//
|
|
// export Base64 to the namespace
|
|
//
|
|
if (global['Meteor']) { // Meteor.js
|
|
Base64 = global.Base64;
|
|
}
|
|
// module.exports and AMD are mutually exclusive.
|
|
// module.exports has precedence.
|
|
if ( true && module.exports) {
|
|
module.exports.Base64 = global.Base64;
|
|
}
|
|
else if (true) {
|
|
// AMD. Register as an anonymous module.
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function(){ return global.Base64 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
}
|
|
// that's it!
|
|
return {Base64: global.Base64}
|
|
}));
|
|
|
|
|
|
/***/ })
|
|
|
|
}]); |