wargerm 0.6.11 → 0.6.13

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.
Files changed (101) hide show
  1. package/dist/index.esm.js +1505 -15
  2. package/dist/index.js +1513 -22
  3. package/dist/{components → src/components}/AutoScroll/index.d.ts +0 -0
  4. package/dist/{components → src/components}/Breadcrumb/index.d.ts +0 -0
  5. package/dist/{components → src/components}/Button/index.d.ts +0 -0
  6. package/dist/{components → src/components}/Calendar/const.d.ts +0 -0
  7. package/dist/{components → src/components}/Calendar/example/demo1.d.ts +0 -0
  8. package/dist/{components → src/components}/Calendar/example/demo2.d.ts +0 -0
  9. package/dist/{components → src/components}/Calendar/index.d.ts +0 -0
  10. package/dist/{components → src/components}/Calendar/utils.d.ts +0 -0
  11. package/dist/{components → src/components}/Card/example/demo1.d.ts +0 -0
  12. package/dist/{components → src/components}/Card/example/demo2.d.ts +0 -0
  13. package/dist/{components → src/components}/Card/example/demo3.d.ts +0 -0
  14. package/dist/{components → src/components}/Card/index.d.ts +0 -0
  15. package/dist/{components → src/components}/Cascader/index.d.ts +0 -0
  16. package/dist/{components → src/components}/Checkbox/index.d.ts +0 -0
  17. package/dist/{components → src/components}/CountUp/index.d.ts +0 -0
  18. package/dist/{components → src/components}/DatePicker/index.d.ts +0 -0
  19. package/dist/{components → src/components}/DragBox/index.d.ts +0 -0
  20. package/dist/{components → src/components}/IconFont/index.d.ts +0 -0
  21. package/dist/{components → src/components}/Input/index.d.ts +0 -0
  22. package/dist/{components → src/components}/InputNumber/index.d.ts +0 -0
  23. package/dist/{components → src/components}/Modal/dialog.d.ts +0 -0
  24. package/dist/{components → src/components}/Modal/index.d.ts +0 -0
  25. package/dist/{components → src/components}/ModalForm/index.d.ts +0 -0
  26. package/dist/{components → src/components}/ModalTips/dialog.d.ts +0 -0
  27. package/dist/{components → src/components}/ModalTips/index.d.ts +0 -0
  28. package/dist/{components → src/components}/NtTable/FrameBox/index.d.ts +0 -0
  29. package/dist/{components → src/components}/NtTable/index.d.ts +0 -0
  30. package/dist/{components → src/components}/Number/index.d.ts +0 -0
  31. package/dist/{components → src/components}/NumericInput/index.d.ts +0 -0
  32. package/dist/{components → src/components}/Radio/index.d.ts +0 -0
  33. package/dist/{components → src/components}/ReactECharts/RAF.d.ts +0 -0
  34. package/dist/{components → src/components}/ReactECharts/index.d.ts +0 -0
  35. package/dist/{components → src/components}/ReactECharts/theme.d.ts +0 -0
  36. package/dist/{components → src/components}/ReactECharts/useRAF.d.ts +0 -0
  37. package/dist/{components → src/components}/Select/index.d.ts +0 -0
  38. package/dist/{components → src/components}/Swiper/index.d.ts +0 -0
  39. package/dist/{components → src/components}/Switch/index.d.ts +0 -0
  40. package/dist/{components → src/components}/TabelCard/example/InputGroup.d.ts +0 -0
  41. package/dist/{components → src/components}/TabelCard/example/demo1.d.ts +0 -0
  42. package/dist/{components → src/components}/TabelCard/example/demo2.d.ts +0 -0
  43. package/dist/{components → src/components}/TabelCard/example/demo3.d.ts +0 -0
  44. package/dist/{components → src/components}/TabelCard/index.d.ts +0 -0
  45. package/dist/{components → src/components}/Table/FrameBox/index.d.ts +0 -0
  46. package/dist/{components → src/components}/Table/example/demo1.d.ts +0 -0
  47. package/dist/{components → src/components}/Table/example/demo2.d.ts +0 -0
  48. package/dist/{components → src/components}/Table/example/demo3.d.ts +0 -0
  49. package/dist/{components → src/components}/Table/example/demo4.d.ts +0 -0
  50. package/dist/{components → src/components}/Table/example/demo5.d.ts +0 -0
  51. package/dist/{components → src/components}/Table/index.d.ts +0 -0
  52. package/dist/{components → src/components}/TreeSelect/index.d.ts +0 -0
  53. package/dist/{components → src/components}/Upload/example/demo1.d.ts +0 -0
  54. package/dist/{components → src/components}/Upload/example/demo2.d.ts +0 -0
  55. package/dist/{components → src/components}/Upload/index.d.ts +0 -0
  56. package/dist/{components → src/components}/Video/example/VideoDemo/demo1.d.ts +0 -0
  57. package/dist/{components → src/components}/Video/example/VideoDemo/demo2.d.ts +0 -0
  58. package/dist/{components → src/components}/Video/example/VideoDemo/demo3.d.ts +0 -0
  59. package/dist/{components → src/components}/Video/example/VideoDemo/demo4.d.ts +0 -0
  60. package/dist/{components → src/components}/Video/example/VideoDemo/demo5.d.ts +0 -0
  61. package/dist/{components → src/components}/Video/example/VideoDemo/demo6.d.ts +0 -0
  62. package/dist/{components → src/components}/Video/example/VideoDemo/demo7.d.ts +0 -0
  63. package/dist/{components → src/components}/Video/example/VideoDemo/demo8.d.ts +0 -0
  64. package/dist/{components → src/components}/Video/example/VideoDemo/demo9.d.ts +0 -0
  65. package/dist/{components → src/components}/Video/index.d.ts +0 -0
  66. package/dist/{components → src/components}/VideoPlayer/example/demo1.d.ts +0 -0
  67. package/dist/{components → src/components}/VideoPlayer/example/demo2.d.ts +0 -0
  68. package/dist/{components → src/components}/VideoPlayer/index.d.ts +1 -0
  69. package/dist/{components → src/components}/VideoPlayer/xgplayer.d.ts +0 -0
  70. package/dist/{components → src/components}/WDatePicker/index.d.ts +0 -0
  71. package/dist/{components → src/components}/WForm/example/demo1.d.ts +0 -0
  72. package/dist/{components → src/components}/WForm/example/demo2.d.ts +0 -0
  73. package/dist/{components → src/components}/WForm/example/demo3.d.ts +0 -0
  74. package/dist/{components → src/components}/WForm/index.d.ts +0 -0
  75. package/dist/{components → src/components}/Wcharts/LineEcharts/index.d.ts +0 -0
  76. package/dist/{components → src/components}/Wcharts/WaterLevelCharts/index.d.ts +0 -0
  77. package/dist/{components → src/components}/WebsocketHeart/index.d.ts +0 -0
  78. package/dist/{components → src/components}/useEventEmitter/example/demo1.d.ts +0 -0
  79. package/dist/{components/whox → src/components/wTracing}/example/demo1.d.ts +0 -0
  80. package/dist/src/components/wTracing/index.d.ts +20 -0
  81. package/dist/src/components/wTracing/lib/base.d.ts +36 -0
  82. package/dist/src/components/wTracing/lib/err.d.ts +14 -0
  83. package/dist/src/components/wTracing/lib/event.d.ts +14 -0
  84. package/dist/src/components/wTracing/lib/http-request.d.ts +5 -0
  85. package/dist/src/components/wTracing/lib/performance.d.ts +12 -0
  86. package/dist/src/components/wTracing/lib/pv.d.ts +15 -0
  87. package/dist/src/components/wTracing/utils/constant.d.ts +7 -0
  88. package/dist/src/components/wTracing/utils/device.d.ts +12 -0
  89. package/dist/src/components/wTracing/utils/methods.d.ts +53 -0
  90. package/dist/src/components/wTracing/utils/session.d.ts +9 -0
  91. package/dist/{components/wmox → src/components/whox}/example/demo1.d.ts +0 -0
  92. package/dist/src/components/wmox/example/demo1.d.ts +2 -0
  93. package/dist/{hooks → src/hooks}/useClickOutside.d.ts +0 -0
  94. package/dist/{hooks → src/hooks}/useDebounce.d.ts +0 -0
  95. package/dist/{hooks → src/hooks}/useEventEmitter.d.ts +0 -0
  96. package/dist/{hooks → src/hooks}/whox.d.ts +0 -0
  97. package/dist/{hooks → src/hooks}/wmox.d.ts +0 -0
  98. package/dist/{index.d.ts → src/index.d.ts} +1 -0
  99. package/dist/{utils → src/utils}/event.d.ts +0 -0
  100. package/dist/{utils → src/utils}/index.d.ts +0 -0
  101. package/package.json +92 -92
package/dist/index.js CHANGED
@@ -804,6 +804,1483 @@ wmox.config = function (_ref) {
804
804
  run$1 = batch;
805
805
  };
806
806
 
