@whitesev/pops 2.0.3 → 2.0.4

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.umd.js CHANGED
@@ -1225,30 +1225,32 @@
1225
1225
  if (element == null) {
1226
1226
  return;
1227
1227
  }
1228
+ let setStyleProperty = (propertyName, propertyValue) => {
1229
+ if (typeof propertyValue === "string" &&
1230
+ propertyValue.trim().endsWith("!important")) {
1231
+ propertyValue = propertyValue
1232
+ .trim()
1233
+ .replace(/!important$/gi, "")
1234
+ .trim();
1235
+ element.style.setProperty(propertyName, propertyValue, "important");
1236
+ }
1237
+ else {
1238
+ propertyValue = handlePixe(propertyName, propertyValue);
1239
+ element.style.setProperty(propertyName, propertyValue);
1240
+ }
1241
+ };
1228
1242
  if (typeof property === "string") {
1229
1243
  if (value == null) {
1230
1244
  return getComputedStyle(element).getPropertyValue(property);
1231
1245
  }
1232
1246
  else {
1233
- if (value === "string" && value.includes("!important")) {
1234
- element.style.setProperty(property, value, "important");
1235
- }
1236
- else {
1237
- value = handlePixe(property, value);
1238
- element.style.setProperty(property, value);
1239
- }
1247
+ setStyleProperty(property, value);
1240
1248
  }
1241
1249
  }
1242
1250
  else if (typeof property === "object") {
1243
1251
  for (let prop in property) {
1244
- if (typeof property[prop] === "string" &&
1245
- property[prop].includes("!important")) {
1246
- element.style.setProperty(prop, property[prop], "important");
1247
- }
1248
- else {
1249
- property[prop] = handlePixe(prop, property[prop]);
1250
- element.style.setProperty(prop, property[prop]);
1251
- }
1252
+ let value = property[prop];
1253
+ setStyleProperty(prop, value);
1252
1254
  }
1253
1255
  }
1254
1256
  }
@@ -1907,31 +1909,37 @@
1907
1909
  * @param maskElement
1908
1910
  */
