@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.cjs.js
CHANGED
|
@@ -516,7 +516,7 @@ class PopsUtils {
|
|
|
516
516
|
* @param propName
|
|
517
517
|
*/
|
|
518
518
|
delete(target, propName) {
|
|
519
|
-
if (typeof Reflect === "object" && Reflect.deleteProperty) {
|
|
519
|
+
if (typeof Reflect === "object" && typeof Reflect.deleteProperty === "function") {
|
|
520
520
|
Reflect.deleteProperty(target, propName);
|
|
521
521
|
}
|
|
522
522
|
else {
|
|
@@ -1022,13 +1022,13 @@ class PopsDOMUtilsEvent {
|
|
|
1022
1022
|
if (element == null) {
|
|
1023
1023
|
return;
|
|
1024
1024
|
}
|
|
1025
|
-
let
|
|
1025
|
+
let $elList = [];
|
|
1026
1026
|
if (element instanceof NodeList || Array.isArray(element)) {
|
|
1027
1027
|
element = element;
|
|
1028
|
-
|
|
1028
|
+
$elList = $elList.concat(element);
|
|
1029
1029
|
}
|
|
1030
1030
|
else {
|
|
1031
|
-
|
|
1031
|
+
$elList.push(element);
|
|
1032
1032
|
}
|
|
1033
1033
|
let eventTypeList = [];
|
|
1034
1034
|
if (Array.isArray(eventType)) {
|
|
@@ -1079,7 +1079,7 @@ class PopsDOMUtilsEvent {
|
|
|
1079
1079
|
// 目标函数、事件名、回调函数、事件配置、过滤函数
|
|
1080
1080
|
filter = option;
|
|
1081
1081
|
}
|
|
1082
|
-
|
|
1082
|
+
$elList.forEach((elementItem) => {
|
|
1083
1083
|
// 获取对象上的事件
|
|
1084
1084
|
const elementEvents = Reflect.get(elementItem, SymbolEvents) || {};
|
|
1085
1085
|
eventTypeList.forEach((eventName) => {
|
|
@@ -1126,18 +1126,19 @@ class PopsDOMUtilsEvent {
|
|
|
1126
1126
|
* @param eventType (可选)需要取消监听的事件
|
|
1127
1127
|
*/
|
|
1128
1128
|
offAll(element, eventType) {
|
|
1129
|
+
const that = this;
|
|
1129
1130
|
if (typeof element === "string") {
|
|
1130
|
-
element =
|
|
1131
|
+
element = that.selectorAll(element);
|
|
1131
1132
|
}
|
|
1132
1133
|
if (element == null) {
|
|
1133
1134
|
return;
|
|
1134
1135
|
}
|
|
1135
|
-
let
|
|
1136
|
+
let $elList = [];
|
|
1136
1137
|
if (element instanceof NodeList || Array.isArray(element)) {
|
|
1137
|
-
|
|
1138
|
+
$elList = $elList.concat(Array.from(element));
|
|
1138
1139
|
}
|
|
1139
1140
|
else {
|
|
1140
|
-
|
|
1141
|
+
$elList.push(element);
|
|
1141
1142
|
}
|
|
1142
1143
|
let eventTypeList = [];
|
|
1143
1144
|
if (Array.isArray(eventType)) {
|
|
@@ -1146,12 +1147,13 @@ class PopsDOMUtilsEvent {
|
|
|
1146
1147
|
else if (typeof eventType === "string") {
|
|
1147
1148
|
eventTypeList = eventTypeList.concat(eventType.split(" "));
|
|
1148
1149
|
}
|
|
1149
|
-
|
|
1150
|
-
Object.getOwnPropertySymbols(
|
|
1151
|
-
|
|
1150
|
+
$elList.forEach(($elItem) => {
|
|
1151
|
+
const symbolList = [...new Set([...Object.getOwnPropertySymbols($elItem), SymbolEvents])];
|
|
1152
|
+
symbolList.forEach((symbolItem) => {
|
|
1153
|
+
if (!symbolItem.toString().startsWith("Symbol(events_")) {
|
|
1152
1154
|
return;
|
|
1153
1155
|
}
|
|
1154
|
-
const elementEvents =
|
|
1156
|
+
const elementEvents = Reflect.get($elItem, symbolItem) || {};
|
|
1155
1157
|
const iterEventNameList = eventTypeList.length ? eventTypeList : Object.keys(elementEvents);
|
|
1156
1158
|
iterEventNameList.forEach((eventName) => {
|
|
1157
1159
|
const handlers = elementEvents[eventName];
|
|
@@ -1159,11 +1161,12 @@ class PopsDOMUtilsEvent {
|
|
|
1159
1161
|
return;
|
|
1160
1162
|
}
|
|
1161
1163
|
for (const handler of handlers) {
|
|
1162
|
-
|
|
1164
|
+
$elItem.removeEventListener(eventName, handler.callback, {
|
|
1163
1165
|
capture: handler["option"]["capture"],
|
|
1164
1166
|
});
|
|
1165
1167
|
}
|
|
1166
|
-
|
|
1168
|
+
const events = Reflect.get($elItem, symbolItem);
|
|
1169
|
+
popsUtils.delete(events, eventName);
|
|
1167
1170
|
});
|
|
1168
1171
|
});
|
|
1169
1172
|
});
|
|
@@ -1906,7 +1909,8 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1906
1909
|
}
|
|
1907
1910
|
return $el.classList.contains(className);
|
|
1908
1911
|
}
|
|
1909
|
-
css(
|
|
1912
|
+
css($el, property, value) {
|
|
1913
|
+
const that = this;
|
|
1910
1914
|
/**
|
|
1911
1915
|
* 把纯数字没有px的加上
|
|
1912
1916
|
*/
|
|
@@ -1920,10 +1924,33 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1920
1924
|
}
|
|
1921
1925
|
return propertyValue;
|
|
1922
1926
|
}
|
|
1923
|
-
if (typeof
|
|
1924
|
-
|
|
1927
|
+
if (typeof $el === "string") {
|
|
1928
|
+
$el = that.selectorAll($el);
|
|
1925
1929
|
}
|
|
1926
|
-
if (
|
|
1930
|
+
if ($el == null) {
|
|
1931
|
+
return;
|
|
1932
|
+
}
|
|
1933
|
+
if (Array.isArray($el) || $el instanceof NodeList) {
|
|
1934
|
+
if (typeof property === "string") {
|
|
1935
|
+
if (value == null) {
|
|
1936
|
+
// 获取属性
|
|
1937
|
+
return that.css($el[0], property);
|
|
1938
|
+
}
|
|
1939
|
+
else {
|
|
1940
|
+
// 设置属性
|
|
1941
|
+
$el.forEach(($elItem) => {
|
|
1942
|
+
that.css($elItem, property);
|
|
1943
|
+
});
|
|
1944
|
+
return;
|
|
1945
|
+
}
|
|
1946
|
+
}
|
|
1947
|
+
else if (typeof property === "object") {
|
|
1948
|
+
// 设置属性
|
|
1949
|
+
$el.forEach(($elItem) => {
|
|
1950
|
+
that.css($elItem, property);
|
|
1951
|
+
});
|
|
1952
|
+
return;
|
|
1953
|
+
}
|
|
1927
1954
|
return;
|
|
1928
1955
|
}
|
|
1929
1956
|
const setStyleProperty = (propertyName, propertyValue) => {
|
|
@@ -1932,16 +1959,16 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1932
1959
|
.trim()
|
|
1933
1960
|
.replace(/!important$/gi, "")
|
|
1934
1961
|
.trim();
|
|
1935
|
-
|
|
1962
|
+
$el.style.setProperty(propertyName, propertyValue, "important");
|
|
1936
1963
|
}
|
|
1937
1964
|
else {
|
|
1938
1965
|
propertyValue = handlePixe(propertyName, propertyValue);
|
|
1939
|
-
|
|
1966
|
+
$el.style.setProperty(propertyName, propertyValue);
|
|
1940
1967
|
}
|
|
1941
1968
|
};
|
|
1942
1969
|
if (typeof property === "string") {
|
|
1943
1970
|
if (value == null) {
|
|
1944
|
-
return getComputedStyle(
|
|
1971
|
+
return PopsCore.globalThis.getComputedStyle($el).getPropertyValue(property);
|
|
1945
1972
|
}
|
|
1946
1973
|
else {
|
|
1947
1974
|
setStyleProperty(property, value);
|
|
@@ -1953,6 +1980,10 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
|
|
|
1953
1980
|
setStyleProperty(prop, value);
|
|
1954
1981
|
}
|
|
1955
1982
|
}
|
|
1983
|
+
else {
|
|
1984
|
+
// 其他情况
|
|
1985
|
+
throw new TypeError("property must be string or object");
|
|
1986
|
+
}
|
|
1956
1987
|
}
|
|
1957
1988
|
/**
|
|
1958
1989
|
* 创建元素
|
|
@@ -3087,16 +3118,16 @@ const PopsInstanceUtils = {
|
|
|
3087
3118
|
},
|
|
3088
3119
|
/**
|
|
3089
3120
|
* 删除配置中对应的对象
|
|
3090
|
-
* @param
|
|
3121
|
+
* @param totalInstConfigList 配置实例列表
|
|
3091
3122
|
* @param guid 唯一标识
|
|
3092
3123
|
* @param isAll 是否全部删除
|
|
3093
3124
|
*/
|
|
3094
|
-
removeInstance(
|
|
3125
|
+
async removeInstance(totalInstConfigList, guid, isAll = false) {
|
|
3095
3126
|
/**
|
|
3096
3127
|
* 移除元素实例
|
|
3097
3128
|
* @param instCommonConfig
|
|
3098
3129
|
*/
|
|
3099
|
-
function
|
|
3130
|
+
const removeInst = function (instCommonConfig) {
|
|
3100
3131
|
if (typeof instCommonConfig.beforeRemoveCallBack === "function") {
|
|
3101
3132
|
// 调用移除签的回调
|
|
3102
3133
|
instCommonConfig.beforeRemoveCallBack(instCommonConfig);
|
|
@@ -3105,39 +3136,44 @@ const PopsInstanceUtils = {
|
|
|
3105
3136
|
instCommonConfig?.$pops?.remove();
|
|
3106
3137
|
instCommonConfig?.$mask?.remove();
|
|
3107
3138
|
instCommonConfig?.$shadowContainer?.remove();
|
|
3108
|
-
}
|
|
3139
|
+
};
|
|
3140
|
+
const asyncInstTask = [];
|
|
3109
3141
|
// [ inst[], inst[],...]
|
|
3110
|
-
|
|
3142
|
+
totalInstConfigList.forEach((instConfigList) => {
|
|
3111
3143
|
// inst[]
|
|
3112
|
-
instConfigList.forEach((instConfigItem, index) => {
|
|
3144
|
+
instConfigList.forEach(async (instConfigItem, index) => {
|
|
3113
3145
|
// 移除全部或者guid相同
|
|
3114
|
-
if (isAll ||
|
|
3146
|
+
if (isAll || (typeof guid === "string" && instConfigItem.guid === guid)) {
|
|
3115
3147
|
// 判断是否有动画
|
|
3116
3148
|
const animName = instConfigItem.$anim.getAttribute("anim");
|
|
3117
3149
|
if (PopsAnimation.hasAnim(animName)) {
|
|
3118
3150
|
const reverseAnimName = animName + "-reverse";
|
|
3119
|
-
instConfigItem.$anim
|
|
3120
|
-
instConfigItem.$anim
|
|
3121
|
-
instConfigItem.$anim
|
|
3122
|
-
if (PopsAnimation.hasAnim(instConfigItem.$anim
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3151
|
+
popsDOMUtils.css(instConfigItem.$anim, "width", "100%");
|
|
3152
|
+
popsDOMUtils.css(instConfigItem.$anim, "height", "100%");
|
|
3153
|
+
popsDOMUtils.css(instConfigItem.$anim, "animation-name", reverseAnimName);
|
|
3154
|
+
if (PopsAnimation.hasAnim(popsDOMUtils.css(instConfigItem.$anim, "animation-name"))) {
|
|
3155
|
+
asyncInstTask.push(new Promise((resolve) => {
|
|
3156
|
+
popsDOMUtils.on(instConfigItem.$anim, popsDOMUtils.getAnimationEndNameList(), function () {
|
|
3157
|
+
removeInst(instConfigItem);
|
|
3158
|
+
resolve();
|
|
3159
|
+
}, {
|
|
3160
|
+
capture: true,
|
|
3161
|
+
});
|
|
3162
|
+
}));
|
|
3128
3163
|
}
|
|
3129
3164
|
else {
|
|
3130
|
-
|
|
3165
|
+
removeInst(instConfigItem);
|
|
3131
3166
|
}
|
|
3132
3167
|
}
|
|
3133
3168
|
else {
|
|
3134
|
-
|
|
3169
|
+
removeInst(instConfigItem);
|
|
3135
3170
|
}
|
|
3136
3171
|
instConfigList.splice(index, 1);
|
|
3137
3172
|
}
|
|
3138
3173
|
});
|
|
3139
3174
|
});
|
|
3140
|
-
|
|
3175
|
+
await Promise.all(asyncInstTask);
|
|
3176
|
+
return totalInstConfigList;
|
|
3141
3177
|
},
|
|
3142
3178
|
/**
|
|
3143
3179
|
* 隐藏
|
|
@@ -3282,8 +3318,9 @@ const PopsInstanceUtils = {
|
|
|
3282
3318
|
* @param config
|
|
3283
3319
|
* @param $anim
|
|
3284
3320
|
*/
|
|
3285
|
-
close(config, popsType, instConfigList, guid, $anim) {
|
|
3286
|
-
|
|
3321
|
+
async close(config, popsType, instConfigList, guid, $anim) {
|
|
3322
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
3323
|
+
await new Promise(async (resolve) => {
|
|
3287
3324
|
const $pops = $anim.querySelector(".pops[type-value]");
|
|
3288
3325
|
const drawerConfig = config;
|
|
3289
3326
|
/**
|
|
@@ -3293,12 +3330,12 @@ const PopsInstanceUtils = {
|
|
|
3293
3330
|
/**
|
|
3294
3331
|
* 弹窗已关闭的回调
|
|
3295
3332
|
*/
|
|
3296
|
-
function closeCallBack(event) {
|
|
3333
|
+
async function closeCallBack(event) {
|
|
3297
3334
|
if (event.propertyName !== "transform") {
|
|
3298
3335
|
return;
|
|
3299
3336
|
}
|
|
3300
|
-
popsDOMUtils.off($pops, popsDOMUtils.getTransitionEndNameList(),
|
|
3301
|
-
PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3337
|
+
popsDOMUtils.off($pops, popsDOMUtils.getTransitionEndNameList(), closeCallBack);
|
|
3338
|
+
await PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3302
3339
|
resolve();
|
|
3303
3340
|
}
|
|
3304
3341
|
// 监听过渡结束
|
|
@@ -3330,10 +3367,32 @@ const PopsInstanceUtils = {
|
|
|
3330
3367
|
}, drawerConfig.closeDelay);
|
|
3331
3368
|
}
|
|
3332
3369
|
else {
|
|
3333
|
-
PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3370
|
+
await PopsInstanceUtils.removeInstance([instConfigList], guid);
|
|
3334
3371
|
resolve();
|
|
3335
3372
|
}
|
|
3336
3373
|
});
|
|
3374
|
+
// 判断组件内是否有rightClickMenu、tooltip、searchSuggestion组件
|
|
3375
|
+
// 有的话也需要关闭
|
|
3376
|
+
PopsInstData.rightClickMenu.forEach((itemConfig) => {
|
|
3377
|
+
const config = itemConfig.config;
|
|
3378
|
+
if (config.$target instanceof HTMLElement) {
|
|
3379
|
+
const $root = config.$target.getRootNode();
|
|
3380
|
+
if ($root instanceof HTMLElement && $root.parentElement == null) {
|
|
3381
|
+
// 触发销毁元素
|
|
3382
|
+
itemConfig.destory();
|
|
3383
|
+
}
|
|
3384
|
+
}
|
|
3385
|
+
});
|
|
3386
|
+
PopsInstData.tooltip.forEach((itemConfig) => {
|
|
3387
|
+
const config = itemConfig.config;
|
|
3388
|
+
if (config.$target instanceof HTMLElement) {
|
|
3389
|
+
const $root = config.$target.getRootNode();
|
|
3390
|
+
if ($root instanceof HTMLElement && $root.parentElement == null) {
|
|
3391
|
+
// 触发销毁元素
|
|
3392
|
+
itemConfig.destory();
|
|
3393
|
+
}
|
|
3394
|
+
}
|
|
3395
|
+
});
|
|
3337
3396
|
},
|
|
3338
3397
|
/**
|
|
3339
3398
|
* 拖拽元素
|
|
@@ -3672,12 +3731,12 @@ const PopsHandler = {
|
|
|
3672
3731
|
element.hasAttribute("anim"));
|
|
3673
3732
|
}
|
|
3674
3733
|
// 判断按下的元素是否是pops-anim
|
|
3675
|
-
popsDOMUtils.on(config.animElement, ["touchstart", "mousedown"],
|
|
3734
|
+
popsDOMUtils.on(config.animElement, ["touchstart", "mousedown"], (event) => {
|
|
3676
3735
|
const $click = event.composedPath()[0];
|
|
3677
3736
|
isMaskClick = isAnimElement($click);
|
|
3678
3737
|
});
|
|
3679
3738
|
// 如果有动画层,在动画层上监听点击事件
|
|
3680
|
-
popsDOMUtils.on(config.animElement, "click",
|
|
3739
|
+
popsDOMUtils.on(config.animElement, "click", (event) => {
|
|
3681
3740
|
const $click = event.composedPath()[0];
|
|
3682
3741
|
if (isAnimElement($click) && isMaskClick) {
|
|
3683
3742
|
return clickEvent(event);
|
|
@@ -3685,7 +3744,7 @@ const PopsHandler = {
|
|
|
3685
3744
|
});
|
|
3686
3745
|
// 在遮罩层监听点击事件
|
|
3687
3746
|
// 如果有动画层,那么该点击事件触发不了
|
|
3688
|
-
popsDOMUtils.on(result.maskElement, "click",
|
|
3747
|
+
popsDOMUtils.on(result.maskElement, "click", (event) => {
|
|
3689
3748
|
isMaskClick = true;
|
|
3690
3749
|
clickEvent(event);
|
|
3691
3750
|
});
|
|
@@ -3828,13 +3887,13 @@ const PopsHandler = {
|
|
|
3828
3887
|
* @param guid
|
|
3829
3888
|
* @param $shadowContainer
|
|
3830
3889
|
* @param $shadowRoot
|
|
3831
|
-
* @param
|
|
3890
|
+
* @param type 当前弹窗类型
|
|
3832
3891
|
* @param $anim 动画层
|
|
3833
3892
|
* @param $pops 主元素
|
|
3834
3893
|
* @param $mask 遮罩层
|
|
3835
3894
|
* @param config 当前配置
|
|
3836
3895
|
*/
|
|
3837
|
-
handleEventConfig(config, guid, $shadowContainer, $shadowRoot,
|
|
3896
|
+
handleEventConfig(config, guid, $shadowContainer, $shadowRoot, type, $anim, $pops, $mask) {
|
|
3838
3897
|
return {
|
|
3839
3898
|
$shadowContainer: $shadowContainer,
|
|
3840
3899
|
$shadowRoot: $shadowRoot,
|
|
@@ -3842,44 +3901,47 @@ const PopsHandler = {
|
|
|
3842
3901
|
$anim: $anim,
|
|
3843
3902
|
$pops: $pops,
|
|
3844
3903
|
$mask: $mask,
|
|
3845
|
-
mode:
|
|
3904
|
+
mode: type,
|
|
3846
3905
|
guid: guid,
|
|
3847
3906
|
close() {
|
|
3848
|
-
return PopsInstanceUtils.close(config,
|
|
3907
|
+
return PopsInstanceUtils.close(config, type, PopsInstData[type], guid, $anim);
|
|
3849
3908
|
},
|
|
3850
3909
|
hide() {
|
|
3851
|
-
return PopsInstanceUtils.hide(config,
|
|
3910
|
+
return PopsInstanceUtils.hide(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3852
3911
|
},
|
|
3853
|
-
show() {
|
|
3854
|
-
|
|
3912
|
+
show($parent) {
|
|
3913
|
+
if ($parent) {
|
|
3914
|
+
$parent.appendChild(PopsInstData[type][0].$shadowRoot);
|
|
3915
|
+
}
|
|
3916
|
+
return PopsInstanceUtils.show(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3855
3917
|
},
|
|
3856
3918
|
};
|
|
3857
3919
|
},
|
|
3858
3920
|
/**
|
|
3859
3921
|
* 获取loading的事件配置
|
|
3860
3922
|
* @param guid
|
|
3861
|
-
* @param
|
|
3923
|
+
* @param type 当前弹窗类型
|
|
3862
3924
|
* @param $anim 动画层
|
|
3863
3925
|
* @param $pops 主元素
|
|
3864
3926
|
* @param $mask 遮罩层
|
|
3865
3927
|
* @param config 当前配置
|
|
3866
3928
|
*/
|
|
3867
|
-
handleLoadingEventConfig(config, guid,
|
|
3929
|
+
handleLoadingEventConfig(config, guid, type, $anim, $pops, $mask) {
|
|
3868
3930
|
return {
|
|
3869
3931
|
$el: $anim,
|
|
3870
3932
|
$anim: $anim,
|
|
3871
3933
|
$pops: $pops,
|
|
3872
3934
|
$mask: $mask,
|
|
3873
|
-
mode:
|
|
3935
|
+
mode: type,
|
|
3874
3936
|
guid: guid,
|
|
3875
3937
|
close() {
|
|
3876
|
-
return PopsInstanceUtils.close(config,
|
|
3938
|
+
return PopsInstanceUtils.close(config, type, PopsInstData[type], guid, $anim);
|
|
3877
3939
|
},
|
|
3878
3940
|
hide() {
|
|
3879
|
-
return PopsInstanceUtils.hide(config,
|
|
3941
|
+
return PopsInstanceUtils.hide(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3880
3942
|
},
|
|
3881
3943
|
show() {
|
|
3882
|
-
return PopsInstanceUtils.show(config,
|
|
3944
|
+
return PopsInstanceUtils.show(config, type, PopsInstData[type], guid, $anim, $mask);
|
|
3883
3945
|
},
|
|
3884
3946
|
};
|
|
3885
3947
|
},
|
|
@@ -3992,8 +4054,8 @@ const PopsHandler = {
|
|
|
3992
4054
|
handleOnly(type, config) {
|
|
3993
4055
|
if (config.only) {
|
|
3994
4056
|
// .loading
|
|
3995
|
-
// .tooltip
|
|
3996
4057
|
// .rightClickMenu
|
|
4058
|
+
// .tooltip
|
|
3997
4059
|
// 单独处理
|
|
3998
4060
|
if (type === "loading" || type === "tooltip" || type === "rightClickMenu") {
|
|
3999
4061
|
const inst = PopsInstData[type];
|
|
@@ -4005,11 +4067,11 @@ const PopsHandler = {
|
|
|
4005
4067
|
PopsInstanceUtils.removeInstance([
|
|
4006
4068
|
PopsInstData.alert,
|
|
4007
4069
|
PopsInstData.confirm,
|
|
4008
|
-
PopsInstData.prompt,
|
|
4009
|
-
PopsInstData.iframe,
|
|
4010
4070
|
PopsInstData.drawer,
|
|
4011
4071
|
PopsInstData.folder,
|
|
4072
|
+
PopsInstData.iframe,
|
|
4012
4073
|
PopsInstData.panel,
|
|
4074
|
+
PopsInstData.prompt,
|
|
4013
4075
|
], "", true);
|
|
4014
4076
|
}
|
|
4015
4077
|
}
|
|
@@ -4173,6 +4235,7 @@ const PopsAlert = {
|
|
|
4173
4235
|
}
|
|
4174
4236
|
// 处理返回的配置
|
|
4175
4237
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
4238
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4176
4239
|
// 为顶部右边的关闭按钮添加点击事件
|
|
4177
4240
|
PopsHandler.handleClickEvent("close", $headerCloseBtn, evtConfig, config.btn.close?.callback);
|
|
4178
4241
|
// 为底部ok按钮添加点击事件
|
|
@@ -4195,6 +4258,8 @@ const PopsAlert = {
|
|
|
4195
4258
|
$mask: $mask,
|
|
4196
4259
|
$shadowContainer: $shadowContainer,
|
|
4197
4260
|
$shadowRoot: $shadowRoot,
|
|
4261
|
+
config: config,
|
|
4262
|
+
destory: result.close,
|
|
4198
4263
|
});
|
|
4199
4264
|
// 拖拽
|
|
4200
4265
|
if (config.drag) {
|
|
@@ -4206,7 +4271,6 @@ const PopsAlert = {
|
|
|
4206
4271
|
endCallBack: config.dragEndCallBack,
|
|
4207
4272
|
});
|
|
4208
4273
|
}
|
|
4209
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4210
4274
|
return result;
|
|
4211
4275
|
},
|
|
4212
4276
|
};
|
|
@@ -4380,6 +4444,7 @@ const PopsConfirm = {
|
|
|
4380
4444
|
$elList.push($mask);
|
|
4381
4445
|
}
|
|
4382
4446
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
4447
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4383
4448
|
PopsHandler.handleClickEvent("close", $btnClose, evtConfig, config.btn.close.callback);
|
|
4384
4449
|
PopsHandler.handleClickEvent("ok", $btnOk, evtConfig, config.btn.ok.callback);
|
|
4385
4450
|
PopsHandler.handleClickEvent("cancel", $btnCancel, evtConfig, config.btn.cancel.callback);
|
|
@@ -4400,6 +4465,8 @@ const PopsConfirm = {
|
|
|
4400
4465
|
$mask: $mask,
|
|
4401
4466
|
$shadowContainer: $shadowContainer,
|
|
4402
4467
|
$shadowRoot: $shadowRoot,
|
|
4468
|
+
config: config,
|
|
4469
|
+
destory: result.close,
|
|
4403
4470
|
});
|
|
4404
4471
|
// 拖拽
|
|
4405
4472
|
if (config.drag) {
|
|
@@ -4411,7 +4478,6 @@ const PopsConfirm = {
|
|
|
4411
4478
|
endCallBack: config.dragEndCallBack,
|
|
4412
4479
|
});
|
|
4413
4480
|
}
|
|
4414
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4415
4481
|
return result;
|
|
4416
4482
|
},
|
|
4417
4483
|
};
|
|
@@ -4590,6 +4656,7 @@ const PopsDrawer = {
|
|
|
4590
4656
|
$elList.push($mask);
|
|
4591
4657
|
}
|
|
4592
4658
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
4659
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4593
4660
|
// 处理方向
|
|
4594
4661
|
$pops.setAttribute("direction", config.direction);
|
|
4595
4662
|
// 处理border-radius
|
|
@@ -4685,8 +4752,9 @@ const PopsDrawer = {
|
|
|
4685
4752
|
$mask: $mask,
|
|
4686
4753
|
$shadowContainer: $shadowContainer,
|
|
4687
4754
|
$shadowRoot: $shadowRoot,
|
|
4755
|
+
config: config,
|
|
4756
|
+
destory: result.close,
|
|
4688
4757
|
});
|
|
4689
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
4690
4758
|
return result;
|
|
4691
4759
|
},
|
|
4692
4760
|
};
|
|
@@ -5195,6 +5263,7 @@ const PopsFolder = {
|
|
|
5195
5263
|
}
|
|
5196
5264
|
// 事件
|
|
5197
5265
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
5266
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
5198
5267
|
PopsHandler.handleClickEvent("close", $btnCloseBtn, evtConfig, config.btn.close.callback);
|
|
5199
5268
|
PopsHandler.handleClickEvent("ok", btnOkElement, evtConfig, config.btn.ok.callback);
|
|
5200
5269
|
PopsHandler.handleClickEvent("cancel", btnCancelElement, evtConfig, config.btn.cancel.callback);
|
|
@@ -5774,8 +5843,9 @@ const PopsFolder = {
|
|
|
5774
5843
|
$mask: $mask,
|
|
5775
5844
|
$shadowContainer: $shadowContainer,
|
|
5776
5845
|
$shadowRoot: $shadowRoot,
|
|
5846
|
+
config: config,
|
|
5847
|
+
destory: result.close,
|
|
5777
5848
|
});
|
|
5778
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
5779
5849
|
return result;
|
|
5780
5850
|
},
|
|
5781
5851
|
};
|
|
@@ -5931,6 +6001,7 @@ const PopsIframe = {
|
|
|
5931
6001
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
5932
6002
|
// 赋值额外的$iframe参数
|
|
5933
6003
|
evtConfig.$iframe = $iframe;
|
|
6004
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
5934
6005
|
popsDOMUtils.on($anim, popsDOMUtils.getAnimationEndNameList(), function () {
|
|
5935
6006
|
// 动画加载完毕
|
|
5936
6007
|
$anim.style.width = "0%";
|
|
@@ -6062,10 +6133,10 @@ const PopsIframe = {
|
|
|
6062
6133
|
capture: true,
|
|
6063
6134
|
});
|
|
6064
6135
|
// 关闭按钮点击事件
|
|
6065
|
-
popsDOMUtils.on(headerCloseBtnElement, "click", (event) => {
|
|
6136
|
+
popsDOMUtils.on(headerCloseBtnElement, "click", async (event) => {
|
|
6066
6137
|
event.preventDefault();
|
|
6067
6138
|
event.stopPropagation();
|
|
6068
|
-
PopsInstanceUtils.removeInstance([PopsInstData.iframe], guid, false);
|
|
6139
|
+
await PopsInstanceUtils.removeInstance([PopsInstData.iframe], guid, false);
|
|
6069
6140
|
if (typeof config?.btn?.close?.callback === "function") {
|
|
6070
6141
|
config.btn.close.callback(evtConfig, event);
|
|
6071
6142
|
}
|
|
@@ -6079,8 +6150,9 @@ const PopsIframe = {
|
|
|
6079
6150
|
$mask: $mask,
|
|
6080
6151
|
$shadowContainer: $shadowContainer,
|
|
6081
6152
|
$shadowRoot: $shadowRoot,
|
|
6153
|
+
config: config,
|
|
6154
|
+
destory: result.close,
|
|
6082
6155
|
});
|
|
6083
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
6084
6156
|
return result;
|
|
6085
6157
|
},
|
|
6086
6158
|
};
|
|
@@ -7046,7 +7118,7 @@ const PopsTooltipDefaultConfig = () => {
|
|
|
7046
7118
|
isFixed: false,
|
|
7047
7119
|
alwaysShow: false,
|
|
7048
7120
|
onShowEventName: "mouseenter touchstart",
|
|
7049
|
-
onCloseEventName: "mouseleave touchend",
|
|
7121
|
+
onCloseEventName: "mouseleave touchend touchcancel",
|
|
7050
7122
|
zIndex: 10000,
|
|
7051
7123
|
only: false,
|
|
7052
7124
|
eventOption: {
|
|
@@ -7272,12 +7344,12 @@ class ToolTip {
|
|
|
7272
7344
|
changePosition(event) {
|
|
7273
7345
|
const positionInfo = this.calcToolTipPosition(this.$data.config.$target, this.$data.config.arrowDistance, this.$data.config.otherDistance, event);
|
|
7274
7346
|
const positionKey = this.$data.config.position.toUpperCase();
|
|
7275
|
-
const
|
|
7276
|
-
if (
|
|
7277
|
-
this.$el.$toolTip.style.left =
|
|
7278
|
-
this.$el.$toolTip.style.top =
|
|
7279
|
-
this.$el.$toolTip.setAttribute("data-motion",
|
|
7280
|
-
this.$el.$arrow.setAttribute("data-position",
|
|
7347
|
+
const position = positionInfo[positionKey];
|
|
7348
|
+
if (position) {
|
|
7349
|
+
this.$el.$toolTip.style.left = position.left + "px";
|
|
7350
|
+
this.$el.$toolTip.style.top = position.top + "px";
|
|
7351
|
+
this.$el.$toolTip.setAttribute("data-motion", position.motion);
|
|
7352
|
+
this.$el.$arrow.setAttribute("data-position", position.arrow);
|
|
7281
7353
|
}
|
|
7282
7354
|
else {
|
|
7283
7355
|
console.error("不存在该位置", this.$data.config.position);
|
|
@@ -7449,13 +7521,13 @@ class ToolTip {
|
|
|
7449
7521
|
*/
|
|
7450
7522
|
destory() {
|
|
7451
7523
|
if (this.$el.$toolTip) {
|
|
7452
|
-
this.$el.$
|
|
7524
|
+
this.$el.$toolTip.remove();
|
|
7453
7525
|
}
|
|
7454
|
-
// @ts-
|
|
7526
|
+
// @ts-expect-error
|
|
7455
7527
|
this.$el.$toolTip = null;
|
|
7456
|
-
// @ts-
|
|
7528
|
+
// @ts-expect-error
|
|
7457
7529
|
this.$el.$arrow = null;
|
|
7458
|
-
// @ts-
|
|
7530
|
+
// @ts-expect-error
|
|
7459
7531
|
this.$el.$content = null;
|
|
7460
7532
|
}
|
|
7461
7533
|
/**
|
|
@@ -7503,29 +7575,29 @@ class ToolTip {
|
|
|
7503
7575
|
popsDOMUtils.on(this.$el.$toolTip, "mouseenter touchstart", this.toolTipMouseEnterEvent, this.$data.config.eventOption);
|
|
7504
7576
|
}
|
|
7505
7577
|
/**
|
|
7506
|
-
*
|
|
7578
|
+
* 取消监听事件 - 鼠标|触摸
|
|
7507
7579
|
*/
|
|
7508
7580
|
offToolTipMouseEnterEvent() {
|
|
7509
7581
|
popsDOMUtils.off(this.$el.$toolTip, "mouseenter touchstart", this.toolTipMouseEnterEvent, this.$data.config.eventOption);
|
|
7510
7582
|
}
|
|
7511
7583
|
/**
|
|
7512
|
-
*
|
|
7584
|
+
* 离开事件 - 鼠标|触摸
|
|
7513
7585
|
*/
|
|
7514
7586
|
toolTipMouseLeaveEvent(event) {
|
|
7515
7587
|
this.close(event);
|
|
7516
7588
|
// this.$el.$toolTip.style.animationPlayState = "running";
|
|
7517
7589
|
}
|
|
7518
7590
|
/**
|
|
7519
|
-
*
|
|
7591
|
+
* 监听离开事件 - 鼠标|触摸
|
|
7520
7592
|
*/
|
|
7521
7593
|
onToolTipMouseLeaveEvent() {
|
|
7522
|
-
popsDOMUtils.on(this.$el.$toolTip, "mouseleave touchend", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7594
|
+
popsDOMUtils.on(this.$el.$toolTip, "mouseleave touchend touchcancel", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7523
7595
|
}
|
|
7524
7596
|
/**
|
|
7525
|
-
*
|
|
7597
|
+
* 取消监听离开事件 - 鼠标|触摸
|
|
7526
7598
|
*/
|
|
7527
7599
|
offToolTipMouseLeaveEvent() {
|
|
7528
|
-
popsDOMUtils.off(this.$el.$toolTip, "mouseleave touchend", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7600
|
+
popsDOMUtils.off(this.$el.$toolTip, "mouseleave touchend touchcancel", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
|
|
7529
7601
|
}
|
|
7530
7602
|
}
|
|
7531
7603
|
const PopsTooltip = {
|
|
@@ -7540,6 +7612,15 @@ const PopsTooltip = {
|
|
|
7540
7612
|
throw new TypeError("config.target 必须是HTMLElement类型");
|
|
7541
7613
|
}
|
|
7542
7614
|
config = PopsHandler.handleOnly(popsType, config);
|
|
7615
|
+
if (config.position === "follow") {
|
|
7616
|
+
config.onShowEventName = config.onShowEventName.trim();
|
|
7617
|
+
const showEventNameSplit = config.onShowEventName.split(" ");
|
|
7618
|
+
["mousemove", "touchmove"].forEach((it) => {
|
|
7619
|
+
if (showEventNameSplit.includes(it))
|
|
7620
|
+
return;
|
|
7621
|
+
config.onShowEventName += ` ${it}`;
|
|
7622
|
+
});
|
|
7623
|
+
}
|
|
7543
7624
|
const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
|
|
7544
7625
|
PopsHandler.handleInit($shadowRoot, [
|
|
7545
7626
|
{
|
|
@@ -8804,7 +8885,7 @@ const PanelHandlerComponents = () => {
|
|
|
8804
8885
|
* 监听输入框内容改变
|
|
8805
8886
|
*/
|
|
8806
8887
|
onValueChange() {
|
|
8807
|
-
popsDOMUtils.on(this.$el.input, ["input", "propertychange"],
|
|
8888
|
+
popsDOMUtils.on(this.$el.input, ["input", "propertychange"], (event) => {
|
|
8808
8889
|
this.$data.value = this.$el.input.value;
|
|
8809
8890
|
if (inputType !== "password") {
|
|
8810
8891
|
// 不是密码框
|
|
@@ -9177,7 +9258,7 @@ const PanelHandlerComponents = () => {
|
|
|
9177
9258
|
* 监听点击事件
|
|
9178
9259
|
*/
|
|
9179
9260
|
onClick() {
|
|
9180
|
-
popsDOMUtils.on(this.$el.$select, "click",
|
|
9261
|
+
popsDOMUtils.on(this.$el.$select, "click", (event) => {
|
|
9181
9262
|
this.setSelectOptionsDisableStatus();
|
|
9182
9263
|
if (typeof viewConfig.clickCallBack === "function") {
|
|
9183
9264
|
const $isSelectedElement = this.$el.$select[this.$el.$select.selectedIndex];
|
|
@@ -10944,7 +11025,7 @@ const PanelHandlerComponents = () => {
|
|
|
10944
11025
|
* 设置按钮的点击事件
|
|
10945
11026
|
*/
|
|
10946
11027
|
onButtonClick() {
|
|
10947
|
-
popsDOMUtils.on(this.$ele.button, "click",
|
|
11028
|
+
popsDOMUtils.on(this.$ele.button, "click", (event) => {
|
|
10948
11029
|
if (typeof viewConfig.callback === "function") {
|
|
10949
11030
|
viewConfig.callback(event);
|
|
10950
11031
|
}
|
|
@@ -11013,13 +11094,13 @@ const PanelHandlerComponents = () => {
|
|
|
11013
11094
|
initContainerItem($container, formItemConfig) {
|
|
11014
11095
|
const containerViewConfig = formItemConfig;
|
|
11015
11096
|
if (containerViewConfig.type === "container") {
|
|
11016
|
-
const
|
|
11097
|
+
const childViewConfig = containerViewConfig["views"];
|
|
11017
11098
|
// 每一项<li>元素
|
|
11018
|
-
const
|
|
11099
|
+
const $itemLi = popsDOMUtils.createElement("li");
|
|
11019
11100
|
// 每一项<li>内的子<ul>元素
|
|
11020
|
-
const
|
|
11021
|
-
|
|
11022
|
-
|
|
11101
|
+
const $itemUL = popsDOMUtils.createElement("ul");
|
|
11102
|
+
$itemUL.classList.add("pops-panel-forms-container-item-formlist");
|
|
11103
|
+
$itemLi.classList.add("pops-panel-forms-container-item");
|
|
11023
11104
|
// 区域头部的文字
|
|
11024
11105
|
const formHeaderDivElement = popsDOMUtils.createElement("div", {
|
|
11025
11106
|
className: "pops-panel-forms-container-item-header-text",
|
|
@@ -11039,42 +11120,42 @@ const PanelHandlerComponents = () => {
|
|
|
11039
11120
|
`);
|
|
11040
11121
|
// 添加点击事件
|
|
11041
11122
|
popsDOMUtils.on(formHeaderDivElement, "click", () => {
|
|
11042
|
-
if (
|
|
11043
|
-
|
|
11123
|
+
if ($itemLi.hasAttribute("data-fold-enable")) {
|
|
11124
|
+
$itemLi.removeAttribute("data-fold-enable");
|
|
11044
11125
|
}
|
|
11045
11126
|
else {
|
|
11046
|
-
|
|
11127
|
+
$itemLi.setAttribute("data-fold-enable", "");
|
|
11047
11128
|
}
|
|
11048
11129
|
});
|
|
11049
11130
|
popsDOMUtils.addClassName(formHeaderDivElement, "pops-panel-forms-fold-container");
|
|
11050
11131
|
popsDOMUtils.addClassName(formHeaderDivElement, PopsCommonCSSClassName.userSelectNone);
|
|
11051
|
-
|
|
11132
|
+
$itemLi.setAttribute("data-fold-enable", "");
|
|
11052
11133
|
popsDOMUtils.addClassName(formHeaderDivElement, "pops-panel-forms-fold");
|
|
11053
|
-
|
|
11134
|
+
$itemLi.appendChild(formHeaderDivElement);
|
|
11054
11135
|
}
|
|
11055
11136
|
else {
|
|
11056
11137
|
// 加进容器内
|
|
11057
|
-
|
|
11138
|
+
$itemLi.appendChild(formHeaderDivElement);
|
|
11058
11139
|
}
|
|
11059
|
-
that.setElementClassName(
|
|
11060
|
-
that.setElementAttributes(
|
|
11061
|
-
that.setElementProps(
|
|
11062
|
-
|
|
11140
|
+
that.setElementClassName($itemLi, formItemConfig.className);
|
|
11141
|
+
that.setElementAttributes($itemLi, formItemConfig.attributes);
|
|
11142
|
+
that.setElementProps($itemLi, formItemConfig.props);
|
|
11143
|
+
$itemLi.appendChild($itemUL);
|
|
11144
|
+
$container.appendChild($itemLi);
|
|
11145
|
+
childViewConfig.forEach((childViewConfig) => {
|
|
11063
11146
|
that.uListContainerAddItem(childViewConfig, {
|
|
11064
|
-
ulElement:
|
|
11147
|
+
ulElement: $itemUL,
|
|
11065
11148
|
sectionContainerULElement: that.sectionContainerULElement,
|
|
11066
|
-
formContainerListElement:
|
|
11149
|
+
formContainerListElement: $itemLi,
|
|
11067
11150
|
formHeaderDivElement: formHeaderDivElement,
|
|
11068
11151
|
});
|
|
11069
11152
|
});
|
|
11070
|
-
formContainerListElement.appendChild(formContainerULElement);
|
|
11071
|
-
$container.appendChild(formContainerListElement);
|
|
11072
11153
|
if (typeof containerViewConfig.afterAddToUListCallBack === "function") {
|
|
11073
11154
|
containerViewConfig.afterAddToUListCallBack(viewConfig, {
|
|
11074
|
-
target:
|
|
11075
|
-
ulElement:
|
|
11155
|
+
target: $itemLi,
|
|
11156
|
+
ulElement: $itemUL,
|
|
11076
11157
|
sectionContainerULElement: that.sectionContainerULElement,
|
|
11077
|
-
formContainerListElement:
|
|
11158
|
+
formContainerListElement: $itemLi,
|
|
11078
11159
|
formHeaderDivElement: formHeaderDivElement,
|
|
11079
11160
|
});
|
|
11080
11161
|
}
|
|
@@ -11213,7 +11294,7 @@ const PanelHandlerComponents = () => {
|
|
|
11213
11294
|
},
|
|
11214
11295
|
/** 设置项的点击事件 */
|
|
11215
11296
|
onLiClick() {
|
|
11216
|
-
popsDOMUtils.on($li, "click",
|
|
11297
|
+
popsDOMUtils.on($li, "click", async (event) => {
|
|
11217
11298
|
if (typeof viewConfig.clickCallBack === "function") {
|
|
11218
11299
|
const result = await viewConfig.clickCallBack(event, viewConfig);
|
|
11219
11300
|
if (result) {
|
|
@@ -11541,6 +11622,7 @@ const PopsPanel = {
|
|
|
11541
11622
|
}
|
|
11542
11623
|
// 处理返回的配置
|
|
11543
11624
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
11625
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11544
11626
|
// 为顶部右边的关闭按钮添加点击事件
|
|
11545
11627
|
PopsHandler.handleClickEvent("close", $headerBtnClose, evtConfig, config.btn?.close?.callback);
|
|
11546
11628
|
// 创建到页面中
|
|
@@ -11578,6 +11660,8 @@ const PopsPanel = {
|
|
|
11578
11660
|
$mask: $mask,
|
|
11579
11661
|
$shadowContainer: $shadowContainer,
|
|
11580
11662
|
$shadowRoot: $shadowRoot,
|
|
11663
|
+
config: config,
|
|
11664
|
+
destory: result.close,
|
|
11581
11665
|
});
|
|
11582
11666
|
// 拖拽
|
|
11583
11667
|
if (config.drag) {
|
|
@@ -11589,7 +11673,6 @@ const PopsPanel = {
|
|
|
11589
11673
|
endCallBack: config.dragEndCallBack,
|
|
11590
11674
|
});
|
|
11591
11675
|
}
|
|
11592
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11593
11676
|
return {
|
|
11594
11677
|
...result,
|
|
11595
11678
|
addEventListener: (event, listener, options) => {
|
|
@@ -11781,6 +11864,7 @@ const PopsPrompt = {
|
|
|
11781
11864
|
$elList.push($mask);
|
|
11782
11865
|
}
|
|
11783
11866
|
const evtConfig = PopsHandler.handleEventConfig(config, guid, $shadowContainer, $shadowRoot, popsType, $anim, $pops, $mask);
|
|
11867
|
+
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11784
11868
|
// 输入框赋值初始值
|
|
11785
11869
|
$input.value = config.content.text;
|
|
11786
11870
|
PopsHandler.handlePromptClickEvent("close", $input, $btnClose, evtConfig, config.btn.close.callback);
|
|
@@ -11803,6 +11887,8 @@ const PopsPrompt = {
|
|
|
11803
11887
|
$mask: $mask,
|
|
11804
11888
|
$shadowContainer: $shadowContainer,
|
|
11805
11889
|
$shadowRoot: $shadowRoot,
|
|
11890
|
+
config: config,
|
|
11891
|
+
destory: result.close,
|
|
11806
11892
|
});
|
|
11807
11893
|
// 拖拽
|
|
11808
11894
|
if (config.drag) {
|
|
@@ -11822,7 +11908,6 @@ const PopsPrompt = {
|
|
|
11822
11908
|
if (config.content.select) {
|
|
11823
11909
|
$input.select();
|
|
11824
11910
|
}
|
|
11825
|
-
const result = PopsHandler.handleResultConfig(evtConfig);
|
|
11826
11911
|
return result;
|
|
11827
11912
|
},
|
|
11828
11913
|
};
|
|
@@ -11924,6 +12009,7 @@ const PopsRightClickMenuDefaultConfig = () => {
|
|
|
11924
12009
|
beforeAppendToPageCallBack() { },
|
|
11925
12010
|
limitPositionXInView: true,
|
|
11926
12011
|
limitPositionYInView: true,
|
|
12012
|
+
beforeShowCallBack() { },
|
|
11927
12013
|
};
|
|
11928
12014
|
};
|
|
11929
12015
|
|
|
@@ -11983,6 +12069,8 @@ const PopsRightClickMenu = {
|
|
|
11983
12069
|
return;
|
|
11984
12070
|
}
|
|
11985
12071
|
if ($click.className && $click.className === "pops-shadow-container" && $click.shadowRoot != null) {
|
|
12072
|
+
// pops的shadow-container
|
|
12073
|
+
PopsContextMenu.shadowRootCheckClickEvent(event);
|
|
11986
12074
|
return;
|
|
11987
12075
|
}
|
|
11988
12076
|
PopsContextMenu.closeAllMenu(PopsContextMenu.$el.$root);
|
|
@@ -11995,7 +12083,7 @@ const PopsRightClickMenu = {
|
|
|
11995
12083
|
if (!PopsContextMenu.$el.$root) {
|
|
11996
12084
|
return;
|
|
11997
12085
|
}
|
|
11998
|
-
const $click = event.
|
|
12086
|
+
const $click = event.composedPath()[0];
|
|
11999
12087
|
if ($click.closest(`.pops-${popsType}`)) {
|
|
12000
12088
|
return;
|
|
12001
12089
|
}
|
|
@@ -12005,13 +12093,13 @@ const PopsRightClickMenu = {
|
|
|
12005
12093
|
* 添加全局点击检测事件
|
|
12006
12094
|
*/
|
|
12007
12095
|
addWindowCheckClickListener() {
|
|
12008
|
-
popsDOMUtils.on(globalThis, "click touchstart",
|
|
12096
|
+
popsDOMUtils.on(globalThis, "click touchstart", PopsContextMenu.windowCheckClickEvent, {
|
|
12009
12097
|
capture: true,
|
|
12010
12098
|
});
|
|
12011
12099
|
if (config.$target instanceof Node) {
|
|
12012
12100
|
const $shadowRoot = config.$target.getRootNode();
|
|
12013
12101
|
if ($shadowRoot instanceof ShadowRoot) {
|
|
12014
|
-
popsDOMUtils.on($shadowRoot, "click touchstart",
|
|
12102
|
+
popsDOMUtils.on($shadowRoot, "click touchstart", PopsContextMenu.shadowRootCheckClickEvent, {
|
|
12015
12103
|
capture: true,
|
|
12016
12104
|
});
|
|
12017
12105
|
}
|
|
@@ -12021,13 +12109,13 @@ const PopsRightClickMenu = {
|
|
|
12021
12109
|
* 移除全局点击检测事件
|
|
12022
12110
|
*/
|
|
12023
12111
|
removeWindowCheckClickListener() {
|
|
12024
|
-
popsDOMUtils.off(globalThis, "click touchstart",
|
|
12112
|
+
popsDOMUtils.off(globalThis, "click touchstart", PopsContextMenu.windowCheckClickEvent, {
|
|
12025
12113
|
capture: true,
|
|
12026
12114
|
});
|
|
12027
12115
|
if (config.$target instanceof Node) {
|
|
12028
12116
|
const $shadowRoot = config.$target.getRootNode();
|
|
12029
12117
|
if ($shadowRoot instanceof ShadowRoot) {
|
|
12030
|
-
popsDOMUtils.off($shadowRoot, "click touchstart",
|
|
12118
|
+
popsDOMUtils.off($shadowRoot, "click touchstart", PopsContextMenu.windowCheckClickEvent, {
|
|
12031
12119
|
capture: true,
|
|
12032
12120
|
});
|
|
12033
12121
|
}
|
|
@@ -12038,7 +12126,7 @@ const PopsRightClickMenu = {
|
|
|
12038
12126
|
* @param event
|
|
12039
12127
|
* @param selectorTarget
|
|
12040
12128
|
*/
|
|
12041
|
-
contextMenuEvent(event, selectorTarget) {
|
|
12129
|
+
async contextMenuEvent(event, selectorTarget) {
|
|
12042
12130
|
if (config.preventDefault) {
|
|
12043
12131
|
popsDOMUtils.preventEvent(event);
|
|
12044
12132
|
}
|
|
@@ -12047,6 +12135,10 @@ const PopsRightClickMenu = {
|
|
|
12047
12135
|
PopsContextMenu.closeAllMenu(PopsContextMenu.$el.$root);
|
|
12048
12136
|
}
|
|
12049
12137
|
selectorTarget = selectorTarget ?? config.$target;
|
|
12138
|
+
const beforeShowCallBackResult = await config?.beforeShowCallBack(event);
|
|
12139
|
+
if (typeof beforeShowCallBackResult === "boolean" && !beforeShowCallBackResult) {
|
|
12140
|
+
return;
|
|
12141
|
+
}
|
|
12050
12142
|
const rootElement = PopsContextMenu.showMenu(event, config.data, selectorTarget);
|
|
12051
12143
|
PopsContextMenu.$el.$root = rootElement;
|
|
12052
12144
|
if (config.only) {
|
|
@@ -12059,6 +12151,10 @@ const PopsRightClickMenu = {
|
|
|
12059
12151
|
beforeRemoveCallBack(instCommonConfig) {
|
|
12060
12152
|
PopsContextMenu.closeAllMenu(instCommonConfig.$pops);
|
|
12061
12153
|
},
|
|
12154
|
+
config: config,
|
|
12155
|
+
destory: () => {
|
|
12156
|
+
PopsContextMenu.closeAllMenu(rootElement);
|
|
12157
|
+
},
|
|
12062
12158
|
});
|
|
12063
12159
|
}
|
|
12064
12160
|
},
|
|
@@ -12362,7 +12458,8 @@ const PopsRightClickMenu = {
|
|
|
12362
12458
|
menuLiElement.appendChild(iconElement);
|
|
12363
12459
|
}
|
|
12364
12460
|
// 插入文字
|
|
12365
|
-
|
|
12461
|
+
const text = typeof item.text === "function" ? item.text() : item.text;
|
|
12462
|
+
menuLiElement.insertAdjacentHTML("beforeend", PopsSafeUtils.getSafeHTML(`<span>${text}</span>`));
|
|
12366
12463
|
// 如果存在子数据,显示
|
|
12367
12464
|
if (item.item && Array.isArray(item.item)) {
|
|
12368
12465
|
popsDOMUtils.addClassName(menuLiElement, `pops-${popsType}-item`);
|
|
@@ -13001,10 +13098,10 @@ const PopsSearchSuggestion = {
|
|
|
13001
13098
|
setShowEvent(option = defaultListenerOption) {
|
|
13002
13099
|
/* 焦点|点击事件*/
|
|
13003
13100
|
if (config.followPosition === "target") {
|
|
13004
|
-
popsDOMUtils.on([config.$target], ["focus", "click"],
|
|
13101
|
+
popsDOMUtils.on([config.$target], ["focus", "click"], SearchSuggestion.showEvent, option);
|
|
13005
13102
|
}
|
|
13006
13103
|
else if (config.followPosition === "input") {
|
|
13007
|
-
popsDOMUtils.on([config.$inputTarget], ["focus", "click"],
|
|
13104
|
+
popsDOMUtils.on([config.$inputTarget], ["focus", "click"], SearchSuggestion.showEvent, option);
|
|
13008
13105
|
}
|
|
13009
13106
|
else if (config.followPosition === "inputCursor") {
|
|
13010
13107
|
popsDOMUtils.on([config.$inputTarget], ["focus", "click", "input"], SearchSuggestion.showEvent, option);
|
|
@@ -13018,9 +13115,9 @@ const PopsSearchSuggestion = {
|
|
|
13018
13115
|
*/
|
|
13019
13116
|
removeShowEvent(option = defaultListenerOption) {
|
|
13020
13117
|
/* 焦点|点击事件*/
|
|
13021
|
-
popsDOMUtils.off([config.$target, config.$inputTarget], ["focus", "click"],
|
|
13118
|
+
popsDOMUtils.off([config.$target, config.$inputTarget], ["focus", "click"], SearchSuggestion.showEvent, option);
|
|
13022
13119
|
// 内容改变事件
|
|
13023
|
-
popsDOMUtils.off([config.$inputTarget], ["input"],
|
|
13120
|
+
popsDOMUtils.off([config.$inputTarget], ["input"], SearchSuggestion.showEvent, option);
|
|
13024
13121
|
},
|
|
13025
13122
|
/**
|
|
13026
13123
|
* 隐藏搜索建议框的事件
|
|
@@ -13051,7 +13148,7 @@ const PopsSearchSuggestion = {
|
|
|
13051
13148
|
// 全局触摸屏点击事件
|
|
13052
13149
|
if (Array.isArray(SearchSuggestion.selfDocument)) {
|
|
13053
13150
|
SearchSuggestion.selfDocument.forEach(($checkParent) => {
|
|
13054
|
-
popsDOMUtils.on($checkParent, ["click", "touchstart"],
|
|
13151
|
+
popsDOMUtils.on($checkParent, ["click", "touchstart"], SearchSuggestion.hideEvent, option);
|
|
13055
13152
|
});
|
|
13056
13153
|
}
|
|
13057
13154
|
else {
|
|
@@ -13064,11 +13161,11 @@ const PopsSearchSuggestion = {
|
|
|
13064
13161
|
removeHideEvent(option = defaultListenerOption) {
|
|
13065
13162
|
if (Array.isArray(SearchSuggestion.selfDocument)) {
|
|
13066
13163
|
SearchSuggestion.selfDocument.forEach(($checkParent) => {
|
|
13067
|
-
popsDOMUtils.off($checkParent, ["click", "touchstart"],
|
|
13164
|
+
popsDOMUtils.off($checkParent, ["click", "touchstart"], SearchSuggestion.hideEvent, option);
|
|
13068
13165
|
});
|
|
13069
13166
|
}
|
|
13070
13167
|
else {
|
|
13071
|
-
popsDOMUtils.off(SearchSuggestion.selfDocument, ["click", "touchstart"],
|
|
13168
|
+
popsDOMUtils.off(SearchSuggestion.selfDocument, ["click", "touchstart"], SearchSuggestion.hideEvent, option);
|
|
13072
13169
|
}
|
|
13073
13170
|
},
|
|
13074
13171
|
/**
|
|
@@ -13329,7 +13426,7 @@ const PopsSearchSuggestion = {
|
|
|
13329
13426
|
},
|
|
13330
13427
|
};
|
|
13331
13428
|
|
|
13332
|
-
const version = "3.
|
|
13429
|
+
const version = "3.2.0";
|
|
13333
13430
|
|
|
13334
13431
|
class Pops {
|
|
13335
13432
|
/** 配置 */
|