@whitesev/pops 3.1.3 → 3.2.0
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.
- package/dist/index.amd.js +230 -133
- package/dist/index.amd.js.map +1 -1
- package/dist/index.amd.min.js +1 -1
- package/dist/index.amd.min.js.map +1 -1
- package/dist/index.cjs.js +230 -133
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +230 -133
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +230 -133
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +1 -1
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.system.js +230 -133
- package/dist/index.system.js.map +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/dist/index.umd.js +230 -133
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/src/Pops.d.ts +10 -10
- package/dist/types/src/components/panel/index.d.ts +2 -2
- package/dist/types/src/components/rightClickMenu/index.d.ts +1 -1
- package/dist/types/src/components/rightClickMenu/types/index.d.ts +8 -1
- package/dist/types/src/components/tooltip/index.d.ts +5 -5
- package/dist/types/src/components/tooltip/types/index.d.ts +15 -14
- package/dist/types/src/handler/PopsHandler.d.ts +4 -4
- package/dist/types/src/types/PopsDOMUtilsEventType.d.ts +39 -0
- package/dist/types/src/types/components.d.ts +2 -1
- package/dist/types/src/types/event.d.ts +13 -3
- package/dist/types/src/types/inst.d.ts +4 -0
- package/dist/types/src/utils/PopsDOMUtils.d.ts +10 -12
- package/dist/types/src/utils/PopsInstanceUtils.d.ts +2 -2
- package/package.json +2 -2
- package/src/components/alert/index.ts +3 -1
- package/src/components/confirm/index.ts +3 -1
- package/src/components/drawer/index.ts +3 -1
- package/src/components/folder/index.ts +3 -1
- package/src/components/iframe/index.ts +6 -4
- package/src/components/panel/handlerComponents.ts +26 -26
- package/src/components/panel/index.ts +3 -1
- package/src/components/prompt/index.ts +3 -1
- package/src/components/rightClickMenu/defaultConfig.ts +1 -0
- package/src/components/rightClickMenu/index.ts +18 -7
- package/src/components/rightClickMenu/types/index.ts +8 -1
- package/src/components/searchSuggestion/index.ts +7 -19
- package/src/components/tooltip/defaultConfig.ts +1 -1
- package/src/components/tooltip/index.ts +26 -17
- package/src/components/tooltip/types/index.ts +15 -14
- package/src/handler/PopsHandler.ts +22 -19
- package/src/types/PopsDOMUtilsEventType.d.ts +39 -0
- package/src/types/components.d.ts +2 -1
- package/src/types/event.d.ts +13 -3
- package/src/types/inst.d.ts +4 -0
- package/src/utils/PopsDOMUtils.ts +71 -40
- package/src/utils/PopsInstanceUtils.ts +62 -30
- package/src/utils/PopsUtils.ts +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -514,7 +514,7 @@ class PopsUtils {
|
|
|
514
514
|
* @param propName
|
|
515
515
|
*/
|
|
516
516
|
delete(target, propName) {
|
|
517
|
-
if (typeof Reflect === "object" && Reflect.deleteProperty) {
|
|
517
|
+
if (typeof Reflect === "object" && typeof Reflect.deleteProperty === "function") {
|
|
518
518
|
Reflect.deleteProperty(target, propName);
|
|
519
519
|
}
|
|
520
520
|
else {
|
|
@@ -1020,13 +1020,13 @@ class PopsDOMUtilsEvent {
|
|
|
1020
1020
|
if (element == null) {
|
|
1021
1021
|
return;
|
|
1022
1022
|
}
|
|
1023
|
-
let
|
|
1023
|
+
let $elList = [];
|
|
1024
1024
|
if (element instanceof NodeList || Array.isArray(element)) {
|
|
1025
1025
|
element = element;
|
|
1026
|
-
|
|
1026
|
+
$elList = $elList.concat(element);
|
|
1027
1027
|
}
|
|
1028
1028
|
else {
|
|
1029
|
-
|
|
1029
|
+
$elList.push(element);
|
|
1030
1030
|
}
|
|
1031
1031
|
let eventTypeList = [];
|
|
1032
1032
|
if (Array.isArray(eventType)) {
|
|
@@ -1077,7 +1077,7 @@ class PopsDOMUtilsEvent {
|
|
|
1077
1077
|
// 目标函数、事件名、回调函数、事件配置、过滤函数
|
|
1078
1078
|
filter = option;
|
|
1079
1079
|
}
|
|
1080
|
-
|
|
1080
|
+
$elList.forEach((elementItem) => {
|
|
1081
1081
|
// 获取对象上的事件
|
|
1082
1082
|
const elementEvents = Reflect.get(elementItem, SymbolEvents) || {};
|
|
1083
1083
|
eventTypeList.forEach((eventName) => {
|
|
@@ -1124,18 +1124,19 @@ class PopsDOMUtilsEvent {
|
|
|
1124
1124
|
* @param eventType (可选)需要取消监听的事件
|
|
1125
1125
|
*/
|
|
1126
1126
|
offAll(element, eventType) {
|
|
1127
|
+
const that = this;
|
|
1127
1128
|
if (typeof element === "string") {
|
|
1128
|
-
element =
|
|
1129
|
+
element = that.selectorAll(element);
|
|
1129
1130
|
}
|
|
1130
1131
|
if (element == null) {
|
|
1131
1132
|
return;
|
|
1132
1133
|
}
|
|
1133
|
-
let
|
|
1134
|
+
let $elList = [];
|
|
1134
1135
|
if (element instanceof NodeList || Array.isArray(element)) {
|
|
1135
|
-
|
|
1136
|
+
$elList = $elList.concat(Array.from(element));
|
|
1136
1137
|
}
|
|
1137
1138
|
else {
|
|
1138
|
-
|
|
1139
|
+
$elList.push(element);
|
|
1139
1140
|
}
|
|
1140
1141
|
let eventTypeList = [];
|
|
1141
1142
|
if (Array.isArray(eventType)) {
|
|
@@ -1144,12 +1145,13 @@ class PopsDOMUtilsEvent {
|
|
|
1144
1145
|
else if (typeof eventType === "string") {
|
|
1145
1146
|
eventTypeList = eventTypeList.concat(eventType.split(" "));
|
|
1146
1147
|
}
|
|
1147
|
-
|
|
1148
|
-
Object.getOwnPropertySymbols(
|
|
1149
|
-
|
|
1148
|
+
$elList.forEach(($elItem) => {
|
|
1149
|
+
const symbolList = [...new Set([...Object.getOwnPropertySymbols($elItem), SymbolEvents])];
|
|
1150
|
+
symbolList.forEach((symbolItem) => {
|
|
1151
|
+
if (!symbolItem.toString().startsWith("Symbol(events_")) {
|
|
1150
1152
|
return;
|
|
1151
1153
|
}
|
|
1152
|
-
const elementEvents =
|
|
1154
|
+
const elementEvents = Reflect.get($elItem, symbolItem) || {};
|
|
1153
1155
|
const iterEventNameList = eventTypeList.length ? eventTypeList : Object.keys(elementEvents);
|
|
1154
1156
|
iterEventNameList.forEach((eventName) => {
|
|
1155
1157
|
const handlers = elementEvents[eventName];
|
|
@@ -1157,11 +1159,12 @@ class PopsDOMUtilsEvent {
|
|
|
1157
1159
|
return;
|
|
1158
1160
|
}
|
|
1159
1161
|
for (const handler of handlers) {
|
|
1160
|
-
|
|
1162
|
+
$elItem.removeEventListener(eventName, handler.callback, {
|
|
1161
1163
|
capture: handler["option"]["capture"],
|
|
1162
1164
|
});
|
|
1163
1165
|
}
|
|
1164
|
-
|
|
1166
|
+
const events = Reflect.get($elItem, symbolItem);
|
|
1167
|
+
popsUtils.delete(events, eventName);
|
|
1165
1168
|
});
|
|
1166
1169
|
});
|
|
1167
1170
|
});
|
|
@@ -1904,7 +1907,8 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1904
1907
|
}
|
|
1905
1908
|
return $el.classList.contains(className);
|
|
1906
1909
|
}
|
|
1907
|
-
css(
|
|
1910
|
+
css($el, property, value) {
|
|
1911
|
+
const that = this;
|
|
1908
1912
|
/**
|
|
1909
1913
|
* 把纯数字没有px的加上
|
|
1910
1914
|
*/
|
|
@@ -1918,10 +1922,33 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1918
1922
|
}
|
|
1919
1923
|
return propertyValue;
|
|
1920
1924
|
}
|
|
1921
|
-
if (typeof
|
|
1922
|
-
|
|
1925
|
+
if (typeof $el === "string") {
|
|
1926
|
+
$el = that.selectorAll($el);
|
|
1923
1927
|
}
|
|
1924
|
-
if (
|
|
1928
|
+
if ($el == null) {
|
|
1929
|
+
return;
|
|
1930
|
+
}
|
|
1931
|
+
if (Array.isArray($el) || $el instanceof NodeList) {
|
|
1932
|
+
if (typeof property === "string") {
|
|
1933
|
+
if (value == null) {
|
|
1934
|
+
// 获取属性
|
|
1935
|
+
return that.css($el[0], property);
|
|
1936
|
+
}
|
|
1937
|
+
else {
|
|
1938
|
+
// 设置属性
|
|
1939
|
+
$el.forEach(($elItem) => {
|
|
1940
|
+
that.css($elItem, property);
|
|
1941
|
+
});
|
|
1942
|
+
return;
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1945
|
+
else if (typeof property === "object") {
|
|
1946
|
+
// 设置属性
|
|
1947
|
+
$el.forEach(($elItem) => {
|
|
1948
|
+
that.css($elItem, property);
|
|
1949
|
+
});
|
|
1950
|
+
return;
|
|
1951
|
+
}
|
|
1925
1952
|
return;
|
|
1926
1953
|
}
|
|
1927
1954
|
const setStyleProperty = (propertyName, propertyValue) => {
|
|
@@ -1930,16 +1957,16 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1930
1957
|
.trim()
|
|
1931
1958
|
.replace(/!important$/gi, "")
|
|
1932
1959
|
.trim();
|
|
1933
|
-
|
|
1960
|
+
$el.style.setProperty(propertyName, propertyValue, "important");
|
|
1934
1961
|
}
|
|
1935
1962
|
else {
|
|
1936
1963
|
propertyValue = handlePixe(propertyName, propertyValue);
|
|
1937
|
-
|
|
1964
|
+
$el.style.setProperty(propertyName, propertyValue);
|
|
1938
1965
|
}
|
|
1939
1966
|
};
|
|
1940
1967
|
if (typeof property === "string") {
|
|
1941
1968
|
if (value == null) {
|
|
1942
|
-
return getComputedStyle(
|
|
1969
|
+
return PopsCore.globalThis.getComputedStyle($el).getPropertyValue(property);
|
|
1943
1970
|
}
|
|
1944
1971
|
else {
|
|
1945
1972
|
setStyleProperty(property, value);
|
|
@@ -1951,6 +1978,10 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1951
1978
|
setStyleProperty(prop, value);
|
|
1952
1979
|
}
|
|
1953
1980
|
}
|
|
1981
|
+
else {
|
|
1982
|
+
// 其他情况
|
|
1983
|
+
throw new TypeError("property must be string or object");
|
|
1984
|
+
}
|
|
1954
1985
|
}
|
|
1955
1986
|
/**
|
|
1956
1987
|
* 创建元素
|
|
@@ -3085,16 +3116,16 @@ const PopsInstanceUtils = {
|
|
|
3085
3116
|
},
|
|
3086
3117
|
/**
|
|
3087
3118
|
* 删除配置中对应的对象
|
|
3088
|
-
* @param
|
|
3119
|
+
* @param totalInstConfigList 配置实例列表
|
|
3089
3120
|
* @param guid 唯一标识
|
|
3090
3121
|
* @param isAll 是否全部删除
|
|
3091
3122
|
*/
|
|
3092
|
-
removeInstance(
|
|
3123
|
+
async removeInstance(totalInstConfigList, guid, isAll = false) {
|
|
3093
3124
|
/**
|
|
3094
3125
|
* 移除元素实例
|
|
3095
3126
|
* @param instCommonConfig
|
|
3096
3127
|
*/
|
|
3097
|
-
function
|
|
3128
|
+
const removeInst = function (instCommonConfig) {
|
|
3098
3129
|
if (typeof instCommonConfig.beforeRemoveCallBack === "function") {
|
|
3099
3130
|
// 调用移除签的回调
|
|
3100
3131
|
instCommonConfig.beforeRemoveCallBack(instCommonConfig);
|
|
@@ -3103,39 +3134,44 @@ const PopsInstanceUtils = {
|
|
|
3103
3134
|
instCommonConfig?.$pops?.remove();
|
|
3104
3135
|
instCommonConfig?.$mask?.remove();
|
|
3105
3136
|
instCommonConfig?.$shadowContainer?.remove();
|
|
3106
|
-
}
|
|
3137
|
+
};
|
|
3138
|
+
const asyncInstTask = [];
|
|
3107
3139
|
// [ inst[], inst[],...]
|
|
3108
|
-
|
|
3140
|
+
totalInstConfigList.forEach((instConfigList) => {
|
|
3109
3141
|
// inst[]
|
|
3110
|
-
instConfigList.forEach((instConfigItem, index) => {
|
|
3142
|
+
instConfigList.forEach(async (instConfigItem, index) => {
|
|
3111
3143
|
// 移除全部或者guid相同
|
|
3112
|
-
if (isAll ||
|
|
3144
|
+
if (isAll || (typeof guid === "string" && instConfigItem.guid === guid)) {
|
|
3113
3145
|
// 判断是否有动画
|
|
3114
3146
|
const animName = instConfigItem.$anim.getAttribute("anim");
|
|
3115
3147
|
if (PopsAnimation.hasAnim(animName)) {
|
|
3116
3148
|
const reverseAnimName = animName + "-reverse";
|
|
3117
|
-
instConfigItem.$anim
|
|
3118
|
-
instConfigItem.$anim
|
|
3119
|
-
instConfigItem.$anim
|
|
3120
|
-
if (PopsAnimation.hasAnim(instConfigItem.$anim
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3149
|
+
popsDOMUtils.css(instConfigItem.$anim, "width", "100%");
|
|
3150
|
+
popsDOMUtils.css(instConfigItem.$anim, "height", "100%");
|
|
3151
|
+
popsDOMUtils.css(instConfigItem.$anim, "animation-name", reverseAnimName);
|
|
3152
|
+
if (PopsAnimation.hasAnim(popsDOMUtils.css(instConfigItem.$anim, "animation-name"))) {
|
|
3153
|
+
asyncInstTask.push(new Promise((resolve) => {
|
|
3154
|
+
popsDOMUtils.on(instConfigItem.$anim, popsDOMUtils.getAnimationEndNameList(), function () {
|
|
3155
|
+
removeInst(instConfigItem);
|
|
3156
|
+
resolve();
|
|
3157
|
+
}, {
|
|
3158
|
+
capture: true,
|
|
3159
|
+
});
|
|
3160
|
+
}));
|
|
3126
3161
|
}
|
|
3127
3162
|
else {
|
|
3128
|
-
|
|
3163
|
+
removeInst(instConfigItem);
|
|
3129
3164
|
}
|
|
3130
3165
|
}
|
|
3131
3166
|
else {
|
|
3132
|
-
|
|
3167
|
+
removeInst(instConfigItem);
|
|
3133
3168
|
}
|
|
3134
3169
|
instConfigList.splice(index, 1);
|
|
3135
3170
|
}
|
|
3136
3171
|
});
|
|
3137
3172
|
});
|
|
3138
|
-
|
|
3173
|
+
await Promise.all(asyncInstTask);
|
|
3174
|
+
return totalInstConfigList;
|
|
3139
3175
|
},
|
|
3140
3176
|
/**
|
|
3141
3177
|
* 隐藏
|
|
@@ -3280,8 +3316,9 @@ const PopsInstanceUtils = {
|
|
|
3280
3316
|
* @param config
|
|
3281
3317
|
* @param $anim
|
|
3282
3318
|
*/
|
|
3283
|
-
close(config, popsType, instConfigList, guid, $anim) {
|
|
3284
|
-
|
|
3319
|
+
async close(config, popsType, instConfigList, guid, $anim) {
|
|
3320
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
3321
|
+
await new Promise(async (resolve) => {
|
|
3285
3322
|
const $pops = $anim.querySelector(".pops[type-value]");
|
|
3286
3323
|
const drawerConfig = config;
|
|
3287
3324
|
/**
|
|
@@ -3291,12 +3328,12 @@ const PopsInstanceUtils = {
|
|
|
3291
3328
|
/**
|
|
3292
3329
|
* 弹窗已关闭的回调
|
|
3293
3330
|
*/
|
|
3294
|
-
function closeCallBack(event) {
|
|
3331
|
+
async function closeCallBack(event) {
|
|
3295
3332
|
if (event.propertyName !== "transform") {
|
|
3296
3333
|
return;
|
|
3297
3334
|
}
|
|
3298
|
-
popsDOMUtils.off($pops, popsDOMUtils.getTransitionEndNameList(),
|
|
3299
|
-
PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3335
|
+
popsDOMUtils.off($pops, popsDOMUtils.getTransitionEndNameList(), closeCallBack);
|
|
3336
|
+
await PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3300
3337
|
resolve();
|
|
3301
3338
|
}
|
|
3302
3339
|
// 监听过渡结束
|
|
@@ -3328,10 +3365,32 @@ const PopsInstanceUtils = {
|
|
|
3328
3365
|
}, drawerConfig.closeDelay);
|
|
3329
3366
|
}
|
|
3330
3367
|
else {
|
|
3331
|
-
PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3368
|
+
await PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3332
3369
|
resolve();
|
|
3333
3370
|
}
|
|
3334
3371
|
});
|
|
3372
|
+
// 判断组件内是否有rightClickMenu、tooltip、searchSuggestion组件
|
|
3373
|
+
// 有的话也需要关闭
|
|
3374
|
+
PopsInstData.rightClickMenu.forEach((itemConfig) => {
|
|
3375
|
+
const config = itemConfig.config;
|
|
3376
|
+
if (config.$target instanceof HTMLElement) {
|
|
3377
|
+
const $root = config.$target.getRootNode();
|
|
3378
|
+
if ($root instanceof HTMLElement && $root.parentElement == null) {
|
|
3379
|
+
// 触发销毁元素
|
|
3380
|
+
itemConfig.destory();
|
|
3381
|
+
}
|
|
3382
|
+
}
|
|
3383
|
+
});
|
|
3384
|
+
PopsInstData.tooltip.forEach((itemConfig) => {
|
|
3385
|
+
const config = itemConfig.config;
|
|
3386
|
+
if (config.$target instanceof HTMLElement) {
|
|
3387
|
+
const $root = config.$target.getRootNode();
|
|
3388
|
+
if ($root instanceof HTMLElement && $root.parentElement == null) {
|
|
3389
|
+
// 触发销毁元素
|
|
3390
|
+
itemConfig.destory();
|
|
3391
|
+
}
|
|
3392
|
+
}
|
|
3393
|
+
});
|
|
3335
3394
|
},
|
|
3336
3395
|
/**
|
|
3337
3396
|
* 拖拽元素
|
|
@@ -3670,12 +3729,12 @@ const PopsHandler = {
|
|
|
3670
3729
|
element.hasAttribute("anim"));
|
|
3671
3730
|
}
|
|
3672
3731
|
// 判断按下的元素是否是pops-anim
|
|
3673
|
-
popsDOMUtils.on(config.animElement, ["touchstart", "mousedown"],
|
|
3732
|
+
popsDOMUtils.on(config.animElement, ["touchstart", "mousedown"], (event) => {
|
|
3674
3733
|
const $click = event.composedPath()[0];
|
|
3675
3734
|
isMaskClick = isAnimElement($click);
|
|
3676
3735
|
});
|
|
3677
3736
|
// 如果有动画层,在动画层上监听点击事件
|
|
3678
|
-
popsDOMUtils.on(config.animElement, "click",
|
|
3737
|
+
popsDOMUtils.on(config.animElement, "click", (event) => {
|
|
3679
3738
|
const $click = event.composedPath()[0];
|
|
3680
3739
|
if (isAnimElement($click) && isMaskClick) {
|
|
3681
3740
|
return clickEvent(event);
|
|
@@ -3683,7 +3742,7 @@ const PopsHandler = {
|
|
|
3683
3742
|
});
|
|
3684
3743
|
// 在遮罩层监听点击事件
|
|
3685
3744
|
// 如果有动画层,那么该点击事件触发不了
|
|
3686
|
-
popsDOMUtils.on(result.maskElement, "click",
|
|
3745
|
+
popsDOMUtils.on(result.maskElement, "click", (event) => {
|
|
3687
3746
|
isMaskClick = true;
|
|
3688
3747
|
clickEvent(event);
|
|
3689
3748
|
});
|
|
@@ -3826,13 +3885,13 @@ const PopsHandler = {
|
|
|
3826
3885
|
* @param guid
|
|
3827
3886
|
* @param $shadowContainer
|
|
3828
3887
|
* @param $shadowRoot
|
|
3829
|
-
* @param
|
|
3888
|
+
* @param type 当前弹窗类型
|
|
3830
3889
|
* @param $anim 动画层
|
|
3831
3890
|
* @param $pops 主元素
|
|
3832
3891
|
* @param $mask 遮罩层
|
|
3833
3892
|
* @param config 当前配置
|
|
3834
3893
|
*/
|
|
3835
|
-
handleEventConfig(config, guid, $shadowContainer, $shadowRoot,
|
|
3894
|
+
handleEventConfig(config, guid, $shadowContainer, $shadowRoot, type, $anim, $pops, $mask) {
|
|
3836
3895
|
return {
|
|
3837
3896
|
$shadowContainer: $shadowContainer,
|
|
3838
3897
|
$shadowRoot: $shadowRoot,
|
|
@@ -3840,44 +3899,47 @@ const PopsHandler = {
|
|
|
3840
3899
|
$anim: $anim,
|
|
3841
3900
|
$pops: $pops,
|
|
3842
3901
|
$mask: $mask,
|
|
3843
|
-
mode:
|
|
3902
|
+
mode: type,
|
|
3844
3903
|
guid: guid,
|
|
3845
3904
|
close() {
|
|
3846
|
-
return PopsInstanceUtils.close(config,
|
|
3905
|
+
return PopsInstanceUtils.close(config, type, PopsInstData[type], guid, $anim);
|
|
3847
3906
|
},
|
|
3848
3907
|
hide() {
|
|
3849
|
-
return PopsInstanceUtils.hide(config,
|
|
3908
|
+
return PopsInstanceUtils.hide(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3850
3909
|
},
|
|
3851
|
-
show() {
|
|
3852
|
-
|
|
3910
|
+
show($parent) {
|
|
3911
|
+
if ($parent) {
|
|
3912
|
+
$parent.appendChild(PopsInstData[type][0].$shadowRoot);
|
|
3913
|
+
}
|
|
3914
|
+
return PopsInstanceUtils.show(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3853
3915
|
},
|
|
3854
3916
|
};
|
|
3855
3917
|
},
|
|
3856
3918
|
/**
|
|
3857
3919
|
* 获取loading的事件配置
|
|
3858
3920
|
* @param guid
|
|
3859
|
-
* @param
|
|
3921
|
+
* @param type 当前弹窗类型
|
|
3860
3922
|
* @param $anim 动画层
|
|
3861
3923
|
* @param $pops 主元素
|
|
3862
3924
|
* @param $mask 遮罩层
|
|
3863
3925
|
* @param config 当前配置
|
|
3864
3926
|
*/
|
|
3865
|
-
handleLoadingEventConfig(config, guid,
|
|
3927
|
+
handleLoadingEventConfig(config, guid, type, $anim, $pops, $mask) {
|
|
3866
3928
|
return {
|
|
3867
3929
|
$el: $anim,
|
|
3868
3930
|
$anim: $anim,
|
|
3869
3931
|
$pops: $pops,
|
|
3870
3932
|
$mask: $mask,
|
|
3871
|
-
mode:
|
|
3933
|
+
mode: type,
|
|
3872
3934
|
guid: guid,
|
|
3873
3935
|
close() {
|
|
3874
|
-
return PopsInstanceUtils.close(config,
|
|
3936
|
+
return PopsInstanceUtils.close(config, type, PopsInstData[type], guid, $anim);
|
|
3875
3937
|
},
|
|
3876
3938
|
hide() {
|
|
3877
|
-
return PopsInstanceUtils.hide(config,
|
|
3939
|
+
return PopsInstanceUtils.hide(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3878
3940
|
},
|
|
3879
3941
|
show() {
|
|
3880
|
-
return PopsInstanceUtils.show(config,
|
|
3942
|
+
return PopsInstanceUtils.show(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3881
3943
|
},
|
|
3882
3944
|
};
|
|
3883
3945
|
},
|
|
@@ -3990,8 +4052,8 @@ const PopsHandler = {
|
|
|
3990
4052
|
handleOnly(type, config) {
|
|
3991
4053
|
if (config.only) {
|
|
3992
4054
|
// .loading
|
|
3993
|
-
// .tooltip
|
|
3994
4055
|
// .rightClickMenu
|
|
4056
|
+
// .tooltip
|
|
3995
4057
|
// 单独处理
|
|
3996
4058
|
if (type === "loading" || type === "tooltip" || type === "rightClickMenu") {
|
|
3997
4059
|
const inst = PopsInstData[type];
|
|
@@ -4003,11 +4065,11 @@ const PopsHandler = {
|
|
|
4003
4065
|
PopsInstanceUtils.removeInstance([
|
|
4004
4066
|
PopsInstData.alert,
|
|
4005
4067
|
PopsInstData.confirm,
|
|
4006
|
-
PopsInstData.prompt,
|
|
4007
|
-
PopsInstData.iframe,
|
|
4008
4068
|
PopsInstData.drawer,
|
|
4009
4069
|
PopsInstData.folder,
|
|
4070
|
+
PopsInstData.iframe,
|
|
4010
4071
|
PopsInstData.panel,
|
|
4072
|
+
PopsInstData.prompt,
|
|
4011
4073
|
], "", true);
|
|
4012
4074
|
}
|
|
4013
4075
|
}
|
|
@@ -4171,6 +4233,7 @@ const PopsAlert = {
|
|
|
4171
4233
|
}
|
|
4172
4234
|
// 处理返回的配置
|
|
4173
4235
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
4236
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4174
4237
|
// 为顶部右边的关闭按钮添加点击事件
|
|
4175
4238
|
PopsHandler.handleClickEvent("close", $headerCloseBtn, evtConfig, config.btn.close?.callback);
|
|
4176
4239
|
// 为底部ok按钮添加点击事件
|
|
@@ -4193,6 +4256,8 @@ const PopsAlert = {
|
|
|
4193
4256
|
$mask: $mask,
|
|
4194
4257
|
$shadowContainer: $shadowContainer,
|
|
4195
4258
|
$shadowRoot: $shadowRoot,
|
|
4259
|
+
config: config,
|
|
4260
|
+
destory: result.close,
|
|
4196
4261
|
});
|
|
4197
4262
|
// 拖拽
|
|
4198
4263
|
if (config.drag) {
|
|
@@ -4204,7 +4269,6 @@ const PopsAlert = {
|
|
|
4204
4269
|
endCallBack: config.dragEndCallBack,
|
|
4205
4270
|
});
|
|
4206
4271
|
}
|
|
4207
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4208
4272
|
return result;
|
|
4209
4273
|
},
|
|
4210
4274
|
};
|
|
@@ -4378,6 +4442,7 @@ const PopsConfirm = {
|
|
|
4378
4442
|
$elList.push($mask);
|
|
4379
4443
|
}
|
|
4380
4444
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
4445
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4381
4446
|
PopsHandler.handleClickEvent("close", $btnClose, evtConfig, config.btn.close.callback);
|
|
4382
4447
|
PopsHandler.handleClickEvent("ok", $btnOk, evtConfig, config.btn.ok.callback);
|
|
4383
4448
|
PopsHandler.handleClickEvent("cancel", $btnCancel, evtConfig, config.btn.cancel.callback);
|
|
@@ -4398,6 +4463,8 @@ const PopsConfirm = {
|
|
|
4398
4463
|
$mask: $mask,
|
|
4399
4464
|
$shadowContainer: $shadowContainer,
|
|
4400
4465
|
$shadowRoot: $shadowRoot,
|
|
4466
|
+
config: config,
|
|
4467
|
+
destory: result.close,
|
|
4401
4468
|
});
|
|
4402
4469
|
// 拖拽
|
|
4403
4470
|
if (config.drag) {
|
|
@@ -4409,7 +4476,6 @@ const PopsConfirm = {
|
|
|
4409
4476
|
endCallBack: config.dragEndCallBack,
|
|
4410
4477
|
});
|
|
4411
4478
|
}
|
|
4412
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4413
4479
|
return result;
|
|
4414
4480
|
},
|
|
4415
4481
|
};
|
|
@@ -4588,6 +4654,7 @@ const PopsDrawer = {
|
|
|
4588
4654
|
$elList.push($mask);
|
|
4589
4655
|
}
|
|
4590
4656
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
4657
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4591
4658
|
// 处理方向
|
|
4592
4659
|
$pops.setAttribute("direction", config.direction);
|
|
4593
4660
|
// 处理border-radius
|
|
@@ -4683,8 +4750,9 @@ const PopsDrawer = {
|
|
|
4683
4750
|
$mask: $mask,
|
|
4684
4751
|
$shadowContainer: $shadowContainer,
|
|
4685
4752
|
$shadowRoot: $shadowRoot,
|
|
4753
|
+
config: config,
|
|
4754
|
+
destory: result.close,
|
|
4686
4755
|
});
|
|
4687
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4688
4756
|
return result;
|
|
4689
4757
|
},
|
|
4690
4758
|
};
|
|
@@ -5193,6 +5261,7 @@ const PopsFolder = {
|
|
|
5193
5261
|
}
|
|
5194
5262
|
// 事件
|
|
5195
5263
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
5264
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
5196
5265
|
PopsHandler.handleClickEvent("close", $btnCloseBtn, evtConfig, config.btn.close.callback);
|
|
5197
5266
|
PopsHandler.handleClickEvent("ok", btnOkElement, evtConfig, config.btn.ok.callback);
|
|
5198
5267
|
PopsHandler.handleClickEvent("cancel", btnCancelElement, evtConfig, config.btn.cancel.callback);
|
|
@@ -5772,8 +5841,9 @@ const PopsFolder = {
|
|
|
5772
5841
|
$mask: $mask,
|
|
5773
5842
|
$shadowContainer: $shadowContainer,
|
|
5774
5843
|
$shadowRoot: $shadowRoot,
|
|
5844
|
+
config: config,
|
|
5845
|
+
destory: result.close,
|
|
5775
5846
|
});
|
|
5776
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
5777
5847
|
return result;
|
|
5778
5848
|
},
|
|
5779
5849
|
};
|
|
@@ -5929,6 +5999,7 @@ const PopsIframe = {
|
|
|
5929
5999
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
5930
6000
|
// 赋值额外的$iframe参数
|
|
5931
6001
|
evtConfig.$iframe = $iframe;
|
|
6002
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
5932
6003
|
popsDOMUtils.on($anim, popsDOMUtils.getAnimationEndNameList(), function () {
|
|
5933
6004
|
// 动画加载完毕
|
|
5934
6005
|
$anim.style.width = "0%";
|
|
@@ -6060,10 +6131,10 @@ const PopsIframe = {
|
|
|
6060
6131
|
capture: true,
|
|
6061
6132
|
});
|
|
6062
6133
|
// 关闭按钮点击事件
|
|
6063
|
-
popsDOMUtils.on(headerCloseBtnElement, "click", (event) => {
|
|
6134
|
+
popsDOMUtils.on(headerCloseBtnElement, "click", async (event) => {
|
|
6064
6135
|
event.preventDefault();
|
|
6065
6136
|
event.stopPropagation();
|
|
6066
|
-
PopsInstanceUtils.removeInstance([PopsInstData.iframe], guid, false);
|
|
6137
|
+
await PopsInstanceUtils.removeInstance([PopsInstData.iframe], guid, false);
|
|
6067
6138
|
if (typeof config?.btn?.close?.callback === "function") {
|
|
6068
6139
|
config.btn.close.callback(evtConfig, event);
|
|
6069
6140
|
}
|
|
@@ -6077,8 +6148,9 @@ const PopsIframe = {
|
|
|
6077
6148
|
$mask: $mask,
|
|
6078
6149
|
$shadowContainer: $shadowContainer,
|
|
6079
6150
|
$shadowRoot: $shadowRoot,
|
|
6151
|
+
config: config,
|
|
6152
|
+
destory: result.close,
|
|
6080
6153
|
});
|
|
6081
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
6082
6154
|
return result;
|
|
6083
6155
|
},
|
|
6084
6156
|
};
|
|
@@ -7044,7 +7116,7 @@ const PopsTooltipDefaultConfig = () => {
|
|
|
7044
7116
|
isFixed: false,
|
|
7045
7117
|
alwaysShow: false,
|
|
7046
7118
|
onShowEventName: "mouseenter touchstart",
|
|
7047
|
-
onCloseEventName: "mouseleave touchend",
|
|
7119
|
+
onCloseEventName: "mouseleave touchend touchcancel",
|
|
7048
7120
|
zIndex: 10000,
|
|
7049
7121
|
only: false,
|
|
7050
7122
|
eventOption: {
|
|
@@ -7270,12 +7342,12 @@ class ToolTip {
|
|
|
7270
7342
|
changePosition(event) {
|
|
7271
7343
|
const positionInfo = this.calcToolTipPosition(this.$data.config.$target, this.$data.config.arrowDistance, this.$data.config.otherDistance, event);
|
|
7272
7344
|
const positionKey = this.$data.config.position.toUpperCase();
|
|
7273
|
-
const
|
|
7274
|
-
if (
|
|
7275
|
-
this.$el.$toolTip.style.left =
|
|
7276
|
-
this.$el.$toolTip.style.top =
|
|
7277
|
-
this.$el.$toolTip.setAttribute("data-motion",
|
|
7278
|
-
this.$el.$arrow.setAttribute("data-position",
|
|
7345
|
+
const position = positionInfo[positionKey];
|
|
7346
|
+
if (position) {
|
|
7347
|
+
this.$el.$toolTip.style.left = position.left + "px";
|
|
7348
|
+
this.$el.$toolTip.style.top = position.top + "px";
|
|
7349
|
+
this.$el.$toolTip.setAttribute("data-motion", position.motion);
|
|
7350
|
+
this.$el.$arrow.setAttribute("data-position", position.arrow);
|
|
7279
7351
|
}
|
|
7280
7352
|
else {
|
|
7281
7353
|
console.error("不存在该位置", this.$data.config.position);
|
|
@@ -7447,13 +7519,13 @@ class ToolTip {
|
|
|
7447
7519
|
*/
|
|
7448
7520
|
destory() {
|
|
7449
7521
|
if (this.$el.$toolTip) {
|
|
7450
|
-
this.$el.$
|
|
7522
|
+
this.$el.$toolTip.remove();
|
|
7451
7523
|
}
|
|
7452
|
-
// @ts-
|
|
7524
|
+
// @ts-expect-error
|
|
7453
7525
|
this.$el.$toolTip = null;
|
|
7454
|
-
// @ts-
|
|
7526
|
+
// @ts-expect-error
|
|
7455
7527
|
this.$el.$arrow = null;
|
|
7456
|
-
// @ts-
|
|
7528
|
+
// @ts-expect-error
|
|
7457
7529
|
this.$el.$content = null;
|
|
7458
7530
|
}
|
|
7459
7531
|
/**
|
|
@@ -7501,29 +7573,29 @@ class ToolTip {
|
|
|
7501
7573
|
popsDOMUtils.on(this.$el.$toolTip, "mouseenter touchstart", this.toolTipMouseEnterEvent, this.$data.config.eventOption);
|
|
7502
7574
|
}
|
|
7503
7575
|
/**
|
|
7504
|
-
*
|
|
7576
|
+
* 取消监听事件 - 鼠标|触摸
|
|
7505
7577
|
*/
|
|
7506
7578
|
offToolTipMouseEnterEvent() {
|
|
7507
7579
|
popsDOMUtils.off(this.$el.$toolTip, "mouseenter touchstart", this.toolTipMouseEnterEvent, this.$data.config.eventOption);
|
|
7508
7580
|
}
|
|
7509
7581
|
/**
|
|
7510
|
-
*
|
|
7582
|
+
* 离开事件 - 鼠标|触摸
|
|
7511
7583
|
*/
|
|
7512
7584
|
toolTipMouseLeaveEvent(event) {
|
|
7513
7585
|
this.close(event);
|
|
7514
7586
|
// this.$el.$toolTip.style.animationPlayState = "running";
|
|
7515
7587
|
}
|
|
7516
7588
|
/**
|
|
7517
|
-
*
|
|
7589
|
+
* 监听离开事件 - 鼠标|触摸
|
|
7518
7590
|
*/
|
|
7519
7591
|
onToolTipMouseLeaveEvent() {
|
|
7520
|
-
popsDOMUtils.on(this.$el.$toolTip, "mouseleave touchend", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7592
|
+
popsDOMUtils.on(this.$el.$toolTip, "mouseleave touchend touchcancel", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7521
7593
|
}
|
|
7522
7594
|
/**
|
|
7523
|
-
*
|
|
7595
|
+
* 取消监听离开事件 - 鼠标|触摸
|
|
7524
7596
|
*/
|
|
7525
7597
|
offToolTipMouseLeaveEvent() {
|
|
7526
|
-
popsDOMUtils.off(this.$el.$toolTip, "mouseleave touchend", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7598
|
+
popsDOMUtils.off(this.$el.$toolTip, "mouseleave touchend touchcancel", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7527
7599
|
}
|
|
7528
7600
|
}
|
|
7529
7601
|
const PopsTooltip = {
|
|
@@ -7538,6 +7610,15 @@ const PopsTooltip = {
|
|
|
7538
7610
|
throw new TypeError("config.target 必须是HTMLElement类型");
|
|
7539
7611
|
}
|
|
7540
7612
|
config = PopsHandler.handleOnly(popsType, config);
|
|
7613
|
+
if (config.position === "follow") {
|
|
7614
|
+
config.onShowEventName = config.onShowEventName.trim();
|
|
7615
|
+
const showEventNameSplit = config.onShowEventName.split(" ");
|
|
7616
|
+
["mousemove", "touchmove"].forEach((it) => {
|
|
7617
|
+
if (showEventNameSplit.includes(it))
|
|
7618
|
+
return;
|
|
7619
|
+
config.onShowEventName += ` ${it}`;
|
|
7620
|
+
});
|
|
7621
|
+
}
|
|
7541
7622
|
const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
|
|
7542
7623
|
PopsHandler.handleInit($shadowRoot, [
|
|
7543
7624
|
{
|
|
@@ -8802,7 +8883,7 @@ const PanelHandlerComponents = () => {
|
|
|
8802
8883
|
* 监听输入框内容改变
|
|
8803
8884
|
*/
|
|
8804
8885
|
onValueChange() {
|
|
8805
|
-
popsDOMUtils.on(this.$el.input, ["input", "propertychange"],
|
|
8886
|
+
popsDOMUtils.on(this.$el.input, ["input", "propertychange"], (event) => {
|
|
8806
8887
|
this.$data.value = this.$el.input.value;
|
|
8807
8888
|
if (inputType !== "password") {
|
|
8808
8889
|
// 不是密码框
|
|
@@ -9175,7 +9256,7 @@ const PanelHandlerComponents = () => {
|
|
|
9175
9256
|
* 监听点击事件
|
|
9176
9257
|
*/
|
|
9177
9258
|
onClick() {
|
|
9178
|
-
popsDOMUtils.on(this.$el.$select, "click",
|
|
9259
|
+
popsDOMUtils.on(this.$el.$select, "click", (event) => {
|
|
9179
9260
|
this.setSelectOptionsDisableStatus();
|
|
9180
9261
|
if (typeof viewConfig.clickCallBack === "function") {
|
|
9181
9262
|
const $isSelectedElement = this.$el.$select[this.$el.$select.selectedIndex];
|
|
@@ -10942,7 +11023,7 @@ const PanelHandlerComponents = () => {
|
|
|
10942
11023
|
* 设置按钮的点击事件
|
|
10943
11024
|
*/
|
|
10944
11025
|
onButtonClick() {
|
|
10945
|
-
popsDOMUtils.on(this.$ele.button, "click",
|
|
11026
|
+
popsDOMUtils.on(this.$ele.button, "click", (event) => {
|
|
10946
11027
|
if (typeof viewConfig.callback === "function") {
|
|
10947
11028
|
viewConfig.callback(event);
|
|
10948
11029
|
}
|
|
@@ -11011,13 +11092,13 @@ const PanelHandlerComponents = () => {
|
|
|
11011
11092
|
initContainerItem($container, formItemConfig) {
|
|
11012
11093
|
const containerViewConfig = formItemConfig;
|
|
11013
11094
|
if (containerViewConfig.type === "container") {
|
|
11014
|
-
const
|
|
11095
|
+
const childViewConfig = containerViewConfig["views"];
|
|
11015
11096
|
// 每一项<li>元素
|
|
11016
|
-
const
|
|
11097
|
+
const $itemLi = popsDOMUtils.createElement("li");
|
|
11017
11098
|
// 每一项<li>内的子<ul>元素
|
|
11018
|
-
const
|
|
11019
|
-
|
|
11020
|
-
|
|
11099
|
+
const $itemUL = popsDOMUtils.createElement("ul");
|
|
11100
|
+
$itemUL.classList.add("pops-panel-forms-container-item-formlist");
|
|
11101
|
+
$itemLi.classList.add("pops-panel-forms-container-item");
|
|
11021
11102
|
// 区域头部的文字
|
|
11022
11103
|
const formHeaderDivElement = popsDOMUtils.createElement("div", {
|
|
11023
11104
|
className: "pops-panel-forms-container-item-header-text",
|
|
@@ -11037,42 +11118,42 @@ const PanelHandlerComponents = () => {
|
|
|
11037
11118
|
`);
|
|
11038
11119
|
// 添加点击事件
|
|
11039
11120
|
popsDOMUtils.on(formHeaderDivElement, "click", () => {
|
|
11040
|
-
if (
|
|
11041
|
-
|
|
11121
|
+
if ($itemLi.hasAttribute("data-fold-enable")) {
|
|
11122
|
+
$itemLi.removeAttribute("data-fold-enable");
|
|
11042
11123
|
}
|
|
11043
11124
|
else {
|
|
11044
|
-
|
|
11125
|
+
$itemLi.setAttribute("data-fold-enable", "");
|
|
11045
11126
|
}
|
|
11046
11127
|
});
|
|
11047
11128
|
popsDOMUtils.addClassName(formHeaderDivElement, "pops-panel-forms-fold-container");
|
|
11048
11129
|
popsDOMUtils.addClassName(formHeaderDivElement, PopsCommonCSSClassName.userSelectNone);
|
|
11049
|
-
|
|
11130
|
+
$itemLi.setAttribute("data-fold-enable", "");
|
|
11050
11131
|
popsDOMUtils.addClassName(formHeaderDivElement, "pops-panel-forms-fold");
|
|
11051
|
-
|
|
11132
|
+
$itemLi.appendChild(formHeaderDivElement);
|
|
11052
11133
|
}
|
|
11053
11134
|
else {
|
|
11054
11135
|
// 加进容器内
|
|
11055
|
-
|
|
11136
|
+
$itemLi.appendChild(formHeaderDivElement);
|
|
11056
11137
|
}
|
|
11057
|
-
that.setElementClassName(
|
|
11058
|
-
that.setElementAttributes(
|
|
11059
|
-
that.setElementProps(
|
|
11060
|
-
|
|
11138
|
+
that.setElementClassName($itemLi, formItemConfig.className);
|
|
11139
|
+
that.setElementAttributes($itemLi, formItemConfig.attributes);
|
|
11140
|
+
that.setElementProps($itemLi, formItemConfig.props);
|
|
11141
|
+
$itemLi.appendChild($itemUL);
|
|
11142
|
+
$container.appendChild($itemLi);
|
|
11143
|
+
childViewConfig.forEach((childViewConfig) => {
|
|
11061
11144
|
that.uListContainerAddItem(childViewConfig, {
|
|
11062
|
-
ulElement:
|
|
11145
|
+
ulElement: $itemUL,
|
|
11063
11146
|
sectionContainerULElement: that.sectionContainerULElement,
|
|
11064
|
-
formContainerListElement:
|
|
11147
|
+
formContainerListElement: $itemLi,
|
|
11065
11148
|
formHeaderDivElement: formHeaderDivElement,
|
|
11066
11149
|
});
|
|
11067
11150
|
});
|
|
11068
|
-
formContainerListElement.appendChild(formContainerULElement);
|
|
11069
|
-
$container.appendChild(formContainerListElement);
|
|
11070
11151
|
if (typeof containerViewConfig.afterAddToUListCallBack === "function") {
|
|
11071
11152
|
containerViewConfig.afterAddToUListCallBack(viewConfig, {
|
|
11072
|
-
target:
|
|
11073
|
-
ulElement:
|
|
11153
|
+
target: $itemLi,
|
|
11154
|
+
ulElement: $itemUL,
|
|
11074
11155
|
sectionContainerULElement: that.sectionContainerULElement,
|
|
11075
|
-
formContainerListElement:
|
|
11156
|
+
formContainerListElement: $itemLi,
|
|
11076
11157
|
formHeaderDivElement: formHeaderDivElement,
|
|
11077
11158
|
});
|
|
11078
11159
|
}
|
|
@@ -11211,7 +11292,7 @@ const PanelHandlerComponents = () => {
|
|
|
11211
11292
|
},
|
|
11212
11293
|
/** 设置项的点击事件 */
|
|
11213
11294
|
onLiClick() {
|
|
11214
|
-
popsDOMUtils.on($li, "click",
|
|
11295
|
+
popsDOMUtils.on($li, "click", async (event) => {
|
|
11215
11296
|
if (typeof viewConfig.clickCallBack === "function") {
|
|
11216
11297
|
const result = await viewConfig.clickCallBack(event, viewConfig);
|
|
11217
11298
|
if (result) {
|
|
@@ -11539,6 +11620,7 @@ const PopsPanel = {
|
|
|
11539
11620
|
}
|
|
11540
11621
|
// 处理返回的配置
|
|
11541
11622
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
11623
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11542
11624
|
// 为顶部右边的关闭按钮添加点击事件
|
|
11543
11625
|
PopsHandler.handleClickEvent("close", $headerBtnClose, evtConfig, config.btn?.close?.callback);
|
|
11544
11626
|
// 创建到页面中
|
|
@@ -11576,6 +11658,8 @@ const PopsPanel = {
|
|
|
11576
11658
|
$mask: $mask,
|
|
11577
11659
|
$shadowContainer: $shadowContainer,
|
|
11578
11660
|
$shadowRoot: $shadowRoot,
|
|
11661
|
+
config: config,
|
|
11662
|
+
destory: result.close,
|
|
11579
11663
|
});
|
|
11580
11664
|
// 拖拽
|
|
11581
11665
|
if (config.drag) {
|
|
@@ -11587,7 +11671,6 @@ const PopsPanel = {
|
|
|
11587
11671
|
endCallBack: config.dragEndCallBack,
|
|
11588
11672
|
});
|
|
11589
11673
|
}
|
|
11590
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11591
11674
|
return {
|
|
11592
11675
|
...result,
|
|
11593
11676
|
addEventListener: (event, listener, options) => {
|
|
@@ -11779,6 +11862,7 @@ const PopsPrompt = {
|
|
|
11779
11862
|
$elList.push($mask);
|
|
11780
11863
|
}
|
|
11781
11864
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
11865
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11782
11866
|
// 输入框赋值初始值
|
|
11783
11867
|
$input.value = config.content.text;
|
|
11784
11868
|
PopsHandler.handlePromptClickEvent("close", $input, $btnClose, evtConfig, config.btn.close.callback);
|
|
@@ -11801,6 +11885,8 @@ const PopsPrompt = {
|
|
|
11801
11885
|
$mask: $mask,
|
|
11802
11886
|
$shadowContainer: $shadowContainer,
|
|
11803
11887
|
$shadowRoot: $shadowRoot,
|
|
11888
|
+
config: config,
|
|
11889
|
+
destory: result.close,
|
|
11804
11890
|
});
|
|
11805
11891
|
// 拖拽
|
|
11806
11892
|
if (config.drag) {
|
|
@@ -11820,7 +11906,6 @@ const PopsPrompt = {
|
|
|
11820
11906
|
if (config.content.select) {
|
|
11821
11907
|
$input.select();
|
|
11822
11908
|
}
|
|
11823
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11824
11909
|
return result;
|
|
11825
11910
|
},
|
|
11826
11911
|
};
|
|
@@ -11922,6 +12007,7 @@ const PopsRightClickMenuDefaultConfig = () => {
|
|
|
11922
12007
|
beforeAppendToPageCallBack() { },
|
|
11923
12008
|
limitPositionXInView: true,
|
|
11924
12009
|
limitPositionYInView: true,
|
|
12010
|
+
beforeShowCallBack() { },
|
|
11925
12011
|
};
|
|
11926
12012
|
};
|
|
11927
12013
|
|
|
@@ -11981,6 +12067,8 @@ const PopsRightClickMenu = {
|
|
|
11981
12067
|
return;
|
|
11982
12068
|
}
|
|
11983
12069
|
if ($click.className && $click.className === "pops-shadow-container" && $click.shadowRoot != null) {
|
|
12070
|
+
// pops的shadow-container
|
|
12071
|
+
PopsContextMenu.shadowRootCheckClickEvent(event);
|
|
11984
12072
|
return;
|
|
11985
12073
|
}
|
|
11986
12074
|
PopsContextMenu.closeAllMenu(PopsContextMenu.$el.$root);
|
|
@@ -11993,7 +12081,7 @@ const PopsRightClickMenu = {
|
|
|
11993
12081
|
if (!PopsContextMenu.$el.$root) {
|
|
11994
12082
|
return;
|
|
11995
12083
|
}
|
|
11996
|
-
const $click = event.
|
|
12084
|
+
const $click = event.composedPath()[0];
|
|
11997
12085
|
if ($click.closest(`.pops-${popsType}`)) {
|
|
11998
12086
|
return;
|
|
11999
12087
|
}
|
|
@@ -12003,13 +12091,13 @@ const PopsRightClickMenu = {
|
|
|
12003
12091
|
* 添加全局点击检测事件
|
|
12004
12092
|
*/
|
|
12005
12093
|
addWindowCheckClickListener() {
|
|
12006
|
-
popsDOMUtils.on(globalThis, "click touchstart",
|
|
12094
|
+
popsDOMUtils.on(globalThis, "click touchstart", PopsContextMenu.windowCheckClickEvent, {
|
|
12007
12095
|
capture: true,
|
|
12008
12096
|
});
|
|
12009
12097
|
if (config.$target instanceof Node) {
|
|
12010
12098
|
const $shadowRoot = config.$target.getRootNode();
|
|
12011
12099
|
if ($shadowRoot instanceof ShadowRoot) {
|
|
12012
|
-
popsDOMUtils.on($shadowRoot, "click touchstart",
|
|
12100
|
+
popsDOMUtils.on($shadowRoot, "click touchstart", PopsContextMenu.shadowRootCheckClickEvent, {
|
|
12013
12101
|
capture: true,
|
|
12014
12102
|
});
|
|
12015
12103
|
}
|
|
@@ -12019,13 +12107,13 @@ const PopsRightClickMenu = {
|
|
|
12019
12107
|
* 移除全局点击检测事件
|
|
12020
12108
|
*/
|
|
12021
12109
|
removeWindowCheckClickListener() {
|
|
12022
|
-
popsDOMUtils.off(globalThis, "click touchstart",
|
|
12110
|
+
popsDOMUtils.off(globalThis, "click touchstart", PopsContextMenu.windowCheckClickEvent, {
|
|
12023
12111
|
capture: true,
|
|
12024
12112
|
});
|
|
12025
12113
|
if (config.$target instanceof Node) {
|
|
12026
12114
|
const $shadowRoot = config.$target.getRootNode();
|
|
12027
12115
|
if ($shadowRoot instanceof ShadowRoot) {
|
|
12028
|
-
popsDOMUtils.off($shadowRoot, "click touchstart",
|
|
12116
|
+
popsDOMUtils.off($shadowRoot, "click touchstart", PopsContextMenu.windowCheckClickEvent, {
|
|
12029
12117
|
capture: true,
|
|
12030
12118
|
});
|
|
12031
12119
|
}
|
|
@@ -12036,7 +12124,7 @@ const PopsRightClickMenu = {
|
|
|
12036
12124
|
* @param event
|
|
12037
12125
|
* @param selectorTarget
|
|
12038
12126
|
*/
|
|
12039
|
-
contextMenuEvent(event, selectorTarget) {
|
|
12127
|
+
async contextMenuEvent(event, selectorTarget) {
|
|
12040
12128
|
if (config.preventDefault) {
|
|
12041
12129
|
popsDOMUtils.preventEvent(event);
|
|
12042
12130
|
}
|
|
@@ -12045,6 +12133,10 @@ const PopsRightClickMenu = {
|
|
|
12045
12133
|
PopsContextMenu.closeAllMenu(PopsContextMenu.$el.$root);
|
|
12046
12134
|
}
|
|
12047
12135
|
selectorTarget = selectorTarget ?? config.$target;
|
|
12136
|
+
const beforeShowCallBackResult = await config?.beforeShowCallBack(event);
|
|
12137
|
+
if (typeof beforeShowCallBackResult === "boolean" && !beforeShowCallBackResult) {
|
|
12138
|
+
return;
|
|
12139
|
+
}
|
|
12048
12140
|
const rootElement = PopsContextMenu.showMenu(event, config.data, selectorTarget);
|
|
12049
12141
|
PopsContextMenu.$el.$root = rootElement;
|
|
12050
12142
|
if (config.only) {
|
|
@@ -12057,6 +12149,10 @@ const PopsRightClickMenu = {
|
|
|
12057
12149
|
beforeRemoveCallBack(instCommonConfig) {
|
|
12058
12150
|
PopsContextMenu.closeAllMenu(instCommonConfig.$pops);
|
|
12059
12151
|
},
|
|
12152
|
+
config: config,
|
|
12153
|
+
destory: () => {
|
|
12154
|
+
PopsContextMenu.closeAllMenu(rootElement);
|
|
12155
|
+
},
|
|
12060
12156
|
});
|
|
12061
12157
|
}
|
|
12062
12158
|
},
|
|
@@ -12360,7 +12456,8 @@ const PopsRightClickMenu = {
|
|
|
12360
12456
|
menuLiElement.appendChild(iconElement);
|
|
12361
12457
|
}
|
|
12362
12458
|
// 插入文字
|
|
12363
|
-
|
|
12459
|
+
const text = typeof item.text === "function" ? item.text() : item.text;
|
|
12460
|
+
menuLiElement.insertAdjacentHTML("beforeend", PopsSafeUtils.getSafeHTML(`<span>${text}</span>`));
|
|
12364
12461
|
// 如果存在子数据,显示
|
|
12365
12462
|
if (item.item && Array.isArray(item.item)) {
|
|
12366
12463
|
popsDOMUtils.addClassName(menuLiElement, `pops-${popsType}-item`);
|
|
@@ -12999,10 +13096,10 @@ const PopsSearchSuggestion = {
|
|
|
12999
13096
|
setShowEvent(option = defaultListenerOption) {
|
|
13000
13097
|
/* 焦点|点击事件*/
|
|
13001
13098
|
if (config.followPosition === "target") {
|
|
13002
|
-
popsDOMUtils.on([config.$target], ["focus", "click"],
|
|
13099
|
+
popsDOMUtils.on([config.$target], ["focus", "click"], SearchSuggestion.showEvent, option);
|
|
13003
13100
|
}
|
|
13004
13101
|
else if (config.followPosition === "input") {
|
|
13005
|
-
popsDOMUtils.on([config.$inputTarget], ["focus", "click"],
|
|
13102
|
+
popsDOMUtils.on([config.$inputTarget], ["focus", "click"], SearchSuggestion.showEvent, option);
|
|
13006
13103
|
}
|
|
13007
13104
|
else if (config.followPosition === "inputCursor") {
|
|
13008
13105
|
popsDOMUtils.on([config.$inputTarget], ["focus", "click", "input"], SearchSuggestion.showEvent, option);
|
|
@@ -13016,9 +13113,9 @@ const PopsSearchSuggestion = {
|
|
|
13016
13113
|
*/
|
|
13017
13114
|
removeShowEvent(option = defaultListenerOption) {
|
|
13018
13115
|
/* 焦点|点击事件*/
|
|
13019
|
-
popsDOMUtils.off([config.$target, config.$inputTarget], ["focus", "click"],
|
|
13116
|
+
popsDOMUtils.off([config.$target, config.$inputTarget], ["focus", "click"], SearchSuggestion.showEvent, option);
|
|
13020
13117
|
// 内容改变事件
|
|
13021
|
-
popsDOMUtils.off([config.$inputTarget], ["input"],
|
|
13118
|
+
popsDOMUtils.off([config.$inputTarget], ["input"], SearchSuggestion.showEvent, option);
|
|
13022
13119
|
},
|
|
13023
13120
|
/**
|
|
13024
13121
|
* 隐藏搜索建议框的事件
|
|
@@ -13049,7 +13146,7 @@ const PopsSearchSuggestion = {
|
|
|
13049
13146
|
// 全局触摸屏点击事件
|
|
13050
13147
|
if (Array.isArray(SearchSuggestion.selfDocument)) {
|
|
13051
13148
|
SearchSuggestion.selfDocument.forEach(($checkParent) => {
|
|
13052
|
-
popsDOMUtils.on($checkParent, ["click", "touchstart"],
|
|
13149
|
+
popsDOMUtils.on($checkParent, ["click", "touchstart"], SearchSuggestion.hideEvent, option);
|
|
13053
13150
|
});
|
|
13054
13151
|
}
|
|
13055
13152
|
else {
|
|
@@ -13062,11 +13159,11 @@ const PopsSearchSuggestion = {
|
|
|
13062
13159
|
removeHideEvent(option = defaultListenerOption) {
|
|
13063
13160
|
if (Array.isArray(SearchSuggestion.selfDocument)) {
|
|
13064
13161
|
SearchSuggestion.selfDocument.forEach(($checkParent) => {
|
|
13065
|
-
popsDOMUtils.off($checkParent, ["click", "touchstart"],
|
|
13162
|
+
popsDOMUtils.off($checkParent, ["click", "touchstart"], SearchSuggestion.hideEvent, option);
|
|
13066
13163
|
});
|
|
13067
13164
|
}
|
|
13068
13165
|
else {
|
|
13069
|
-
popsDOMUtils.off(SearchSuggestion.selfDocument, ["click", "touchstart"],
|
|
13166
|
+
popsDOMUtils.off(SearchSuggestion.selfDocument, ["click", "touchstart"], SearchSuggestion.hideEvent, option);
|
|
13070
13167
|
}
|
|
13071
13168
|
},
|
|
13072
13169
|
/**
|
|
@@ -13327,7 +13424,7 @@ const PopsSearchSuggestion = {
|
|
|
13327
13424
|
},
|
|
13328
13425
|
};
|
|
13329
13426
|
|
|
13330
|
-
const version = "3.
|
|
13427
|
+
const version = "3.2.0";
|
|
13331
13428
|
|
|
13332
13429
|
class Pops {
|
|
13333
13430
|
/** 配置 */
|