1909
1911
  hide(popsType, layerConfigList, guid, config, animElement, maskElement) {
1910
- let popsElement = animElement.querySelector(".pops[type-value]");
1911
- if (popsType === "drawer") {
1912
- let drawerConfig = config;
1913
- setTimeout(() => {
1914
- maskElement.style.setProperty("display", "none");
1915
- if (["top", "bottom"].includes(drawerConfig.direction)) {
1916
- popsElement.style.setProperty("height", "0");
1917
- }
1918
- else if (["left", "right"].includes(drawerConfig.direction)) {
1919
- popsElement.style.setProperty("width", "0");
1920
- }
1921
- else {
1922
- console.error("未知direction:", drawerConfig.direction);
1923
- }
1924
- }, drawerConfig.closeDelay);
1925
- }
1926
- else {
1927
- layerConfigList.forEach((layerConfigItem) => {
1928
- if (layerConfigItem.guid === guid) {
1912
+ return new Promise((resolve) => {
1913
+ let popsElement = animElement.querySelector(".pops[type-value]");
1914
+ if (popsType === "drawer") {
1915
+ let drawerConfig = config;
1916
+ setTimeout(() => {
1917
+ maskElement.style.setProperty("display", "none");
1918
+ if (["top", "bottom"].includes(drawerConfig.direction)) {
1919
+ popsElement.style.setProperty("height", "0");
1920
+ }
1921
+ else if (["left", "right"].includes(drawerConfig.direction)) {
1922
+ popsElement.style.setProperty("width", "0");
1923
+ }
1924
+ else {
1925
+ console.error("未知direction:", drawerConfig.direction);
1926
+ }
1927
+ resolve();
1928
+ }, drawerConfig.closeDelay);
1929
+ }
1930
+ else {
1931
+ let findLayerIns = layerConfigList.find((layerConfigItem) => layerConfigItem.guid === guid);
1932
+ if (findLayerIns) {
1929
1933
  /* 存在动画 */
1934
+ let layerConfigItem = findLayerIns;
1930
1935
  layerConfigItem.animElement.style.width = "100%";
1931
1936
  layerConfigItem.animElement.style.height = "100%";
1932
1937
  layerConfigItem.animElement.style["animation-name"] =
1933
1938
  layerConfigItem.animElement.getAttribute("anim") + "-reverse";
1934
1939
  if (pops.config.animation.hasOwnProperty(layerConfigItem.animElement.style["animation-name"])) {
1940
+ /**
1941
+ * 动画结束的回调
1942
+ */
1935
1943
  function animationendCallBack() {
1936
1944
  layerConfigItem.animElement.style.display = "none";
1937
1945
  if (layerConfigItem.maskElement) {
@@ -1940,6 +1948,7 @@
1940
1948
  popsDOMUtils.off(layerConfigItem.animElement, popsDOMUtils.getAnimationEndNameList(), animationendCallBack, {
1941
1949
  capture: true,
1942
1950
  });
1951
+ resolve();
1943
1952
  }
1944
1953
  popsDOMUtils.on(layerConfigItem.animElement, popsDOMUtils.getAnimationEndNameList(), animationendCallBack, {
1945
1954
  capture: true,
@@ -1950,11 +1959,11 @@
1950
1959
  if (layerConfigItem.maskElement) {
1951
1960
  layerConfigItem.maskElement.style.display = "none";
1952
1961
  }
1962
+ resolve();
1953
1963
  }
1954
- return;
1955
1964
  }
1956
- });
1957
- }
1965
+ }
1966
+ });
1958
1967
  },
1959
1968
  /**
1960
1969
  * 显示
@@ -1966,27 +1975,30 @@
1966
1975
  * @param maskElement
1967
1976
  */
1968
1977
  show(popsType, layerConfigList, guid, config, animElement, maskElement) {
1969
- let popsElement = animElement.querySelector(".pops[type-value]");
1970
- if (popsType === "drawer") {
1971
- let drawerConfig = config;
1972
- setTimeout(() => {
1973
- maskElement.style.setProperty("display", "");
1974
- let direction = drawerConfig.direction;
1975
- let size = drawerConfig.size.toString();
1976
- if (["top", "bottom"].includes(direction)) {
1977
- popsElement.style.setProperty("height", size);
1978
- }
1979
- else if (["left", "right"].includes(direction)) {
1980
- popsElement.style.setProperty("width", size);
1981
- }
1982
- else {
1983
- console.error("未知direction:", direction);
1984
- }
1985
- }, drawerConfig.openDelay);
1986
- }
1987
- else {
1988
- layerConfigList.forEach((layerConfigItem) => {
1989
- if (layerConfigItem.guid === guid) {
1978
+ return new Promise((resolve) => {
1979
+ let popsElement = animElement.querySelector(".pops[type-value]");
1980
+ if (popsType === "drawer") {
1981
+ let drawerConfig = config;
1982
+ setTimeout(() => {
1983
+ popsDOMUtils.css(maskElement, "display", "");
1984
+ let direction = drawerConfig.direction;
1985
+ let size = drawerConfig.size.toString();
1986
+ if (["top", "bottom"].includes(direction)) {
1987
+ popsElement.style.setProperty("height", size);
1988
+ }
1989
+ else if (["left", "right"].includes(direction)) {
1990
+ popsElement.style.setProperty("width", size);
1991
+ }
1992
+ else {
1993
+ console.error("未知direction:", direction);
1994
+ }
1995
+ resolve();
1996
+ }, drawerConfig.openDelay);
1997
+ }
1998
+ else {
1999
+ let findLayerIns = layerConfigList.find((layerConfigItem) => layerConfigItem.guid === guid);
2000
+ if (findLayerIns) {
2001
+ let layerConfigItem = findLayerIns;
1990
2002
  layerConfigItem.animElement.style.width = "";
1991
2003
  layerConfigItem.animElement.style.height = "";
1992
2004
  layerConfigItem.animElement.style["animation-name"] =
@@ -1994,14 +2006,18 @@
1994
2006
  .animElement.getAttribute("anim")
1995
2007
  .replace("-reverse", "");
1996
2008
  if (pops.config.animation.hasOwnProperty(layerConfigItem.animElement.style["animation-name"])) {
1997
- layerConfigItem.animElement.style.display = "";
1998
- if (layerConfigItem.maskElement) {
1999
- layerConfigItem.maskElement.style.display = "";
2000
- }
2009
+ /**
2010
+ * 动画结束的回调
2011
+ */
2001
2012
  function animationendCallBack() {
2002
2013
  popsDOMUtils.off(layerConfigItem.animElement, popsDOMUtils.getAnimationEndNameList(), animationendCallBack, {
2003
2014
  capture: true,
2004
2015
  });
2016
+ resolve();
2017
+ }
2018
+ layerConfigItem.animElement.style.display = "";
2019
+ if (layerConfigItem.maskElement) {
2020
+ layerConfigItem.maskElement.style.display = "";
2005
2021
  }
2006
2022
  popsDOMUtils.on(layerConfigItem.animElement, popsDOMUtils.getAnimationEndNameList(), animationendCallBack, {
2007
2023
  capture: true,
@@ -2012,11 +2028,11 @@
2012
2028
  if (layerConfigItem.maskElement) {
2013
2029
  layerConfigItem.maskElement.style.display = "";
2014
2030
  }
2031
+ resolve();
2015
2032
  }
2016
2033
  }
2017
- return;
2018
- });
2019
- }
2034
+ }
2035
+ });
2020
2036
  },
2021
2037
  /**
2022
2038
  * 关闭
@@ -2027,50 +2043,57 @@
2027
2043
  * @param animElement
2028
2044
  */
2029
2045
  close(popsType, layerConfigList, guid, config, animElement) {
2030
- let popsElement = animElement.querySelector(".pops[type-value]");
2031
- let drawerConfig = config;
2032
- /**
2033
- * 动画结束事件
2034
- */
2035
- function transitionendEvent() {
2036
- function closeCallBack(event) {
2037
- if (event.propertyName !== "transform") {
2046
+ return new Promise((resolve) => {
2047
+ let popsElement = animElement.querySelector(".pops[type-value]");
2048
+ let drawerConfig = config;
2049
+ /**
2050
+ * 动画结束事件
2051
+ */
2052
+ function transitionendEvent() {
2053
+ /**
2054
+ * 弹窗已关闭的回调
2055
+ */
2056
+ function closeCallBack(event) {
2057
+ if (event.propertyName !== "transform") {
2058
+ return;
2059
+ }
2060
+ popsDOMUtils.off(popsElement, popsDOMUtils.getTransitionEndNameList(), void 0, closeCallBack);
2061
+ PopsInstanceUtils.removeInstance([layerConfigList], guid);
2062
+ resolve();
2063
+ }
2064
+ /* 监听过渡结束 */
2065
+ popsDOMUtils.on(popsElement, popsDOMUtils.getTransitionEndNameList(), closeCallBack);
2066
+ let popsTransForm = getComputedStyle(popsElement).transform;
2067
+ if (popsTransForm !== "none") {
2068
+ popsDOMUtils.trigger(popsElement, popsDOMUtils.getTransitionEndNameList(), void 0, true);
2038
2069
  return;
2039
2070
  }
2040
- popsDOMUtils.off(popsElement, popsDOMUtils.getTransitionEndNameList(), void 0, closeCallBack);
2041
- PopsInstanceUtils.removeInstance([layerConfigList], guid);
2042
- }
2043
- /* 监听过渡结束 */
2044
- popsDOMUtils.on(popsElement, popsDOMUtils.getTransitionEndNameList(), closeCallBack);
2045
- let popsTransForm = getComputedStyle(popsElement).transform;
2046
- if (popsTransForm !== "none") {
2047
- popsDOMUtils.trigger(popsElement, popsDOMUtils.getTransitionEndNameList(), void 0, true);
2048
- return;
2049
- }
2050
- if (["top"].includes(drawerConfig.direction)) {
2051
- popsElement.style.setProperty("transform", "translateY(-100%)");
2052
- }
2053
- else if (["bottom"].includes(drawerConfig.direction)) {
2054
- popsElement.style.setProperty("transform", "translateY(100%)");
2055
- }
2056
- else if (["left"].includes(drawerConfig.direction)) {
2057
- popsElement.style.setProperty("transform", "translateX(-100%)");
2071
+ if (["top"].includes(drawerConfig.direction)) {
2072
+ popsElement.style.setProperty("transform", "translateY(-100%)");
2073
+ }
2074
+ else if (["bottom"].includes(drawerConfig.direction)) {
2075
+ popsElement.style.setProperty("transform", "translateY(100%)");
2076
+ }
2077
+ else if (["left"].includes(drawerConfig.direction)) {
2078
+ popsElement.style.setProperty("transform", "translateX(-100%)");
2079
+ }
2080
+ else if (["right"].includes(drawerConfig.direction)) {
2081
+ popsElement.style.setProperty("transform", "translateX(100%)");
2082
+ }
2083
+ else {
2084
+ console.error("未知direction:", drawerConfig.direction);
2085
+ }
2058
2086
  }
2059
- else if (["right"].includes(drawerConfig.direction)) {
2060
- popsElement.style.setProperty("transform", "translateX(100%)");
2087
+ if (popsType === "drawer") {
2088
+ setTimeout(() => {
2089
+ transitionendEvent();
2090
+ }, drawerConfig.closeDelay);
2061
2091
  }
2062
2092
  else {
2063
- console.error("未知direction:", drawerConfig.direction);
2093
+ PopsInstanceUtils.removeInstance([layerConfigList], guid);
2094
+ resolve();
2064
2095
  }
2065
- }
2066
- if (popsType === "drawer") {
2067
- setTimeout(() => {
2068
- transitionendEvent();
2069
- }, drawerConfig.closeDelay);
2070
- }
2071
- else {
2072
- PopsInstanceUtils.removeInstance([layerConfigList], guid);
2073
- }
2096
+ });
2074
2097
  },
2075
2098
  /**
2076
2099
  * 拖拽元素
@@ -2799,11 +2822,11 @@
2799
2822
  function originalRun() {
2800
2823
  if (details.config.mask.clickEvent.toClose) {
2801
2824
  /* 关闭 */
2802
- PopsInstanceUtils.close(details.type, targetLayer, details.guid, details.config, details.animElement);
2825
+ return PopsInstanceUtils.close(details.type, targetLayer, details.guid, details.config, details.animElement);
2803
2826
  }
2804
2827
  else if (details.config.mask.clickEvent.toHide) {
2805
2828
  /* 隐藏 */
2806
- PopsInstanceUtils.hide(details.type, targetLayer, details.guid, details.config, details.animElement, result.maskElement);
2829
+ return PopsInstanceUtils.hide(details.type, targetLayer, details.guid, details.config, details.animElement, result.maskElement);
2807
2830
  }
2808
2831
  }
2809
2832
  if (typeof details.config.mask.clickCallBack === "function") {
@@ -2982,13 +3005,13 @@
2982
3005
  mode: mode,
2983
3006
  guid: guid,
2984
3007
  close() {
2985
- PopsInstanceUtils.close(mode, pops.config.layer[mode], guid, config, animElement);
3008
+ return PopsInstanceUtils.close(mode, pops.config.layer[mode], guid, config, animElement);
2986
3009
  },
2987
3010
  hide() {
2988
- PopsInstanceUtils.hide(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
3011
+ return PopsInstanceUtils.hide(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
2989
3012
  },
2990
3013
  show() {
2991
- PopsInstanceUtils.show(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
3014
+ return PopsInstanceUtils.show(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
2992
3015
  },
2993
3016
  };
2994
3017
  },
@@ -3010,13 +3033,13 @@
3010
3033
  mode: mode,
3011
3034
  guid: guid,
3012
3035
  close() {
3013
- PopsInstanceUtils.close(mode, pops.config.layer[mode], guid, config, animElement);
3036
+ return PopsInstanceUtils.close(mode, pops.config.layer[mode], guid, config, animElement);
3014
3037
  },
3015
3038
  hide() {
3016
- PopsInstanceUtils.hide(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
3039
+ return PopsInstanceUtils.hide(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
3017
3040
  },
3018
3041
  show() {
3019
- PopsInstanceUtils.show(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
3042
+ return PopsInstanceUtils.show(mode, pops.config.layer[mode], guid, config, animElement, maskElement);
3020
3043
  },
3021
3044
  };
3022
3045
  },
@@ -3784,6 +3807,9 @@
3784
3807
  maskHTML: maskHTML,
3785
3808
  });
3786
3809
  $mask = _handleMask_.maskElement;
3810
+ // 遮罩层必须是跟随主内容
3811
+ // 即设置主内容position: relative,mask:position: absolute
3812
+ popsDOMUtils.css($mask, "position", "absolute !important");
3787
3813
  elementList.push($mask);
3788
3814
  }
3789
3815
  let eventDetails = PopsHandler.handleLoadingEventDetails(guid, PopsType, $anim, $pops, $mask, config);
@@ -10058,7 +10084,7 @@
10058
10084
  /** 配置 */
10059
10085
  config = {
10060
10086
  /** 版本号 */
10061
- version: "2025.5.1",
10087
+ version: "2025.5.12",
10062
10088
  cssText: {
10063
10089
  /** 主CSS */
10064
10090
  index: indexCSS,