nsc-react-component 4.0.17 → 4.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { AvatarProps } from "antd";
|
|
3
3
|
export default class NscAvatar extends React.PureComponent<AvatarProps, any> {
|
|
4
|
-
static Group: React.FC<import("antd/es/avatar
|
|
4
|
+
static Group: React.FC<import("antd/es/avatar").GroupProps>;
|
|
5
5
|
render(): React.ReactNode;
|
|
6
6
|
}
|
|
@@ -13,7 +13,7 @@ export interface NscModalPorps extends ModalProps {
|
|
|
13
13
|
dragable?: boolean;
|
|
14
14
|
}
|
|
15
15
|
export default class NscModal extends PureComponent<NscModalPorps & DrawerProps, any> {
|
|
16
|
-
static confirm: (props: import("antd/lib").ModalFuncProps) => {
|
|
16
|
+
static confirm: (props: import("antd/lib/modal").ModalFuncProps) => {
|
|
17
17
|
destroy: () => void;
|
|
18
18
|
update: (configUpdate: import("antd").ModalFuncProps | ((prevConfig: import("antd").ModalFuncProps) => import("antd").ModalFuncProps)) => void;
|
|
19
19
|
};
|
package/lib/base/upload/index.js
CHANGED
|
@@ -253,7 +253,7 @@ const withCustomUpload = Component => {
|
|
|
253
253
|
} = this.props;
|
|
254
254
|
const names = file.name.split(".");
|
|
255
255
|
const suffix = names[names.length - 1];
|
|
256
|
-
if (allowFileSuffix.indexOf(suffix) > -1 || allowFileSuffix.indexOf(suffix.toLowerCase()) > -1 || allowFileSuffix.indexOf(suffix.
|
|
256
|
+
if (allowFileSuffix.indexOf(suffix) > -1 || allowFileSuffix.indexOf(suffix.toLowerCase()) > -1 || allowFileSuffix.indexOf(suffix.toUpperCase()) > -1) {
|
|
257
257
|
return true;
|
|
258
258
|
}
|
|
259
259
|
return false;
|
|
@@ -464,4 +464,4 @@ const NscUpload = withCustomUpload(_Upload);
|
|
|
464
464
|
const NscUploadDragger = withCustomUpload(_Upload.Dragger);
|
|
465
465
|
NscUpload.Dragger = NscUploadDragger;
|
|
466
466
|
export default NscUpload;
|
|
467
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJwcmV2aWV3SW1hZ2UiLCJjYW5jbGVVcGxvYWQiLCJ3aXRoQ3VzdG9tVXBsb2FkIiwiQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsInVwbG9hZGluZ0tleSIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJuZXdWZXJzaW9uIiwicHJvcHMiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJyZXMiLCJwYXJ0U2l6ZSIsInVwbG9hZEtleUNhbGxiYWNrIiwia2V5Iiwic3RhdGUiLCJuZXdMaXN0IiwibWFwIiwiaXRlbSIsIm5hbWUiLCJmaWxlSWQiLCJ1aWQiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsInNldFN0YXRlIiwicmVxdWVzdENvbmZpZyIsInVwbG9hZEluZ1NpemUiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJvbkVycm9yIiwidXBsb2FkSW5nTGlzdCIsInN0YXR1cyIsInVybCIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJpIiwibGVuZ3RoIiwidGVtcCIsImZpbGVOYW1lIiwidHlwZSIsInNpemUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEZpbGVMaXN0Iiwic2V0RmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjb25jYXQiLCJjaGVja0xpc3QiLCJpbmRleE9mIiwic3BsaWNlIiwidXBsb2FkU2l6ZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJ0b0xvd2VyQ2FzZSIsInRvVXBlcnJjYXNlIiwiX3JlZiIsIm5ld0ZpbGUiLCJmaWxlcyIsImluZGV4Iiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX2V4dGVuZHMiLCJOc2NVcGxvYWQiLCJfVXBsb2FkIiwiTnNjVXBsb2FkRHJhZ2dlciIsIkRyYWdnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3VwbG9hZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50LCBwcmV2aWV3SW1hZ2UsY2FuY2xlVXBsb2FkIH0gPSBmaWxlO1xyXG5cclxuaW50ZXJmYWNlIElVcGxvYWRQcm9wcyBleHRlbmRzIFVwbG9hZFByb3BzIHtcclxuICBzbGljZVNpemU/OiBudW1iZXI7XHJcbiAgbWF4U2l6ZT86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbiAgY2hlY2tTYW1lRmlsZT86IGJvb2xlYW47XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBuZXdWZXJzaW9uPzogYm9vbGVhbjtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuY29uc3Qgd2l0aEN1c3RvbVVwbG9hZCA9IChDb21wb25lbnQpID0+IHtcclxuICAvLyDov5Tlm57kuIDkuKrnsbvnu4Tku7ZcclxuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElVcGxvYWRQcm9wcywgYW55PiB7XHJcbiAgICBzdGF0ZSA9IHtcclxuICAgICAgZmlsZUxpc3Q6IFtdLFxyXG4gICAgICB2aWV3SWQ6IFwiXCIsXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFtdLFxyXG4gICAgICBmaWxlTmFtZXM6IFtdLFxyXG4gICAgfTtcclxuICAgIHVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdXBsb2FkU2l6ZSA9IDA7XHJcbiAgICB1cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICBwcmV2aWV3VXJsID0ge307XHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCh0aGlzLnByb3BzLmZpbGVMaXN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICAgIGNvbnN0IHsgZmlsZUxpc3QsIGxpc3RUeXBlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdGaWxlTGlzdCA9IFtdO1xyXG4gICAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZUxpc3RTdG9yZTogWy4uLmZpbGVMaXN0XSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2xkTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbTogYW55ID0gb2xkTGlzdFtpXTtcclxuICAgICAgICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0uc3RhdHVzLFxyXG4gICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgICAgICAgdXJsOiBpdGVtLnVybCxcclxuICAgICAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgICAgIGlmIChsaXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmICFpdGVtLnVybCAmJiBpdGVtLmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgIGxldCByZXM6IGFueSA9IGF3YWl0IHByZXZpZXdJbWFnZShcclxuICAgICAgICAgICAgICAgIGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wLnVybCA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGZpbGVMaXN0OiBbLi4ubmV3RmlsZUxpc3RdLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QodGhpcy5wcm9wcy5maWxlTGlzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXRGaWxlTGlzdCgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgICB9XHJcbiAgICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBiZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KSB7XHJcbiAgICAgIGxldCB7XHJcbiAgICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgICBhbGxvd0ZpbGVTdWZmaXgsXHJcbiAgICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgICAgbWF4Q291bnQsXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3QsXHJcbiAgICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgICAgaWYgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGZpbGUpKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1heFNpemUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoYCR7ZmlsZS5uYW1lfeaWh+S7tuWkp+Wwj+i2hei/hyR7bWF4U2l6ZX1N77yM6K+36YeN5paw5LiK5Lyg77yBYCk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgICBjb25zdCBjaGVja0xpc3QgPSB0aGlzLnByb3BzLmZpbGVMaXN0ID8gZmlsZUxpc3RTdG9yZSA6IGZpbGVMaXN0O1xyXG4gICAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmZpbGVMaXN0XTtcclxuICAgICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICEoXHJcbiAgICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgICAoY2hlY2tTYW1lRmlsZSAmJiBmaWxlTmFtZXMuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCB0ZW1wID0ge1xyXG4gICAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgbmV3TGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAobWF4Q291bnQgJiYgbmV3TGlzdC5sZW5ndGggPiBtYXhDb3VudCkge1xyXG4gICAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIG5ld0xpc3Quc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSwoKT0+e1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnVwbG9hZFNpemUgPSBvZmlsZUxpc3QubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xIHx8IGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeC50b0xvd2VyQ2FzZSgpKSA+IC0xIHx8IGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeC50b1VwZXJyY2FzZSgpKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgICB9LCgpPT57XHJcbiAgICAgICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICBcclxuICAgIH1cclxuICAgIGFzeW5jIG9uQ29tcGxldGUoZmlsZXMpIHtcclxuICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gMDtcclxuICAgICAgdGhpcy51cGxvYWRTaXplID0gMDtcclxuICAgICAgdGhpcy51cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IHsgbmV3VmVyc2lvbiA9IHRydWUsIHJlcXVlc3RDb25maWcgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICAgIGZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbTogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgICBmaWxlcy5tYXAoYXN5bmMgKGZpbGUpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlLmZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgICAgICBuZXdGaWxlLnVybCA9IGZpbGUudXJsO1xyXG4gICAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgICBsZXQgdXJsID0gYC9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7XHJcbiAgICAgICAgICAgICAgICBmaWxlLmZpbGVJZFxyXG4gICAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgICAgbmV3RmlsZS51cmwgPSByZXF1ZXN0Q29uZmlnLnByZWZpeFxyXG4gICAgICAgICAgICAgICAgPyByZXF1ZXN0Q29uZmlnLnByZWZpeCArIHVybFxyXG4gICAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGZpbGVMaXN0OiBbLi4ubmV3TGlzdF0sXHJcbiAgICAgIH0sKCk9PntcclxuICAgICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xyXG4gICAgICBsZXQgdXBsb2FkaW5nS2V5ID0gJydcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIG9uQ29tcGxldGUsXHJcbiAgICAgICAgb25Qcm9jZXNzLFxyXG4gICAgICAgIHNsaWNlU2l6ZSxcclxuICAgICAgICBuZXdWZXJzaW9uID0gdHJ1ZSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgICAgb25Qcm9jZXNzICYmIG9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIH07XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB1cGxvYWQoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgICAgIHVwbG9hZEtleUNhbGxiYWNrOiAoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICB1cGxvYWRpbmdLZXkgPSBrZXlcclxuICAgICAgICAgICAgY29uc3Qge2ZpbGVMaXN0fSAgPSB0aGlzLnN0YXRlXHJcbiAgICAgICAgICAgIGxldCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAvL+mAmui/h+aWh+S7tuWQjeWIpOaWre+8jOS4iuS8oOaYr+aWh+S7tuWQjeaYr+WUr+S4gOeahFxyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgKCBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgICAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWQpXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdMaXN0LnB1c2goey4uLml0ZW0sIHVwbG9hZGluZ0tleTogaXRlbS51cGxvYWRpbmdLZXkgfHwgdXBsb2FkaW5nS2V5fSk7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBuZXdMaXN0LnB1c2goey4uLml0ZW19KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgICBsZXQgSW1nUmVzID0gbnVsbDtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5saXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmIG5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgSW1nUmVzID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCwgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBsb2FkSW5nTGlzdC5wdXNoKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICAgICBcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaXRlbS5uYW1lICE9PSBmaWxlLm5hbWUgfHxcclxuICAgICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBjYW5jbGVVcGxvYWQoaXRlbS51cGxvYWRpbmdLZXkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICAgIH0sKCk9PntcclxuICAgICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuICAgIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgICBsZXQge1xyXG4gICAgICAgIGZpbGVMaXN0LFxyXG4gICAgICAgIGZpbGVDYXJkLFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0ID0ge1xyXG4gICAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogdHJ1ZSxcclxuICAgICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgICBwcmV2aWV3SWNvbjogbnVsbCxcclxuICAgICAgICB9IGFzIGFueSxcclxuICAgICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgICAgXSk7XHJcbiAgICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnRcIiksIHtcclxuICAgICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25QcmV2aWV3KGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dSZW1vdmVJY29uICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHtmaWxlLnN0YXR1cyA9PSBcInVwbG9hZGluZ1wiICYmIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInByb2Nlc3NcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpbGU/LmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPENvbXBvbmVudFxyXG4gICAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17dGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcblxyXG5jb25zdCBOc2NVcGxvYWQ6IGFueSA9IHdpdGhDdXN0b21VcGxvYWQoVXBsb2FkKTtcclxuLy8gLy8g5L2/55SoIHdpdGhDdXN0b21VcGxvYWQg5bCB6KOFIFVwbG9hZC5EcmFnZ2VyIOe7hOS7tlxyXG5jb25zdCBOc2NVcGxvYWREcmFnZ2VyID0gd2l0aEN1c3RvbVVwbG9hZChVcGxvYWQuRHJhZ2dlcik7XHJcbk5zY1VwbG9hZC5EcmFnZ2VyID0gTnNjVXBsb2FkRHJhZ2dlcjtcclxuZXhwb3J0IGRlZmF1bHQgTnNjVXBsb2FkO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFP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
|
|
467
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJwcmV2aWV3SW1hZ2UiLCJjYW5jbGVVcGxvYWQiLCJ3aXRoQ3VzdG9tVXBsb2FkIiwiQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsInVwbG9hZGluZ0tleSIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJuZXdWZXJzaW9uIiwicHJvcHMiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJyZXMiLCJwYXJ0U2l6ZSIsInVwbG9hZEtleUNhbGxiYWNrIiwia2V5Iiwic3RhdGUiLCJuZXdMaXN0IiwibWFwIiwiaXRlbSIsIm5hbWUiLCJmaWxlSWQiLCJ1aWQiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsInNldFN0YXRlIiwicmVxdWVzdENvbmZpZyIsInVwbG9hZEluZ1NpemUiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJvbkVycm9yIiwidXBsb2FkSW5nTGlzdCIsInN0YXR1cyIsInVybCIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJpIiwibGVuZ3RoIiwidGVtcCIsImZpbGVOYW1lIiwidHlwZSIsInNpemUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEZpbGVMaXN0Iiwic2V0RmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjb25jYXQiLCJjaGVja0xpc3QiLCJpbmRleE9mIiwic3BsaWNlIiwidXBsb2FkU2l6ZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIiwiX3JlZiIsIm5ld0ZpbGUiLCJmaWxlcyIsImluZGV4Iiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX2V4dGVuZHMiLCJOc2NVcGxvYWQiLCJfVXBsb2FkIiwiTnNjVXBsb2FkRHJhZ2dlciIsIkRyYWdnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3VwbG9hZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50LCBwcmV2aWV3SW1hZ2UsY2FuY2xlVXBsb2FkIH0gPSBmaWxlO1xyXG5cclxuaW50ZXJmYWNlIElVcGxvYWRQcm9wcyBleHRlbmRzIFVwbG9hZFByb3BzIHtcclxuICBzbGljZVNpemU/OiBudW1iZXI7XHJcbiAgbWF4U2l6ZT86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbiAgY2hlY2tTYW1lRmlsZT86IGJvb2xlYW47XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBuZXdWZXJzaW9uPzogYm9vbGVhbjtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuY29uc3Qgd2l0aEN1c3RvbVVwbG9hZCA9IChDb21wb25lbnQpID0+IHtcclxuICAvLyDov5Tlm57kuIDkuKrnsbvnu4Tku7ZcclxuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElVcGxvYWRQcm9wcywgYW55PiB7XHJcbiAgICBzdGF0ZSA9IHtcclxuICAgICAgZmlsZUxpc3Q6IFtdLFxyXG4gICAgICB2aWV3SWQ6IFwiXCIsXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFtdLFxyXG4gICAgICBmaWxlTmFtZXM6IFtdLFxyXG4gICAgfTtcclxuICAgIHVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdXBsb2FkU2l6ZSA9IDA7XHJcbiAgICB1cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICBwcmV2aWV3VXJsID0ge307XHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCh0aGlzLnByb3BzLmZpbGVMaXN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICAgIGNvbnN0IHsgZmlsZUxpc3QsIGxpc3RUeXBlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdGaWxlTGlzdCA9IFtdO1xyXG4gICAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZUxpc3RTdG9yZTogWy4uLmZpbGVMaXN0XSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2xkTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbTogYW55ID0gb2xkTGlzdFtpXTtcclxuICAgICAgICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0uc3RhdHVzLFxyXG4gICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgICAgICAgdXJsOiBpdGVtLnVybCxcclxuICAgICAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgICAgIGlmIChsaXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmICFpdGVtLnVybCAmJiBpdGVtLmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgIGxldCByZXM6IGFueSA9IGF3YWl0IHByZXZpZXdJbWFnZShcclxuICAgICAgICAgICAgICAgIGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wLnVybCA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGZpbGVMaXN0OiBbLi4ubmV3RmlsZUxpc3RdLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QodGhpcy5wcm9wcy5maWxlTGlzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXRGaWxlTGlzdCgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgICB9XHJcbiAgICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBiZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KSB7XHJcbiAgICAgIGxldCB7XHJcbiAgICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgICBhbGxvd0ZpbGVTdWZmaXgsXHJcbiAgICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgICAgbWF4Q291bnQsXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3QsXHJcbiAgICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgICAgaWYgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGZpbGUpKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1heFNpemUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoYCR7ZmlsZS5uYW1lfeaWh+S7tuWkp+Wwj+i2hei/hyR7bWF4U2l6ZX1N77yM6K+36YeN5paw5LiK5Lyg77yBYCk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgICBjb25zdCBjaGVja0xpc3QgPSB0aGlzLnByb3BzLmZpbGVMaXN0ID8gZmlsZUxpc3RTdG9yZSA6IGZpbGVMaXN0O1xyXG4gICAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmZpbGVMaXN0XTtcclxuICAgICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICEoXHJcbiAgICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgICAoY2hlY2tTYW1lRmlsZSAmJiBmaWxlTmFtZXMuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCB0ZW1wID0ge1xyXG4gICAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgbmV3TGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAobWF4Q291bnQgJiYgbmV3TGlzdC5sZW5ndGggPiBtYXhDb3VudCkge1xyXG4gICAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIG5ld0xpc3Quc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSwoKT0+e1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnVwbG9hZFNpemUgPSBvZmlsZUxpc3QubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xIHx8IGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeC50b0xvd2VyQ2FzZSgpKSA+IC0xIHx8IGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeC50b1VwcGVyQ2FzZSgpKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgICB9LCgpPT57XHJcbiAgICAgICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICBcclxuICAgIH1cclxuICAgIGFzeW5jIG9uQ29tcGxldGUoZmlsZXMpIHtcclxuICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gMDtcclxuICAgICAgdGhpcy51cGxvYWRTaXplID0gMDtcclxuICAgICAgdGhpcy51cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IHsgbmV3VmVyc2lvbiA9IHRydWUsIHJlcXVlc3RDb25maWcgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICAgIGZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbTogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgICBmaWxlcy5tYXAoYXN5bmMgKGZpbGUpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlLmZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgICAgICBuZXdGaWxlLnVybCA9IGZpbGUudXJsO1xyXG4gICAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgICBsZXQgdXJsID0gYC9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7XHJcbiAgICAgICAgICAgICAgICBmaWxlLmZpbGVJZFxyXG4gICAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgICAgbmV3RmlsZS51cmwgPSByZXF1ZXN0Q29uZmlnLnByZWZpeFxyXG4gICAgICAgICAgICAgICAgPyByZXF1ZXN0Q29uZmlnLnByZWZpeCArIHVybFxyXG4gICAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGZpbGVMaXN0OiBbLi4ubmV3TGlzdF0sXHJcbiAgICAgIH0sKCk9PntcclxuICAgICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xyXG4gICAgICBsZXQgdXBsb2FkaW5nS2V5ID0gJydcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIG9uQ29tcGxldGUsXHJcbiAgICAgICAgb25Qcm9jZXNzLFxyXG4gICAgICAgIHNsaWNlU2l6ZSxcclxuICAgICAgICBuZXdWZXJzaW9uID0gdHJ1ZSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgICAgb25Qcm9jZXNzICYmIG9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIH07XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB1cGxvYWQoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgICAgIHVwbG9hZEtleUNhbGxiYWNrOiAoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICB1cGxvYWRpbmdLZXkgPSBrZXlcclxuICAgICAgICAgICAgY29uc3Qge2ZpbGVMaXN0fSAgPSB0aGlzLnN0YXRlXHJcbiAgICAgICAgICAgIGxldCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAvL+mAmui/h+aWh+S7tuWQjeWIpOaWre+8jOS4iuS8oOaYr+aWh+S7tuWQjeaYr+WUr+S4gOeahFxyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgKCBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgICAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWQpXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdMaXN0LnB1c2goey4uLml0ZW0sIHVwbG9hZGluZ0tleTogaXRlbS51cGxvYWRpbmdLZXkgfHwgdXBsb2FkaW5nS2V5fSk7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBuZXdMaXN0LnB1c2goey4uLml0ZW19KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgICBsZXQgSW1nUmVzID0gbnVsbDtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5saXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmIG5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgSW1nUmVzID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCwgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBsb2FkSW5nTGlzdC5wdXNoKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICAgICBcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaXRlbS5uYW1lICE9PSBmaWxlLm5hbWUgfHxcclxuICAgICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBjYW5jbGVVcGxvYWQoaXRlbS51cGxvYWRpbmdLZXkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICAgIH0sKCk9PntcclxuICAgICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuICAgIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgICBsZXQge1xyXG4gICAgICAgIGZpbGVMaXN0LFxyXG4gICAgICAgIGZpbGVDYXJkLFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0ID0ge1xyXG4gICAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogdHJ1ZSxcclxuICAgICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgICBwcmV2aWV3SWNvbjogbnVsbCxcclxuICAgICAgICB9IGFzIGFueSxcclxuICAgICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgICAgXSk7XHJcbiAgICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnRcIiksIHtcclxuICAgICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25QcmV2aWV3KGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dSZW1vdmVJY29uICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHtmaWxlLnN0YXR1cyA9PSBcInVwbG9hZGluZ1wiICYmIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInByb2Nlc3NcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpbGU/LmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPENvbXBvbmVudFxyXG4gICAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17dGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcblxyXG5jb25zdCBOc2NVcGxvYWQ6IGFueSA9IHdpdGhDdXN0b21VcGxvYWQoVXBsb2FkKTtcclxuLy8gLy8g5L2/55SoIHdpdGhDdXN0b21VcGxvYWQg5bCB6KOFIFVwbG9hZC5EcmFnZ2VyIOe7hOS7tlxyXG5jb25zdCBOc2NVcGxvYWREcmFnZ2VyID0gd2l0aEN1c3RvbVVwbG9hZChVcGxvYWQuRHJhZ2dlcik7XHJcbk5zY1VwbG9hZC5EcmFnZ2VyID0gTnNjVXBsb2FkRHJhZ2dlcjtcclxuZXhwb3J0IGRlZmF1bHQgTnNjVXBsb2FkO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFP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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","previewImage","cancleUpload","withCustomUpload","Component","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","uploadingKey","onComplete","onProcess","sliceSize","newVersion","props","onProgress","totalProgress","percent","res","partSize","uploadKeyCallback","key","state","newList","map","item","name","fileId","uid","push","_objectSpread","setState","requestConfig","uploadIngSize","ImgRes","code","data","attachId","onSuccess","listType","onError","uploadIngList","status","url","e","componentDidMount","convertFileList","list","newFileList","oldList","i","length","temp","fileName","type","size","componentDidUpdate","preProps","preState","JSON","stringify","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","indexOf","splice","uploadSize","names","split","suffix","toLowerCase","toUperrcase","_ref","newFile","files","index","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_extends","NscUpload","_Upload","NscUploadDragger","Dragger"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nconst { upload, download, previewDocument, previewImage,cancleUpload } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n [propsName: string]: any;\r\n}\r\nconst withCustomUpload = (Component) => {\r\n // 返回一个类组件\r\n return class extends React.PureComponent<IUploadProps, any> {\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n previewUrl = {};\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n this.setState(\r\n {\r\n fileListStore: [...fileList],\r\n },\r\n async () => {\r\n for (let i = 0; i < oldList.length; i++) {\r\n let item: any = oldList[i];\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\r\n if (listType == \"picture-card\" && !item.url && item.fileId) {\r\n let res: any = await previewImage(\r\n item.fileId,\r\n this.props.requestConfig\r\n );\r\n if (res.code == 200) {\r\n temp.url = res.data;\r\n }\r\n }\r\n newFileList.push(temp);\r\n }\r\n this.setState({\r\n fileList: [...newFileList],\r\n });\r\n }\r\n );\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n this.setState({ fileList: newList },()=>{\r\n onListChange && onListChange(newList);\r\n });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1 || allowFileSuffix.indexOf(suffix.toLowerCase()) > -1 || allowFileSuffix.indexOf(suffix.toUperrcase()) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n },()=>{\r\n onListChange && onListChange(fileList);\r\n });\r\n \r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion = true, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n },()=>{\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n });\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n let uploadingKey = ''\r\n const {\r\n onComplete,\r\n onProcess,\r\n sliceSize,\r\n newVersion = true,\r\n } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n uploadKeyCallback: (key) => {\r\n uploadingKey = key\r\n const {fileList} = this.state\r\n let newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n ( item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid)\r\n ) {\r\n newList.push({...item, uploadingKey: item.uploadingKey || uploadingKey});\r\n }else{\r\n newList.push({...item});\r\n }\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n })\r\n },\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n if (this.props.listType == \"picture-card\" && newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n \r\n });\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n // }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n // }\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }else{\r\n cancleUpload(item.uploadingKey)\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n },()=>{\r\n onListChange && onListChange(newList);\r\n });\r\n \r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"icon\")}>\r\n {showUploadList.showPreviewIcon &&\r\n file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon &&\r\n file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"process\")}>\r\n <div\r\n className={getLess(styles, \"percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n },\r\n onRemove: (file) => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n },\r\n onPreview: (file: any) => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Component\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n />\r\n </>\r\n );\r\n }\r\n };\r\n};\r\n\r\nconst NscUpload: any = withCustomUpload(Upload);\r\n// // 使用 withCustomUpload 封装 Upload.Dragger 组件\r\nconst NscUploadDragger = withCustomUpload(Upload.Dragger);\r\nNscUpload.Dragger = NscUploadDragger;\r\nexport default NscUpload;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","previewImage","cancleUpload","withCustomUpload","Component","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","uploadingKey","onComplete","onProcess","sliceSize","newVersion","props","onProgress","totalProgress","percent","res","partSize","uploadKeyCallback","key","state","newList","map","item","name","fileId","uid","push","_objectSpread","setState","requestConfig","uploadIngSize","ImgRes","code","data","attachId","onSuccess","listType","onError","uploadIngList","status","url","e","componentDidMount","convertFileList","list","newFileList","oldList","i","length","temp","fileName","type","size","componentDidUpdate","preProps","preState","JSON","stringify","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","indexOf","splice","uploadSize","names","split","suffix","toLowerCase","toUpperCase","_ref","newFile","files","index","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_extends","NscUpload","_Upload","NscUploadDragger","Dragger"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nconst { upload, download, previewDocument, previewImage,cancleUpload } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n [propsName: string]: any;\r\n}\r\nconst withCustomUpload = (Component) => {\r\n // 返回一个类组件\r\n return class extends React.PureComponent<IUploadProps, any> {\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n previewUrl = {};\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n this.setState(\r\n {\r\n fileListStore: [...fileList],\r\n },\r\n async () => {\r\n for (let i = 0; i < oldList.length; i++) {\r\n let item: any = oldList[i];\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\r\n if (listType == \"picture-card\" && !item.url && item.fileId) {\r\n let res: any = await previewImage(\r\n item.fileId,\r\n this.props.requestConfig\r\n );\r\n if (res.code == 200) {\r\n temp.url = res.data;\r\n }\r\n }\r\n newFileList.push(temp);\r\n }\r\n this.setState({\r\n fileList: [...newFileList],\r\n });\r\n }\r\n );\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n this.setState({ fileList: newList },()=>{\r\n onListChange && onListChange(newList);\r\n });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1 || allowFileSuffix.indexOf(suffix.toLowerCase()) > -1 || allowFileSuffix.indexOf(suffix.toUpperCase()) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n },()=>{\r\n onListChange && onListChange(fileList);\r\n });\r\n \r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion = true, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n },()=>{\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n });\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n let uploadingKey = ''\r\n const {\r\n onComplete,\r\n onProcess,\r\n sliceSize,\r\n newVersion = true,\r\n } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n uploadKeyCallback: (key) => {\r\n uploadingKey = key\r\n const {fileList} = this.state\r\n let newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n ( item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid)\r\n ) {\r\n newList.push({...item, uploadingKey: item.uploadingKey || uploadingKey});\r\n }else{\r\n newList.push({...item});\r\n }\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n })\r\n },\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n if (this.props.listType == \"picture-card\" && newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n \r\n });\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n // }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n // }\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }else{\r\n cancleUpload(item.uploadingKey)\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n },()=>{\r\n onListChange && onListChange(newList);\r\n });\r\n \r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"icon\")}>\r\n {showUploadList.showPreviewIcon &&\r\n file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon &&\r\n file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"process\")}>\r\n <div\r\n className={getLess(styles, \"percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n },\r\n onRemove: (file) => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n },\r\n onPreview: (file: any) => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Component\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n />\r\n </>\r\n );\r\n }\r\n };\r\n};\r\n\r\nconst NscUpload: any = withCustomUpload(Upload);\r\n// // 使用 withCustomUpload 封装 Upload.Dragger 组件\r\nconst NscUploadDragger = withCustomUpload(Upload.Dragger);\r\nNscUpload.Dragger = NscUploadDragger;\r\nexport default NscUpload;\r\n"],"mappings":"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"}
|