807
+ /**
808
+ * 补全字符
809
+ * @param {*} num 初始值
810
+ * @param {*} len 需要补全的位数
811
+ * @param {*} placeholder 补全的值
812
+ * @returns 补全后的值
813
+ */
814
+ function pad(num, len) {
815
+ var placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
816
+ var str = String(num);
817
+
818
+ if (str.length < len) {
819
+ var result = str;
820
+
821
+ for (var i = 0; i < len - str.length; i += 1) {
822
+ result = placeholder + result;
823
+ }
824
+
825
+ return result;
826
+ }
827
+
828
+ return str;
829
+ }
830
+ /**
831
+ * 获取一个随机字符串(全局唯一标识符)
832
+ */
833
+
834
+
835
+ function uuid() {
836
+ var date = new Date(); // yyyy-MM-dd的16进制表示,7位数字
837
+
838
+ var hexDate = parseInt("".concat(date.getFullYear()).concat(pad(date.getMonth() + 1, 2)).concat(pad(date.getDate(), 2)), 10).toString(16); // hh-mm-ss-ms的16进制表示,最大也是7位
839
+
840
+ var hexTime = parseInt("".concat(pad(date.getHours(), 2)).concat(pad(date.getMinutes(), 2)).concat(pad(date.getSeconds(), 2)).concat(pad(date.getMilliseconds(), 3)), 10).toString(16); // 第8位数字表示后面的time字符串的长度
841
+
842
+ var guid = hexDate + hexTime.length + hexTime; // 补充随机数,补足32位的16进制数
843
+
844
+ while (guid.length < 32) {
845
+ guid += Math.floor(Math.random() * 16).toString(16);
846
+ } // 分为三段,前两段包含时间戳信息
847
+
848
+
849
+ return "".concat(guid.slice(0, 8), "-").concat(guid.slice(8, 16), "-").concat(guid.slice(16));
850
+ }
851
+ /**
852
+ * 获取cookie中目标name的值
853
+ * @param {String} name cookie名
854
+ * @returns
855
+ */
856
+
857
+
858
+ function getCookieByName(name) {
859
+ var result = document.cookie.match(new RegExp("".concat(name, "=([^;]+)(;|$)")));
860
+ return result ? result[1] : undefined;
861
+ }
862
+ /**
863
+ * 向下兼容发送信号的方法
864
+ */
865
+
866
+
867
+ var sendBeacon = navigator.sendBeacon ? function (url, data) {
868
+ if (data) navigator.sendBeacon(url, JSON.stringify(data));
869
+ } : function (url, data) {
870
+ // 传统方式传递参数
871
+ var beacon = new Image();
872
+ beacon.src = "".concat(url, "?v=").concat(encodeURIComponent(JSON.stringify(data)));
873
+ };
874
+
875
+ var arrayMap = Array.prototype.map || function polyfillMap(fn) {
876
+ var result = [];
877
+
878
+ for (var i = 0; i < this.length; i += 1) {
879
+ result.push(fn(this[i], i, this));
880
+ }
881
+
882
+ return result;
883
+ };
884
+ /**
885
+ * map方法
886
+ * @param {Array} arr 源数组
887
+ * @param {Function} fn 条件函数
888
+ * @returns
889
+ */
890
+
891
+
892
+ function map(arr, fn) {
893
+ return arrayMap.call(arr, fn);
894
+ }
895
+
896
+ var arrayFilter = Array.prototype.filter || function filterPolyfill(fn) {
897
+ var result = [];
898
+
899
+ for (var i = 0; i < this.length; i += 1) {
900
+ if (fn(this[i], i, this)) {
901
+ result.push(this[i]);
902
+ }
903
+ }
904
+
905
+ return result;
906
+ };
907
+ /**
908
+ * filter方法
909
+ * @param {Array} arr 源数组
910
+ * @param {Function} fn 条件函数
911
+ * @returns
912
+ */
913
+
914
+
915
+ function filter(arr, fn) {
916
+ return arrayFilter.call(arr, fn);
917
+ }
918
+ /**
919
+ * 可以理解为异步执行
920
+ * requestIdleCallback 是浏览器空闲时会自动执行内部函数
921
+ * requestAnimationFrame 是浏览器必须执行的
922
+ * 关于 requestIdleCallback 和 requestAnimationFrame 可以参考 https://www.cnblogs.com/cangqinglang/p/13877078.html
923
+ */
924
+
925
+
926
+ var nextTime = window.requestIdleCallback || window.requestAnimationFrame || function (callback) {
927
+ return setTimeout(callback, 17);
928
+ };
929
+
930
+ var DEVICE_KEY = '_warden_device_id'; // deviceKey - 固定
931
+
932
+ var SESSION_KEY = '_warden_session_id'; // sessionKey(一个站点只允许运行一个埋点程序) - 固定
933
+
934
+ var SURVIVIE_MILLI_SECONDS = 1800000; // session存活时长(30minutes) - 固定
935
+
936
+ var MAX_CACHE_LEN = 5; // 最大缓存数
937
+
938
+ var MAX_WAITING_TIME = 5000; // 最大等待时间
939
+
940
+ var _window = window,
941
+ screen = _window.screen;
942
+ var _document$documentEle = document.documentElement,
943
+ clientWidth = _document$documentEle.clientWidth,
944
+ clientHeight = _document$documentEle.clientHeight;
945
+ var width = screen.width,
946
+ height = screen.height,
947
+ colorDepth = screen.colorDepth,
948
+ pixelDepth = screen.pixelDepth;
949
+ var deviceId = getCookieByName(DEVICE_KEY);
950
+
951
+ if (!deviceId) {
952
+ deviceId = "t_".concat(uuid());
953
+ document.cookie = "".concat(DEVICE_KEY, "=").concat(deviceId, ";path=/;");
954
+ }
955
+
956
+ var device = {
957
+ clientHeight: clientHeight,
958
+ clientWidth: clientWidth,
959
+ colorDepth: colorDepth,
960
+ pixelDepth: pixelDepth,
961
+ deviceId: deviceId,
962
+ screenWidth: width,
963
+ screenHeight: height,
964
+ vendor: navigator.vendor,
965
+ platform: navigator.platform // 浏览器平台的环境,不是电脑系统的x64这样的(浏览器平台的环境可能是x32)
966
+
967
+ };
968
+
969
+ /**
970
+ * 会话控制,此会话只和具体的浏览器相关,与业务无关,和业务意义上的登录态没有任何关联,只是用于追踪同一个浏览器上访问页面的动作
971
+ */
972
+ /**
973
+ * 刷新会话存续期
974
+ */
975
+
976
+ function refreshSession() {
977
+ var id = getCookieByName(SESSION_KEY) || "s_".concat(uuid());
978
+ var expires = new Date(Date.now() + SURVIVIE_MILLI_SECONDS);
979
+ document.cookie = "".concat(SESSION_KEY, "=").concat(id, ";path=/;max-age=1800;expires=").concat(expires.toUTCString());
980
+ return id;
981
+ }
982
+ /**
983
+ * 获取sessionid
984
+ */
985
+
986
+
987
+ function getSessionId() {
988
+ return getCookieByName(SESSION_KEY) || refreshSession();
989
+ }
990
+
991
+ refreshSession(); // 初始化
992
+
993
+ var version = "0.6.13";
994
+
995
+ var pageId = uuid(); // 与一般业务上理解的sessionId做区分,此session与业务无关,单纯就是浏览器端和后端直接的联系
996
+
997
+ var sessionId = getSessionId();
998
+ var requestUrl = ''; // 服务请求地址
999
+
1000
+ var events = []; // 批次队列
1001
+
1002
+ var timer = null; // 定时发送定时器
1003
+
1004
+ var base = _objectSpread2(_objectSpread2({}, device), {}, {
1005
+ pageId: pageId,
1006
+ sessionId: sessionId,
1007
+ sdkVersion: version
1008
+ });
1009
+ /**
1010
+ * 初始化基础数据
1011
+ * @param {*} options 基础配置
1012
+ */
1013
+
1014
+
1015
+ function init() {
1016
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1017
+ var appName = options.appName,
1018
+ appCode = options.appCode,
1019
+ ext = options.ext;
1020
+ requestUrl = options.requestUrl;
1021
+ base.appName = appName;
1022
+ base.appCode = appCode;
1023
+ base.ext = ext;
1024
+ }
1025
+ /**
1026
+ * 记录需要发送的埋点数据
1027
+ * @param {*} e 需要发送的事件信息
1028
+ * @param {boolean} flush 是否立即发送
1029
+ */
1030
+
1031
+
1032
+ function emit(e) {
1033
+ var flush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1034
+ events = events.concat(e); // 追加到事件队列里
1035
+
1036
+ refreshSession();
1037
+ clearTimeout(timer); // 满足最大记录数,立即发送,否则定时发送(flush为true代表立即发送)
1038
+
1039
+ events.length >= MAX_CACHE_LEN || flush ? send() : timer = setTimeout(function () {
1040
+ send();
1041
+ }, MAX_WAITING_TIME);
1042
+ }
1043
+ /**
1044
+ * 发送埋点信息
1045
+ */
1046
+
1047
+
1048
+ function send() {
1049
+ if (events.length) {
1050
+ // 选取首部的部分数据来发送,performance会一次性采集大量数据追加到events中
1051
+ var sendEvents = events.slice(0, MAX_CACHE_LEN); // 需要发送的事件
1052
+
1053
+ events = events.slice(MAX_CACHE_LEN); // 剩下待发的事件
1054
+ var time = Date.now();
1055
+ sendBeacon(requestUrl, {
1056
+ baseInfo: _objectSpread2(_objectSpread2({}, base), {}, {
1057
+ sendTime: time
1058
+ }),
1059
+ eventInfo: map(sendEvents, function (e) {
1060
+ e.sendTime = time; // 设置发送时间
1061
+ // 补充type字段,将click、scroll、change、submit事件作为一类存储
1062
+
1063
+ if (e.eventType === 'click' || e.eventType === 'scroll' || e.eventType === 'submit' || e.eventType === 'change') {
1064
+ e.type = 'mix';
1065
+ return e;
1066
+ }
1067
+
1068
+ if (e.eventType === 'performance') {
1069
+ // 将性能进行分类,不同类型的性能数据差异较大,分开存放,资源、页面、请求
1070
+ switch (e.eventId) {
1071
+ case 'resource':
1072
+ e.type = 'resourcePerformance';
1073
+ break;
1074
+
1075
+ case 'page':
1076
+ e.type = 'pagePerformance';
1077
+ break;
1078
+
1079
+ case 'server':
1080
+ e.type = 'serverPerformance';
1081
+ break;
1082
+ }
1083
+
1084
+ return e;
1085
+ }
1086
+
1087
+ e.type = e.eventType; // 其他类型type同eventType
1088
+
1089
+ return e;
1090
+ })
1091
+ });
1092
+ if (events.length) nextTime(send); // 继续传输剩余内容,在下一个时间择机传输
1093
+ }
1094
+ }
1095
+ /**
1096
+ * 设置额外的 customerId
1097
+ * @param {*} id 需要设置的id
1098
+ */
1099
+
1100
+
1101
+ function setCustomerId(id) {
1102
+ base.customerId = id;
1103
+ }
1104
+ /**
1105
+ * 设置额外的 userUuid
1106
+ * @param {*} id 需要设置的id
1107
+ */
1108
+
1109
+
1110
+ function setUserUuid(id) {
1111
+ base.userUuid = id;
1112
+ }
1113
+ var base$1 = {
1114
+ init: init,
1115
+ emit: emit,
1116
+ pageId: pageId,
1117
+ setCustomerId: setCustomerId,
1118
+ setUserUuid: setUserUuid
1119
+ };
1120
+
1121
+ /*
1122
+ * @Author: lijin
1123
+ * @Date: 2022-12-06 20:08:10
1124
+ * @LastEditTime: 2022-12-13 16:01:12
1125
+ * @LastEditors: lijin
1126
+ * @Description:
1127
+ * @FilePath: \wargerm-components\src\components\wTracing\lib\pv.ts
1128
+ * 可以输入预定的版权声明、个性签名、空行等
1129
+ */
1130
+ var oldURL = window.location.href; // 最后一次的url
1131
+
1132
+ var historyLength = window.history.length; // 最后一次history栈的长度
1133
+
1134
+ /**
1135
+ * 发送数据
1136
+ * option 请求参数
1137
+ */
1138
+
1139
+ function tracePageView() {
1140
+ var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1141
+ var _option$url = option.url,
1142
+ url = _option$url === void 0 ? window.location.href : _option$url,
1143
+ _option$referer = option.referer,
1144
+ referer = _option$referer === void 0 ? oldURL : _option$referer,
1145
+ _option$actions = option.actions,
1146
+ actions = _option$actions === void 0 ? '' : _option$actions,
1147
+ params = option.params;
1148
+ var action = actions;
1149
+
1150
+ if (!action && window.history.length < 50) {
1151
+ action = historyLength === window.history.length ? 'back_forward' : 'navigation';
1152
+ historyLength = window.history.length;
1153
+ } // 如果option.title为空,则等待框架处理document.title,延迟17ms
1154
+ // 为什么是17ms? 一秒60Hz是基准,平均1Hz是17毫秒,只要出来了页面那就有 document.title
1155
+
1156
+
1157
+ setTimeout(function () {
1158
+ emit({
1159
+ eventType: 'pv',
1160
+ eventId: pageId,
1161
+ url: url,
1162
+ referer: referer,
1163
+ params: params,
1164
+ title: option.title || document.title,
1165
+ action: action,
1166
+ triggerTime: Date.now()
1167
+ });
1168
+ }, option.title ? 0 : 17);
1169
+ oldURL = url;
1170
+ historyLength = window.history.length;
1171
+ }
1172
+ /**
1173
+ * 路由Pv采集
1174
+ * pvHashtag 是否监听hash变化
1175
+ */
1176
+
1177
+
1178
+ function init$1() {
1179
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1180
+ var pvCore = options.pvCore,
1181
+ pvHashtag = options.pvHashtag;
1182
+ var referer = document.referrer; // 获取是从哪个页面跳转来的
1183
+
1184
+ if (!pvCore) return;
1185
+ var lastIsPop = false; // 最后一次触发路由变化是否为popState触发
1186
+
1187
+ tracePageView({
1188
+ url: oldURL,
1189
+ referer: referer
1190
+ });
1191
+
1192
+ if (window.history.pushState) {
1193
+ // 劫持history.pushState history.replaceState
1194
+ var push = window.history.pushState.bind(window.history);
1195
+
1196
+ window.history.pushState = function (data, title, url) {
1197
+ lastIsPop = false;
1198
+ var result = push(data, title, url);
1199
+ tracePageView({
1200
+ actions: 'navigation'
1201
+ });
1202
+ return result;
1203
+ };
1204
+
1205
+ var repalce = window.history.replaceState.bind(window.history);
1206
+
1207
+ window.history.replaceState = function (data, title, url) {
1208
+ lastIsPop = false;
1209
+ var result = repalce(data, title, url);
1210
+ tracePageView({
1211
+ actions: 'navigation'
1212
+ });
1213
+ return result;
1214
+ }; // hash变化也会触发popstate事件,而且会先触发popstate事件
1215
+ // 可以使用popstate来代替hashchange,如果支持History H5 Api
1216
+ // https://developer.mozilla.org/zh-CN/docs/Web/API/Window/popstate_event
1217
+
1218
+
1219
+ window.addEventListener('popstate', function () {
1220
+ if (window.location.hash !== '') {
1221
+ var oldHost = oldURL.indexOf('#') > 0 // 多页面情况下 history模式刷新还是在pv页面
1222
+ ? oldURL.slice(0, oldURL.indexOf('#')) : oldURL;
1223
+ if (window.location.href.slice(0, window.location.href.indexOf('#')) === oldHost && !pvHashtag) return;
1224
+ }
1225
+
1226
+ lastIsPop = true;
1227
+ tracePageView();
1228
+ });
1229
+ } // 监听hashchange
1230
+
1231
+
1232
+ window.addEventListener('hashchange', function () {
1233
+ if (pvHashtag && !lastIsPop) tracePageView();
1234
+ lastIsPop = false;
1235
+ });
1236
+ }
1237
+
1238
+ var pv = {
1239
+ init: init$1,
1240
+ tracePageView: tracePageView
1241
+ };
1242
+
1243
+ function setFullErrInfo(errorInfo) {
1244
+ var info = _objectSpread2(_objectSpread2({}, errorInfo), {}, {
1245
+ eventType: 'error',
1246
+ url: window.location.href,
1247
+ triggerTime: Date.now()
1248
+ });
1249
+
1250
+ emit(info);
1251
+ }
1252
+
1253
+ function parseStack(err) {
1254
+ var _err$stack = err.stack,
1255
+ stack = _err$stack === void 0 ? '' : _err$stack,
1256
+ _err$message = err.message,
1257
+ message = _err$message === void 0 ? '' : _err$message;
1258
+ var result = {
1259
+ errMessage: message,
1260
+ errStack: stack
1261
+ };
1262
+
1263
+ if (stack) {
1264
+ var rChromeCallStack = /^\s*at\s*([^(]+)\s*\((.+?):(\d+):(\d+)\)$/;
1265
+ var rMozlliaCallStack = /^\s*([^@]*)@(.+?):(\d+):(\d+)$/; // chrome中包含了message信息,将其去除,并去除后面的换行符
1266
+
1267
+ var callStackStr = stack.replace(new RegExp("^[\\w\\s:]*".concat(message, "\n")), '');
1268
+ var callStackFrameList = map(filter(callStackStr.split('\n'), function (item) {
1269
+ return item;
1270
+ }), function (str) {
1271
+ var chromeErrResult = str.match(rChromeCallStack);
1272
+
1273
+ if (chromeErrResult) {
1274
+ return {
1275
+ src: chromeErrResult[2],
1276
+ line: chromeErrResult[3],
1277
+ col: chromeErrResult[4] // 错误发生位置的列数
1278
+
1279
+ };
1280
+ }
1281
+
1282
+ var mozlliaErrResult = str.match(rMozlliaCallStack);
1283
+
1284
+ if (mozlliaErrResult) {
1285
+ return {
1286
+ src: mozlliaErrResult[2],
1287
+ line: mozlliaErrResult[3],
1288
+ col: mozlliaErrResult[4]
1289
+ };
1290
+ }
1291
+
1292
+ return {};
1293
+ });
1294
+ var item = callStackFrameList[0] || {};
1295
+ return _objectSpread2(_objectSpread2({}, result), item);
1296
+ }
1297
+
1298
+ return result;
1299
+ }
1300
+
1301
+ function parseError(e) {
1302
+ if (e instanceof Error) {
1303
+ var message = e.message,
1304
+ stack = e.stack,
1305
+ lineNumber = e.lineNumber,
1306
+ fileName = e.fileName,
1307
+ columnNumber = e.columnNumber;
1308
+
1309
+ if (fileName) {
1310
+ return {
1311
+ errMessage: message,
1312
+ errStack: stack,
1313
+ line: lineNumber,
1314
+ col: columnNumber,
1315
+ src: fileName
1316
+ };
1317
+ }
1318
+
1319
+ return parseStack(e);
1320
+ }
1321
+
1322
+ if (e.message) return parseStack(e);
1323
+ if (typeof e === 'string') return {
1324
+ errMessage: e
1325
+ };
1326
+ return {};
1327
+ }
1328
+
1329
+ function parseErrorEvent(event) {
1330
+ var target = event.target,
1331
+ type = event.type; // promise异常
1332
+ // 依旧使用code,不区分是否从promise中捕获的
1333
+
1334
+ if (type === 'unhandledrejection') return _objectSpread2({
1335
+ eventId: 'code'
1336
+ }, parseError(event.reason)); // html元素上发生的异常错误
1337
+
1338
+ if (target.nodeType === 1) {
1339
+ var result = {
1340
+ eventId: target.nodeName
1341
+ };
1342
+
1343
+ switch (target.nodeName.toLowerCase()) {
1344
+ case 'link':
1345
+ result.src = target.href;
1346
+ break;
1347
+
1348
+ default:
1349
+ result.src = target.currentSrc || target.src;
1350
+ }
1351
+
1352
+ return result;
1353
+ } // 代码异常
1354
+
1355
+
1356
+ if (event.error) {
1357
+ // chrome中的error对象没有fileName等属性,将event中的补充给error对象
1358
+ var e = event.error;
1359
+ e.fileName = e.filename || event.filename;
1360
+ e.columnNumber = e.colno || event.colno;
1361
+ e.lineNumber = e.lineno || event.lineno;
1362
+ return _objectSpread2({
1363
+ eventId: 'code'
1364
+ }, parseError(e));
1365
+ } // ie9版本,从全局的event对象中获取错误信息
1366
+
1367
+
1368
+ return {
1369
+ eventId: 'code',
1370
+ line: window.event.errorLine,
1371
+ col: window.event.errorCharacter,
1372
+ message: window.event.errorMessage,
1373
+ src: window.event.errorUrl
1374
+ };
1375
+ }
1376
+
1377
+ function init$2(_ref) {
1378
+ var errorCore = _ref.errorCore;
1379
+ if (!errorCore) return; // 捕获阶段可以获取资源加载错误,script.onError link.onError img.onError,无法知道具体状态
1380
+
1381
+ window.addEventListener('error', function (e) {
1382
+ setFullErrInfo(parseErrorEvent(e));
1383
+ }, true); // promise调用链未捕获异常
1384
+
1385
+ window.addEventListener('unhandledrejection', function (e) {
1386
+ setFullErrInfo(parseErrorEvent(e));
1387
+ }); // 劫持console.error
1388
+
1389
+ var consoleError = console.error;
1390
+
1391
+ console.error = function ce() {
1392
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1393
+ args[_key] = arguments[_key];
1394
+ }
1395
+
1396
+ args.forEach(function (e) {
1397
+ setFullErrInfo(_objectSpread2({
1398
+ eventId: 'code'
1399
+ }, parseError(e)));
1400
+ });
1401
+ consoleError.apply(console, args);
1402
+ };
1403
+ }
1404
+ /**
1405
+ * 主动触发错误上报
1406
+ * @param {*} eventId 事件ID
1407
+ * @param {*} message 错误信息
1408
+ * @param {*} options 自定义配置信息
1409
+ * @returns
1410
+ */
1411
+
1412
+
1413
+ function traceError(eventId, message) {
1414
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1415
+
1416
+ var customErrorRecord = _objectSpread2({
1417
+ eventId: eventId,
1418
+ errMessage: message
1419
+ }, options); // 针对自定义的异常上报,对params对特殊处理,将其序列化为string
1420
+
1421
+
1422
+ var params = customErrorRecord.params;
1423
+
1424
+ if (params) {
1425
+ customErrorRecord.params = params;
1426
+ }
1427
+
1428
+ return setFullErrInfo(customErrorRecord);
1429
+ }
1430
+
1431
+ var err = {
1432
+ init: init$2,
1433
+ traceError: traceError
1434
+ };
1435
+
1436
+ var supported = {
1437
+ performance: !!window.performance,
1438
+ getEntriesByType: !!(window.performance && performance.getEntriesByType),
1439
+ PerformanceObserver: 'PerformanceObserver' in window,
1440
+ MutationObserver: 'MutationObserver' in window,
1441
+ PerformanceNavigationTiming: 'PerformanceNavigationTiming' in window
1442
+ }; // 资源属性
1443
+
1444
+ var performanceEntryAttrs = {
1445
+ initiatorType: '',
1446
+ transferSize: 0,
1447
+ encodedBodySize: 0,
1448
+ decodedBodySize: 0,
1449
+ duration: 0,
1450
+ redirectStart: 0,
1451
+ redirectEnd: 0,
1452
+ startTime: 0,
1453
+ fetchStart: 0,
1454
+ domainLookupStart: 0,
1455
+ domainLookupEnd: 0,
1456
+ connectStart: 0,
1457
+ connectEnd: 0,
1458
+ requestStart: 0,
1459
+ responseStart: 0,
1460
+ responseEnd: 0,
1461
+ workerStart: 0
1462
+ };
1463
+ /**
1464
+ * 格式化性能记录,小数位数保留最多两位,等于0的字段不传输,标记为undefined
1465
+ */
1466
+
1467
+ function normalizePerformanceRecord(e) {
1468
+ Object.keys(e).forEach(function (p) {
1469
+ var v = e[p];
1470
+ if (typeof v === 'number') e[p] = v === 0 ? undefined : parseFloat(v.toFixed(2));
1471
+ });
1472
+ return e;
1473
+ }
1474
+ /**
1475
+ * 发送页面追踪资源加载性能数据
1476
+ * 支持getEntriesByType的情况下才追踪
1477
+ */
1478
+
1479
+
1480
+ function traceResourcePerformance(performance) {
1481
+ // 排除xmlhttprequest类型,服务器有响应便会记录,包括404的请求,转由http-request模块负责记录请求数据,区分请求状态
1482
+ // 同时也会排除一些其他类型,比如在引入一个script后会触发一次性能监控,它的类型是beacon,这一次的要排除
1483
+ var observerTypeList = ['img', 'script', 'link', 'audio', 'video', 'css'];
1484
+ var entries = performance.getEntriesByType('resource');
1485
+ var records = [];
1486
+ entries.forEach(function (entry) {
1487
+ var _entry$initiatorType = entry.initiatorType,
1488
+ initiatorType = _entry$initiatorType === void 0 ? '' : _entry$initiatorType; // initiatorType: 通过某种方式请求的资源,比如script,link
1489
+ // 只记录observerTypeList中列出的资源类型请求,不在列表中则跳过
1490
+
1491
+ if (observerTypeList.indexOf(initiatorType.toLowerCase()) < 0) return;
1492
+ var value = {};
1493
+ var attrKeys = Object.keys(performanceEntryAttrs);
1494
+ attrKeys.forEach(function (attr) {
1495
+ value[attr] = entry[attr];
1496
+ });
1497
+ records.push(normalizePerformanceRecord(_objectSpread2(_objectSpread2({}, value), {}, {
1498
+ eventType: 'performance',
1499
+ eventId: 'resource',
1500
+ src: entry.name,
1501
+ triggerTime: Date.now(),
1502
+ url: window.location.href
1503
+ })));
1504
+ });
1505
+ if (records.length) emit(records);
1506
+ return records;
1507
+ }
1508
+ /**
1509
+ * 监听异步资源加载信息
1510
+ */
1511
+
1512
+
1513
+ function observeAsyncInfo() {
1514
+ var observer = new PerformanceObserver(traceResourcePerformance);
1515
+ observer.observe({
1516
+ entryTypes: ['resource']
1517
+ });
1518
+ }
1519
+ /**
1520
+ * 监听异步插入的script、link、img,DOM更新操作记录
1521
+ */
1522
+
1523
+
1524
+ function observeSourceInsert() {
1525
+ var tags = ['img', 'script', 'link']; // 检测异步插入的script、link、img,会有一些延迟,一些连接建立、包体大小的数据会丢失,精度下降
1526
+ // MutationObserver DOM3 Events规范,是个异步监听,只有在全部DOM操作完成之后才会调用callback
1527
+
1528
+ var observer = new MutationObserver(function (mutationsList) {
1529
+ var _loop = function _loop(i) {
1530
+ var startTime = Date.now();
1531
+ var _mutationsList$i$adde = mutationsList[i].addedNodes,
1532
+ addedNodes = _mutationsList$i$adde === void 0 ? [] : _mutationsList$i$adde;
1533
+ var records = [];
1534
+ addedNodes.forEach(function (node) {
1535
+ var nodeName = node.nodeName;
1536
+
1537
+ if (tags.indexOf(nodeName.toLowerCase()) !== -1) {
1538
+ node.addEventListener('load', function () {
1539
+ var endTime = Date.now();
1540
+ records.push(normalizePerformanceRecord({
1541
+ // 没有其他的时间属性,只记录能获取到的
1542
+ eventType: 'performance',
1543
+ eventId: 'resource',
1544
+ src: node.src || node.href,
1545
+ duration: endTime - startTime,
1546
+ triggerTime: Date.now(),
1547
+ url: window.location.href
1548
+ }));
1549
+ });
1550
+ }
1551
+ });
1552
+ emit(records);
1553
+ };
1554
+
1555
+ for (var i = 0; i < mutationsList.length; i += 1) {
1556
+ _loop(i);
1557
+ }
1558
+ });
1559
+ observer.observe(window.document, {
1560
+ subtree: true,
1561
+ childList: true // 表示观察目标子节点的变化,比如添加或者删除目标子节点,不包括修改子节点以及子节点后代的变化
1562
+ // attributes: true, // 观察属性变动
1563
+ // attributeFilter: ['src', 'href'], // 要观察的属性
1564
+
1565
+ }); // observer.disconnect();
1566
+ }
1567
+ /**
1568
+ * 兼容-异步资源
1569
+ */
1570
+
1571
+
1572
+ function observeAsyncResource() {
1573
+ if (supported.PerformanceObserver) {
1574
+ observeAsyncInfo(); // 监听异步资源加载性能数据 chrome≥52
1575
+ } else if (supported.MutationObserver) {
1576
+ observeSourceInsert(); // 监听资源、DOM更新操作记录 chrome≥26 ie11
1577
+ }
1578
+ }
1579
+ /**
1580
+ * 页面资源加载性能数据
1581
+ */
1582
+
1583
+
1584
+ function observeResource() {
1585
+ traceResourcePerformance(window.performance);
1586
+ observeAsyncResource();
1587
+ }
1588
+ /**
1589
+ * 发送首次页面性能数据
1590
+ */
1591
+
1592
+
1593
+ function observeNavigationTiming() {
1594
+ var times = {};
1595
+ var _window = window,
1596
+ performance = _window.performance;
1597
+ var t = performance.timing;
1598
+ times.fmp = 0; // 首屏时间 (渲染节点增量最大的时间点)
1599
+
1600
+ if (supported.getEntriesByType) {
1601
+ var paintEntries = performance.getEntriesByType('paint');
1602
+ if (paintEntries.length) times.fmp = paintEntries[paintEntries.length - 1].startTime; // 优先使用 navigation v2 https://www.w3.org/TR/navigation-timing-2/
1603
+
1604
+ if (supported.PerformanceNavigationTiming) {
1605
+ var nt2Timing = performance.getEntriesByType('navigation')[0];
1606
+ if (nt2Timing) t = nt2Timing;
1607
+ }
1608
+ } // 从开始发起这个页面的访问开始算起,减去重定向跳转的时间,在performanceV2版本下才进行计算,v1版本的fetchStart是时间戳而不是相对于访问起始点的相对时间
1609
+
1610
+
1611
+ if (times.fmp && supported.PerformanceNavigationTiming) times.fmp -= t.fetchStart; // 白屏时间 (从请求开始到浏览器开始解析第一批HTML文档字节的时间差)
1612
+ // times.fpt = t.responseEnd - t.fetchStart;
1613
+
1614
+ times.tti = t.domInteractive - t.fetchStart; // 首次可交互时间
1615
+
1616
+ times.ready = t.domContentLoadedEventEnd - t.fetchStart; // HTML加载完成时间
1617
+
1618
+ times.loadon = t.loadEventStart - t.fetchStart; // 页面完全加载时间
1619
+
1620
+ times.firstbyte = t.responseStart - t.domainLookupStart; // 首包时间
1621
+
1622
+ times.dns = t.domainLookupEnd - t.domainLookupStart; // dns查询耗时
1623
+
1624
+ times.appcache = t.domainLookupStart - t.fetchStart; // dns缓存时间
1625
+
1626
+ times.tcp = t.connectEnd - t.connectStart; // tcp连接耗时
1627
+
1628
+ times.ttfb = t.responseStart - t.requestStart; // 请求响应耗时
1629
+
1630
+ times.trans = t.responseEnd - t.responseStart; // 内容传输耗时
1631
+
1632
+ times.dom = t.domInteractive - t.responseEnd; // dom解析耗时
1633
+
1634
+ times.res = t.loadEventStart - t.domContentLoadedEventEnd; // 同步资源加载耗时
1635
+
1636
+ times.ssllink = t.connectEnd - t.secureConnectionStart; // SSL安全连接耗时
1637
+
1638
+ times.redirect = t.redirectEnd - t.redirectStart; // 重定向时间
1639
+
1640
+ times.unloadTime = t.unloadEventEnd - t.unloadEventStart; // 上一个页面的卸载耗时
1641
+
1642
+ emit(normalizePerformanceRecord(_objectSpread2(_objectSpread2({}, times), {}, {
1643
+ eventType: 'performance',
1644
+ eventId: 'page',
1645
+ url: window.location.href
1646
+ })));
1647
+ }
1648
+
1649
+ function init$3(_ref) {
1650
+ var performanceFirstResource = _ref.performanceFirstResource,
1651
+ performanceCore = _ref.performanceCore;
1652
+ if (!performanceFirstResource && !performanceCore) return; // 初始化方法可能在onload事件之后才执行,此时不会触发load事件了,检查document.readyState属性来判断onload事件是否会被触发
1653
+
1654
+ if (document.readyState === 'complete') {
1655
+ if (supported.performance && performanceFirstResource) observeNavigationTiming();
1656
+ if (supported.getEntriesByType && performanceCore) observeResource();
1657
+ } else {
1658
+ window.addEventListener('load', function () {
1659
+ if (supported.performance && performanceFirstResource) observeNavigationTiming();
1660
+ if (supported.getEntriesByType && performanceCore) observeResource();
1661
+ });
1662
+ }
1663
+ }
1664
+ /**
1665
+ * 主动触发性能事件上报
1666
+ * @param {*} eventId 事件ID
1667
+ * @param {*} options 自定义配置信息
1668
+ */
1669
+
1670
+
1671
+ function tracePerformance(eventId, options) {
1672
+ var record = _objectSpread2(_objectSpread2({
1673
+ triggerTime: Date.now(),
1674
+ url: window.location.href
1675
+ }, options), {}, {
1676
+ eventId: eventId,
1677
+ eventType: 'performance'
1678
+ });
1679
+
1680
+ emit(normalizePerformanceRecord(record));
1681
+ }
1682
+
1683
+ var performance$1 = {
1684
+ init: init$3,
1685
+ tracePerformance: tracePerformance
1686
+ };
1687
+
1688
+ var RequestTemplate = /*#__PURE__*/_createClass(function RequestTemplate() {
1689
+ var _this = this;
1690
+
1691
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1692
+
1693
+ _classCallCheck(this, RequestTemplate);
1694
+
1695
+ var list = ['src', 'method', 'duration', 'responseStatus'];
1696
+ list.forEach(function (key) {
1697
+ _this[key] = config[key] || null;
1698
+ });
1699
+ });
1700
+ /**
1701
+ * fetch请求拦截
1702
+ */
1703
+
1704
+
1705
+ function interceptFetch(performanceServer, errorServer) {
1706
+ var nativeFetch = window.fetch;
1707
+
1708
+ if (nativeFetch) {
1709
+ window.fetch = function traceFetch(target) {
1710
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1711
+ var fetchStart = Date.now();
1712
+ var _options$method = options.method,
1713
+ method = _options$method === void 0 ? 'GET' : _options$method;
1714
+ var result = nativeFetch(target, options);
1715
+ result.then(function (res) {
1716
+ var url = res.url,
1717
+ status = res.status,
1718
+ statusText = res.statusText;
1719
+
1720
+ if (status === 200 || status === 304) {
1721
+ if (performanceServer) {
1722
+ performance$1.tracePerformance('server', {
1723
+ src: url,
1724
+ duration: Date.now() - fetchStart,
1725
+ responseStatus: status,
1726
+ params: method.toUpperCase() === 'POST' ? options.body : undefined
1727
+ });
1728
+ }
1729
+ } else if (errorServer) {
1730
+ err.traceError('server', statusText, {
1731
+ src: url,
1732
+ responseStatus: status,
1733
+ params: method.toUpperCase() === 'POST' ? options.body : undefined
1734
+ });
1735
+ }
1736
+ }, function (e) {
1737
+ // 无法发起请求,连接失败
1738
+ err.traceError('server', e.message, {
1739
+ src: target
1740
+ });
1741
+ });
1742
+ return result;
1743
+ };
1744
+ }
1745
+ }
1746
+ /**
1747
+ * ajax, axios请求拦截
1748
+ */
1749
+
1750
+
1751
+ function interceptAjax(performanceServer, errorServer) {
1752
+ var _XMLHttpRequest$proto = XMLHttpRequest.prototype,
1753
+ open = _XMLHttpRequest$proto.open,
1754
+ send = _XMLHttpRequest$proto.send;
1755
+
1756
+ var _config = new RequestTemplate(); // 劫持 open方法
1757
+
1758
+
1759
+ XMLHttpRequest.prototype.open = function openXHR(method, url, async) {
1760
+ _config.requestMethod = method;
1761
+ _config.src = url;
1762
+ return open.call(this, method, url, async);
1763
+ }; // 劫持 send方法
1764
+
1765
+
1766
+ XMLHttpRequest.prototype.send = function (body) {
1767
+ var _this2 = this;
1768
+
1769
+ // body 就是post方法携带的参数
1770
+ // readyState发生改变时触发,也就是请求状态改变时
1771
+ // readyState 会依次变为 2,3,4 也就是会触发三次这里
1772
+ this.addEventListener('readystatechange', function () {
1773
+ var readyState = _this2.readyState,
1774
+ status = _this2.status,
1775
+ _this2$responseURL = _this2.responseURL,
1776
+ responseURL = _this2$responseURL === void 0 ? _config.src : _this2$responseURL,
1777
+ responseText = _this2.responseText;
1778
+
1779
+ if (readyState === 4) {
1780
+ // 请求已完成,且响应已就绪
1781
+ if (status === 200 || status === 304) {
1782
+ if (performanceServer) {
1783
+ performance$1.tracePerformance('server', {
1784
+ src: responseURL,
1785
+ responseStatus: status,
1786
+ duration: Date.now() - _config.triggerTime,
1787
+ params: body ? body : undefined
1788
+ });
1789
+ }
1790
+ } else if (errorServer) {
1791
+ err.traceError('server', responseText, {
1792
+ src: responseURL,
1793
+ responseStatus: status,
1794
+ params: body ? body : undefined
1795
+ });
1796
+ }
1797
+ }
1798
+ });
1799
+ _config.triggerTime = Date.now();
1800
+ return send.call(this, body);
1801
+ };
1802
+ }
1803
+
1804
+ function init$4(_ref) {
1805
+ var performanceServer = _ref.performanceServer,
1806
+ errorServer = _ref.errorServer;
1807
+ if (!performanceServer && !errorServer) return;
1808
+ interceptAjax(performanceServer, errorServer);
1809
+ interceptFetch(performanceServer, errorServer);
1810
+ }
1811
+
1812
+ var http = {
1813
+ init: init$4
1814
+ };
1815
+
1816
+ var RequestTemplate$1 = /*#__PURE__*/_createClass(function RequestTemplate() {
1817
+ var _this = this;
1818
+
1819
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1820
+
1821
+ _classCallCheck(this, RequestTemplate);
1822
+
1823
+ var list = ['eventType', 'eventId', 'url', 'referer', 'action', 'params', 'millisecond'];
1824
+ list.forEach(function (key) {
1825
+ _this[key] = config[key] || null;
1826
+ });
1827
+ });
1828
+
1829
+ var RequestTemplateClick = /*#__PURE__*/_createClass(function RequestTemplateClick() {
1830
+ var _this2 = this;
1831
+
1832
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1833
+
1834
+ _classCallCheck(this, RequestTemplateClick);
1835
+
1836
+ var list = ['eventType', 'eventId', 'url', 'params', 'title', 'x', 'y'];
1837
+ list.forEach(function (key) {
1838
+ _this2[key] = config[key] || null;
1839
+ });
1840
+ });
1841
+ /**
1842
+ * 是否为简单的标签
1843
+ * 只包含下面的arr数组内的标签才是简单的标签
1844
+ */
1845
+
1846
+
1847
+ function isSimpleEl(children) {
1848
+ if (children.length > 0) {
1849
+ var arr = ['em', 'b', 'strong', 'span', 'img', 'i', 'code'];
1850
+ var a = children.filter(function (_ref) {
1851
+ var tagName = _ref.tagName;
1852
+ return arr.indexOf(tagName.toLowerCase()) >= 0;
1853
+ });
1854
+ return a.length === children.length;
1855
+ }
1856
+
1857
+ return true;
1858
+ }
1859
+ /**
1860
+ * 获取元素到最外层元素组成的数组
1861
+ */
1862
+
1863
+
1864
+ function getNodePath(node) {
1865
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1866
+ if (!node) return [];
1867
+ var _options$includeSelf = options.includeSelf,
1868
+ includeSelf = _options$includeSelf === void 0 ? true : _options$includeSelf,
1869
+ _options$order = options.order,
1870
+ order = _options$order === void 0 ? 'asc' : _options$order;
1871
+ var parent = includeSelf ? node : node.parentElement;
1872
+ var result;
1873
+
1874
+ while (parent) {
1875
+ result = order === 'asc' ? result.concat(parent) : [parent].concat(result);
1876
+ parent = parent.parentElement;
1877
+ }
1878
+
1879
+ return result;
1880
+ }
1881
+ /**
1882
+ * 获取元素的关系字符串
1883
+ * 例如两层div的关系会得到字符串: div>div
1884
+ */
1885
+
1886
+
1887
+ function getNodeXPath(node) {
1888
+ var curPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
1889
+ if (!node) return curPath;
1890
+ var parent = node.parentElement;
1891
+ var index = 0; // 这个index 暂时没什么用
1892
+
1893
+ var id = node.id;
1894
+ var tagName = node.tagName.toLowerCase();
1895
+ var path = curPath ? ">".concat(curPath) : '';
1896
+ var indexBrackets = index ? ".".concat(index) : '';
1897
+ if (!parent || parent === window || parent === document.documentElement || parent === document.body) return "".concat(tagName).concat(path);
1898
+ if (id) return "#".concat(id).concat(path); // 知道了id 就不需要获取上下级关系了(id是唯一的)
1899
+
1900
+ if (parent.children.length > 1) index = Array.prototype.indexOf.call(parent.children, node);
1901
+ return getNodeXPath(parent, "".concat(tagName).concat(indexBrackets).concat(path));
1902
+ }
1903
+ /**
1904
+ * 点击事件
1905
+ */
1906
+
1907
+
1908
+ function clickCollection() {
1909
+ document.addEventListener('click', function (e) {
1910
+ // 点击事件
1911
+ var _config = new RequestTemplateClick({
1912
+ eventType: 'click'
1913
+ });
1914
+ var path = e.path;
1915
+ if (path === undefined) path = e.target ? getNodePath(e.target) : []; // 获取被点击的元素到最外层元素组成的数组
1916
+
1917
+ var target = path.find(function (el) {
1918
+ return el.hasAttribute && (el.hasAttribute('data-warden-container') || el.hasAttribute('data-warden-event-id') || el.hasAttribute('data-warden-title'));
1919
+ });
1920
+ if (!target) return;
1921
+ _config.title = extractTitleByTarget(target);
1922
+ _config.eventId = extractDataByPath(path);
1923
+ _config.params = extractParamsByPath(path);
1924
+ _config.elementPath = getNodeXPath(target).slice(-128); // 长度限制128字符
1925
+
1926
+ var _e$target$getBounding = e.target.getBoundingClientRect(),
1927
+ top = _e$target$getBounding.top,
1928
+ left = _e$target$getBounding.left; // 元素距离html的距离
1929
+
1930
+
1931
+ var _document$documentEle = document.documentElement,
1932
+ scrollTop = _document$documentEle.scrollTop,
1933
+ scrollLeft = _document$documentEle.scrollLeft; // html距离上和左侧的距离(一般都是0)
1934
+
1935
+ var x = left + scrollLeft;
1936
+ var y = top + scrollTop;
1937
+ _config.x = x;
1938
+ _config.y = y;
1939
+ _config.triggerTime = Date.now(); // 点击时间
1940
+
1941
+ _config.url = window.location.href; // 当前页面的url
1942
+
1943
+ emit(_config);
1944
+ }, true);
1945
+ }
1946
+ /**
1947
+ * 加载 & 卸载事件
1948
+ */
1949
+
1950
+
1951
+ function dwellCollector(eventUnload) {
1952
+ var _config = new RequestTemplate$1({
1953
+ eventType: 'dwell'
1954
+ });
1955
+
1956
+ window.addEventListener('load', function () {
1957
+ // 加载完成事件
1958
+ _config.entryTime = Date.now();
1959
+ }, true);
1960
+ if (!eventUnload) return;
1961
+ window.addEventListener('beforeunload', function () {
1962
+ // 卸载事件
1963
+ _config.eventId = uuid();
1964
+ _config.url = window.location.href; // 当前页面 url
1965
+
1966
+ _config.referer = document.referrer; // 上级页面 url(从哪个页面跳过来的就是上级页面)
1967
+
1968
+ _config.triggerTime = Date.now(); // 卸载时间
1969
+
1970
+ _config.millisecond = Date.now() - _config.entryTime; // 停留多久
1971
+
1972
+ var mapping = {
1973
+ 0: 'navigate',
1974
+ 1: 'reload',
1975
+ 2: 'back_forward',
1976
+ 255: 'reserved' // 任何其他来源的加载
1977
+
1978
+ };
1979
+ var type = performance.navigation.type; // 表示加载来源, type为 0,1,2,255
1980
+
1981
+ _config.operateAction = mapping[type] || null;
1982
+ emit(_config, true);
1983
+ }, false);
1984
+ }
1985
+ /**
1986
+ * 提取数据事件ID
1987
+ */
1988
+
1989
+
1990
+ function extractDataByPath() {
1991
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1992
+
1993
+ /* data-warden-event-id */
1994
+ var hasIdEl = getElByAttr(list, 'data-warden-event-id');
1995
+ if (hasIdEl) return hasIdEl.getAttribute('data-warden-event-id');
1996
+ /* title */
1997
+
1998
+ var hasTitleEl = getElByAttr(list, 'title');
1999
+ if (hasTitleEl) return hasTitleEl.getAttribute('title');
2000
+ /* container */
2001
+
2002
+ var container = getElByAttr(list, 'data-warden-container');
2003
+
2004
+ if (container) {
2005
+ if (container.getAttribute('data-warden-event-id') || container.getAttribute('title')) {
2006
+ return container.getAttribute('data-warden-event-id') || container.getAttribute('title');
2007
+ }
2008
+
2009
+ var id2 = container.getAttribute('data-warden-container');
2010
+ if (typeof id2 === 'string' && id2) return id2;
2011
+ }
2012
+
2013
+ return list[0].tagName.toLowerCase();
2014
+ }
2015
+ /**
2016
+ * 提取数据参数
2017
+ * 如果本身节点没有埋点属性的话会用上一层埋点属性
2018
+ */
2019
+
2020
+
2021
+ function extractParamsByPath() {
2022
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
2023
+ var regex = /^data-warden-/;
2024
+ var target;
2025
+ var targetIndex;
2026
+
2027
+ try {
2028
+ // 遍历从子节点到body下最大的节点,遍历他们的属性,直到某个节点的属性能通过校验的节点
2029
+ list.forEach(function (el, index) {
2030
+ var attributes = el && el.attributes && Array.from(el.attributes) || [];
2031
+ target = attributes.find(function (item) {
2032
+ return item.nodeName.match(regex) ? item.nodeName.match(regex) : item.nodeName.indexOf('data-warden-container') !== -1;
2033
+ });
2034
+
2035
+ if (target) {
2036
+ targetIndex = index;
2037
+ throw Error();
2038
+ }
2039
+ });
2040
+ } catch (error) {}
2041
+
2042
+ if (targetIndex < 0) return {};
2043
+ var container = list[targetIndex];
2044
+ var attrList = Array.from(container.attributes) || [];
2045
+ var params = {};
2046
+ attrList.forEach(function (item) {
2047
+ // 过滤多结构属性 如 data-warden-event-id width
2048
+ // if(item.nodeName.split("-").length != 3 )return;
2049
+ // 过滤非标准命名 如 data-v-fbcf7454
2050
+ if (item.nodeName.indexOf('data-warden') < 0) return;
2051
+ var key = item.nodeName.replace(regex, '');
2052
+ params[key] = item.nodeValue;
2053
+ }); // 过滤sdk自定义属性
2054
+
2055
+ var defaultKey = ['container', 'title', 'event-id'];
2056
+ defaultKey.forEach(function (item) {
2057
+ delete params[item];
2058
+ });
2059
+ return params;
2060
+ }
2061
+ /**
2062
+ * 根据属性查找元素
2063
+ */
2064
+
2065
+
2066
+ function getElByAttr(list, key) {
2067
+ return list.find(function (item) {
2068
+ return item.hasAttribute && item.hasAttribute(key);
2069
+ });
2070
+ }
2071
+ /**
2072
+ * 获取title属性(data-warden-title 或者 title)
2073
+ */
2074
+
2075
+
2076
+ function extractTitleByTarget() {
2077
+ var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2078
+ var selfTitle = getNodeTitle(target);
2079
+ if (selfTitle) return selfTitle;
2080
+ var container = target.parent; // 向上找container
2081
+
2082
+ while (container && container !== document.body) {
2083
+ if (container.hasAttribute('data-warden-container')) break;
2084
+ container = container.parent;
2085
+ }
2086
+
2087
+ var superTitle = getNodeTitle(container);
2088
+ if (superTitle) return superTitle;
2089
+ var tagName = target.tagName; // 没有container,没有任何title标记的情况下
2090
+
2091
+ return !target.hasChildNodes() || tagName.toLowerCase() === 'svg' ? handleLeafNode(target) : handleNoLeafNode(target);
2092
+ }
2093
+ /**
2094
+ * 获取元素的 data-warden-title属性或者 title属性
2095
+ */
2096
+
2097
+
2098
+ function getNodeTitle(node) {
2099
+ if (node) {
2100
+ return node.hasAttribute('data-warden-title') ? node.getAttribute('data-warden-title') : node.title;
2101
+ }
2102
+
2103
+ return null;
2104
+ }
2105
+ /**
2106
+ * 点击叶子元素(也就是不包含其他HTML元素,也不能有文本内容)
2107
+ */
2108
+
2109
+
2110
+ function handleLeafNode(target) {
2111
+ var tagName = target.tagName,
2112
+ textContent = target.textContent;
2113
+ if (tagName === 'IMG') return target.getAttribute('alt') || null;
2114
+
2115
+ if (tagName === 'svg') {
2116
+ var a = _toConsumableArray(target.children).find(function (item) {
2117
+ return item.tagName === 'use';
2118
+ });
2119
+
2120
+ if (a) return a.getAttribute('xlink:href') || null;
2121
+ }
2122
+
2123
+ return textContent;
2124
+ }
2125
+ /**
2126
+ * 点击非叶子元素
2127
+ */
2128
+
2129
+
2130
+ function handleNoLeafNode(target) {
2131
+ var tagName = target.tagName,
2132
+ textContent = target.textContent;
2133
+
2134
+ if (tagName === 'A') {
2135
+ var res = isSimpleEl(_toConsumableArray(target.children));
2136
+ return res ? textContent : target.getAttribute('href') || null;
2137
+ }
2138
+
2139
+ if (tagName === 'BUTTON') {
2140
+ var name = target.getAttribute('name');
2141
+
2142
+ var _res = isSimpleEl(_toConsumableArray(target.children));
2143
+
2144
+ return name || _res ? textContent : target.getAttribute('href') || null;
2145
+ }
2146
+
2147
+ var _filter = _toConsumableArray(target.children).filter(function () {
2148
+ return target.hasChildNodes();
2149
+ }),
2150
+ length = _filter.length;
2151
+
2152
+ return length > 0 ? null : textContent;
2153
+ }
2154
+
2155
+ function init$5(_ref2) {
2156
+ var eventCore = _ref2.eventCore,
2157
+ eventUnload = _ref2.eventUnload;
2158
+ if (!eventCore && !eventUnload) return;
2159
+ if (eventCore) clickCollection();
2160
+ dwellCollector(eventUnload);
2161
+ }
2162
+ /**
2163
+ * 主动触发事件上报
2164
+ * @param {*} eventId 事件ID
2165
+ * @param {*} title 事件标题
2166
+ * @param {*} params 自定义配置信息
2167
+ * @returns
2168
+ */
2169
+
2170
+
2171
+ function traceCustomEvent(eventId, title) {
2172
+ var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
2173
+ emit({
2174
+ eventId: eventId,
2175
+ title: title,
2176
+ params: params,
2177
+ eventType: 'custom',
2178
+ triggerTime: Date.now()
2179
+ });
2180
+ }
2181
+
2182
+ var event = {
2183
+ init: init$5,
2184
+ traceCustomEvent: traceCustomEvent
2185
+ };
2186
+
2187
+ var methods = {
2188
+ setCustomerId: base$1.setCustomerId,
2189
+ setUserUuid: base$1.setUserUuid,
2190
+ traceError: err.traceError,
2191
+ tracePerformance: performance$1.tracePerformance,
2192
+ traceCustomEvent: event.traceCustomEvent,
2193
+ tracePageView: pv.tracePageView
2194
+ };
2195
+
2196
+ var init$6 = function init() {
2197
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2198
+ var _options = {
2199
+ requestUrl: '',
2200
+ appName: '',
2201
+ appCode: '',
2202
+ appVersion: '',
2203
+ ext: '',
2204
+ debug: false,
2205
+ pvCore: false,
2206
+ pvHashtag: false,
2207
+ performanceCore: false,
2208
+ performanceFirstResource: false,
2209
+ performanceServer: false,
2210
+ errorCore: false,
2211
+ errorServer: false,
2212
+ eventCore: false,
2213
+ eventUnload: false // 页面卸载-是否在页面卸载时采集页面状态信息
2214
+
2215
+ }; // 将传过来的参数转换
2216
+
2217
+ transitionOptions(_options, options);
2218
+ base$1.init(_options);
2219
+ event.init(_options);
2220
+ pv.init(_options);
2221
+ http.init(_options);
2222
+ err.init(_options);
2223
+ performance$1.init(_options);
2224
+ };
2225
+
2226
+ var transitionOptions = function transitionOptions(_options, options) {
2227
+ var requestUrl = options.requestUrl,
2228
+ appName = options.appName,
2229
+ appCode = options.appCode,
2230
+ appVersion = options.appVersion,
2231
+ ext = options.ext,
2232
+ debug = options.debug,
2233
+ _options$pv = options.pv,
2234
+ pv = _options$pv === void 0 ? {} : _options$pv,
2235
+ _options$performance = options.performance,
2236
+ performance = _options$performance === void 0 ? {} : _options$performance,
2237
+ _options$error = options.error,
2238
+ error = _options$error === void 0 ? {} : _options$error,
2239
+ _options$event = options.event,
2240
+ event = _options$event === void 0 ? {} : _options$event;
2241
+ if (!requestUrl) throw Error('请传入requestUrl参数');
2242
+ if (!appName) throw Error('请传入appName参数');
2243
+ _options.requestUrl = requestUrl;
2244
+ _options.appName = appName;
2245
+ _options.appCode = appCode;
2246
+ _options.appVersion = appVersion;
2247
+ _options.ext = ext;
2248
+ _options.debug = debug;
2249
+
2250
+ if (typeof pv === 'boolean') {
2251
+ _options.pvCore = _options.pvHashtag = pv;
2252
+ } else {
2253
+ _options.pvCore = Boolean(pv.core);
2254
+ _options.pvHashtag = Boolean(pv.server);
2255
+ }
2256
+
2257
+ if (typeof performance === 'boolean') {
2258
+ _options.performanceCore = _options.performanceFirstResource = _options.performanceServer = performance;
2259
+ } else {
2260
+ _options.performanceCore = Boolean(performance.core);
2261
+ _options.performanceFirstResource = Boolean(performance.firstResource);
2262
+ _options.performanceServer = Boolean(performance.server);
2263
+ }
2264
+
2265
+ if (typeof error === 'boolean') {
2266
+ _options.errorCore = _options.errorServer = error;
2267
+ } else {
2268
+ _options.errorCore = Boolean(error.core);
2269
+ _options.errorServer = Boolean(error.server);
2270
+ }
2271
+
2272
+ if (typeof event === 'boolean') {
2273
+ _options.eventCore = _options.eventUnload = event;
2274
+ } else {
2275
+ _options.eventCore = Boolean(event.core);
2276
+ _options.eventUnload = Boolean(event.unload);
2277
+ }
2278
+ };
2279
+
2280
+ var index = _objectSpread2({
2281
+ init: init$6
2282
+ }, methods);
2283
+
807
2284
  var _excluded = ["multiple", "children", "disabled"];
808
2285
 
809
2286
  var WButton = function WButton(props) {
@@ -845,7 +2322,7 @@ WButton.defaultProps = {};
845
2322
  // import IconFont from '@/components/IconFont';
846
2323
  // <IconFont type='icon-demo' className='xxx-xxx' />
847
2324
 
848
- var index = icons.createFromIconfontCN({
2325
+ var index$1 = icons.createFromIconfontCN({
849
2326
  scriptUrl: '//at.alicdn.com/t/font_3425259_s93peuz62an.js'
850
2327
  });
851
2328
 
@@ -3311,7 +4788,7 @@ function Table(_ref) {
3311
4788
  Table.defaultProps = {
3312
4789
  rowKey: 'key'
3313
4790
  };
3314
- var index$1 = /*#__PURE__*/React.memo(Table);
4791
+ var index$2 = /*#__PURE__*/React.memo(Table);
3315
4792
 
3316
4793
  var _excluded$b = ["height", "width", "count", "style", "numberStyle"],
3317
4794
  _excluded2$2 = ["count", "numberCount", "width", "height", "marginRight"];
@@ -4415,7 +5892,7 @@ var Index$d = function Index(_ref, ref) {
4415
5892
  }))));
4416
5893
  };
4417
5894
 
4418
- var index$2 = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Index$d));
5895
+ var index$3 = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Index$d));
4419
5896
 
4420
5897
  var controlShow = function controlShow(f1, f2, value, timer) {
4421
5898
  f1(value);
@@ -5403,7 +6880,8 @@ var ModalForm = function ModalForm(props, ref) {
5403
6880
  }, [visible, record, formIntance]);
5404
6881
  return /*#__PURE__*/React__default['default'].createElement(_Modal__default['default'], _objectSpread2(_objectSpread2({
5405
6882
  title: title,
5406
- visible: visible
6883
+ visible: visible,
6884
+ forceRender: true
5407
6885
  }, disabled ? {
5408
6886
  footer: null
5409
6887
  } : {}), {}, {
@@ -6104,7 +7582,7 @@ var TabelCard = function TabelCard(props, ref) {
6104
7582
  }, extraProps)));
6105
7583
  };
6106
7584
 
6107
- var index$3 = /*#__PURE__*/React__default['default'].forwardRef(TabelCard);
7585
+ var index$4 = /*#__PURE__*/React__default['default'].forwardRef(TabelCard);
6108
7586
 
6109
7587
  var YEAER_MONTH_FORMAT_EN = 'YYYY-MM';
6110
7588
 
@@ -6477,7 +7955,7 @@ function Calendar(_ref, ref) {
6477
7955
  })))));
6478
7956
  }
6479
7957
 
6480
- var index$4 = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Calendar));
7958
+ var index$5 = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Calendar));
6481
7959
 
6482
7960
  var WebsocketHeart = /*#__PURE__*/_createClass(function WebsocketHeart(_ref) {
6483
7961
  var _this = this;
@@ -6694,7 +8172,6 @@ function Xgplay(_ref, fRef) {
6694
8172
  }
6695
8173
  }
6696
8174
 
6697
- console.log('playerRef.current', playerRef.current);
6698
8175
  return function () {
6699
8176
  var _playerRef$current, _playerRef$current2, _playerRef$current2$h, _playerRef$current3, _playerRef$current3$f, _playerRef$current4;
6700
8177
 
@@ -6747,6 +8224,7 @@ function VideoPlayer(_ref, ref) {
6747
8224
  _ref$config = _ref.config,
6748
8225
  config = _ref$config === void 0 ? {} : _ref$config,
6749
8226
  layoutIndex = _ref.layoutIndex,
8227
+ _onDoubleClickCapture = _ref.onDoubleClickCapture,
6750
8228
  _ref$url = _ref.url,
6751
8229
  url = _ref$url === void 0 ? [] : _ref$url,
6752
8230
  _ref$layouts = _ref.layouts,
@@ -6818,9 +8296,12 @@ function VideoPlayer(_ref, ref) {
6818
8296
  return arr.map(function (item, index) {
6819
8297
  return /*#__PURE__*/React__default['default'].createElement("div", {
6820
8298
  key: index,
6821
- className: "camera ".concat(currentPlayerIndex == index ? index !== 0 ? 'activeCamera' : 'noneborder' : ''),
8299
+ className: "camera ".concat(currentPlayerIndex == index && arr.length > 1 ? 'activeCamera' : 'noneborder'),
6822
8300
  onClickCapture: function onClickCapture() {
6823
8301
  setCurrentPlayerIndex(index);
8302
+ },
8303
+ onDoubleClickCapture: function onDoubleClickCapture() {
8304
+ _onDoubleClickCapture && _onDoubleClickCapture(index, !document.fullscreenElement);
6824
8305
  }
6825
8306
  }, urls[index] ? /*#__PURE__*/React__default['default'].createElement(Xgplay$1, {
6826
8307
  setRef: function setRef(ref) {
@@ -6876,6 +8357,15 @@ function VideoPlayer(_ref, ref) {
6876
8357
 
6877
8358
  setUrls(function (urls) {
6878
8359
  urls[currentPlayerIndex] = url;
8360
+ setCurrentPlayerIndex(function (pre) {
8361
+ pre++;
8362
+
8363
+ if (pre == allLayouts[currentLayoutIndex || 0].span) {
8364
+ return 0;
8365
+ }
8366
+
8367
+ return pre;
8368
+ });
6879
8369
  return _toConsumableArray(urls);
6880
8370
  });
6881
8371
  };
@@ -6903,7 +8393,7 @@ function VideoPlayer(_ref, ref) {
6903
8393
  key: index,
6904
8394
  className: "btnbox",
6905
8395
  onClick: function onClick() {
6906
- var playerIndex = allLayouts[index || 0].span > url.length ? url.length - 1 >= 0 ? url.length : 0 : allLayouts[index || 0].span - 1;
8396
+ var playerIndex = allLayouts[index || 0].span > urls.length ? urls.length - 1 >= 0 ? urls.length : 0 : allLayouts[index || 0].span - 1;
6907
8397
  setCurrentPlayerIndex(playerIndex);
6908
8398
  setCurrentLayoutIndex(index);
6909
8399
  }
@@ -6916,7 +8406,7 @@ function VideoPlayer(_ref, ref) {
6916
8406
  })) : null));
6917
8407
  }
6918
8408
 
6919
- var index$5 = /*#__PURE__*/React.forwardRef(VideoPlayer);
8409
+ var index$6 = /*#__PURE__*/React.forwardRef(VideoPlayer);
6920
8410
 
6921
8411
  var _excluded$l = ["id", "videoUrls", "definitionList", "isLoop", "muted", "currentIndex", "setCurrentIndex", "className", "style", "visible", "autoplay", "videoInit", "enableMemory", "lastPlayTimeHideDelay"];
6922
8412
 
@@ -6925,7 +8415,7 @@ var DEFAULT_PLAY_BACK_RATE = [0.5, 0.75, 1, 1.5, 2]; // 默认记忆提示文字
6925
8415
  var DEFAULT_LAST_PLAY_TIME_DELAY = 5; // 默认音量大小
6926
8416
 
6927
8417
  var DEFAULT_VOLUME = 0.6;
6928
- var index$6 = (function (_ref) {
8418
+ var index$7 = (function (_ref) {
6929
8419
  var id = _ref.id,
6930
8420
  _ref$videoUrls = _ref.videoUrls,
6931
8421
  videoUrls = _ref$videoUrls === void 0 ? [] : _ref$videoUrls,
@@ -7758,7 +9248,7 @@ function NtTable(_ref) {
7758
9248
  NtTable.defaultProps = {
7759
9249
  rowKey: 'key'
7760
9250
  };
7761
- var index$7 = /*#__PURE__*/React.memo(NtTable);
9251
+ var index$8 = /*#__PURE__*/React.memo(NtTable);
7762
9252
 
7763
9253
  /*
7764
9254
  * @Author: lijin
@@ -8542,10 +10032,10 @@ function WaterLevelCharts(config) {
8542
10032
  /*
8543
10033
  * @Author: lijin
8544
10034
  * @Date: 2021-09-09 11:02:54
8545
- * @LastEditTime: 2022-11-09 19:44:46
10035
+ * @LastEditTime: 2022-12-13 16:40:57
8546
10036
  * @LastEditors: lijin
8547
10037
  * @Description:
8548
- * @FilePath: \wargem\wargerm-components\src\index.ts
10038
+ * @FilePath: \wargerm-components\src\index.ts
8549
10039
  * 可以输入预定的版权声明、个性签名、空行等
8550
10040
  */
8551
10041
  console.log(REACT_APP_ENV, 'REACT_APP_ENV');
@@ -8558,37 +10048,38 @@ if (REACT_APP_ENV == 'development') {
8558
10048
  exports.AutoScroll = Index$a;
8559
10049
  exports.Breadcrumb = Index$c;
8560
10050
  exports.Button = WButton;
8561
- exports.Calendar = index$4;
8562
- exports.Card = index$2;
10051
+ exports.Calendar = index$5;
10052
+ exports.Card = index$3;
8563
10053
  exports.Cascader = WCascader;
8564
10054
  exports.Checkbox = Index$4;
8565
10055
  exports.CountUp = Index$9;
8566
10056
  exports.DatePicker = Index$2;
8567
10057
  exports.DragBox = DragBox;
8568
- exports.IconFont = index;
10058
+ exports.IconFont = index$1;
8569
10059
  exports.Input = Index;
8570
10060
  exports.InputNumber = WInputNumber;
8571
10061
  exports.LineEcharts = LineEcharts;
8572
10062
  exports.Modal = Modal;
8573
10063
  exports.ModalForm = ModalForm$1;
8574
10064
  exports.ModalTips = Modal$1;
8575
- exports.NtTable = index$7;
10065
+ exports.NtTable = index$8;
8576
10066
  exports.Number = Index$8;
8577
10067
  exports.NumericInput = NumericInput;
8578
10068
  exports.Radio = Index$3;
8579
10069
  exports.Select = Select;
8580
10070
  exports.Swiper = Index$b;
8581
10071
  exports.Switch = WSwitch;
8582
- exports.TabelCard = index$3;
8583
- exports.Table = index$1;
10072
+ exports.TabelCard = index$4;
10073
+ exports.Table = index$2;
8584
10074
  exports.TreeSelect = Index$7;
8585
10075
  exports.Upload = Upload;
8586
- exports.Video = index$6;
8587
- exports.VideoPlayer = index$5;
10076
+ exports.Video = index$7;
10077
+ exports.VideoPlayer = index$6;
8588
10078
  exports.WDatePicker = Index$6;
8589
10079
  exports.WForm = WForm$1;
8590
10080
  exports.WaterLevelCharts = WaterLevelCharts;
8591
10081
  exports.WebsocketHeart = WebsocketHeart;
8592
10082
  exports.useEventEmitter = useEventEmitter;
10083
+ exports.wTracing = index;
8593
10084
  exports.whox = create;
8594
10085
  exports.wmox = wmox;