@polyv/utils 2.17.0 → 2.19.0-beta.1

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/cjs/date.d.ts CHANGED
@@ -43,3 +43,17 @@ export interface FormatSecondsOptions {
43
43
  * ```
44
44
  */
45
45
  export declare function formatSeconds(secs: number, options?: FormatSecondsOptions): string;
46
+ /**
47
+ * 把“时:分:秒.毫秒”格式的字符串转换为总秒数。如存在毫秒部分,则四舍五入。
48
+ * @param time “时:分:秒.毫秒”格式的字符串。
49
+ * @returns 总秒数。
50
+ * @example
51
+ * ```javascript
52
+ * timeToSeconds('00:01'); // 1
53
+ * timeToSeconds('10:01'); // 601
54
+ * timeToSeconds('06:10:01'); // 22201
55
+ * timeToSeconds('06:10:01.123'); // 22201
56
+ * timeToSeconds('06:10:01.666'); // 22202
57
+ * ```
58
+ */
59
+ export declare function timeToSeconds(time: string): number;
package/cjs/date.js CHANGED
@@ -1 +1 @@
1
- "use strict";function ensureDate(e){return"object"!=typeof e&&(e=new Date(e)),e}function formatDate(e,t){var r={Y:(e=ensureDate(e)).getFullYear(),M:e.getMonth()+1,D:e.getDate(),h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()};return t.replace(/([YMDhms])\1*/g,(function(e){var t=r[e[0]].toString(),n=e.length;return n>t.length&&(t=new Array(n-t.length+1).join("0")+t),t}))}function formatSeconds(e,t){if(void 0===t&&(t={segments:2,digits:2}),e=Number(e),isNaN(e)||e<0)throw new Error('"secs" must be a positive integer');var r=2;"auto"===t.segments&&e>=3600?r=3:"number"==typeof t.segments&&-1!==[2,3].indexOf(t.segments)&&(r=t.segments);var n=0|(t.digits||2);n=Math.max(1,n);var o=new Array(n+1).join("0"),s=[60,1];return 3===r&&s.unshift(3600),s.map((function(t){var r=Math.floor(e/t),s=r.toString().length;return e%=t,(o+r).slice(-Math.max(s,n))})).join(":")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatDate=formatDate,exports.formatSeconds=formatSeconds;
1
+ "use strict";function ensureDate(e){return"object"!=typeof e&&(e=new Date(e)),e}function formatDate(e,t){var r={Y:(e=ensureDate(e)).getFullYear(),M:e.getMonth()+1,D:e.getDate(),h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()};return t.replace(/([YMDhms])\1*/g,(function(e){var t=r[e[0]].toString(),n=e.length;return n>t.length&&(t=new Array(n-t.length+1).join("0")+t),t}))}function formatSeconds(e,t){if(void 0===t&&(t={segments:2,digits:2}),e=Number(e),isNaN(e)||e<0)throw new Error('"secs" must be a positive integer');var r=2;"auto"===t.segments&&e>=3600?r=3:"number"==typeof t.segments&&-1!==[2,3].indexOf(t.segments)&&(r=t.segments);var n=0|(t.digits||2);n=Math.max(1,n);var o=new Array(n+1).join("0"),s=[60,1];return 3===r&&s.unshift(3600),s.map((function(t){var r=Math.floor(e/t),s=r.toString().length;return e%=t,(o+r).slice(-Math.max(s,n))})).join(":")}function timeToSeconds(e){var t=/^(?:(\d+):)*?(?:(\d+):)?(\d+)(?:\.(\d+))?$/.exec(e);if(!t)return NaN;var r=[3600,60,1,.001],n=0;return[t[1],t[2],t[3],t[4]].some((function(e,t){if(null!=e){var o=Number(e);if(isNaN(o))return n=NaN,!0;n+=Math.round(o*r[t])}return!1})),n}Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatDate=formatDate,exports.formatSeconds=formatSeconds,exports.timeToSeconds=timeToSeconds;
@@ -128,6 +128,8 @@ export declare function openAppWithFallback(options: {
128
128
  androidLink: string;
129
129
  harmonyLink: string;
130
130
  fallbackUrl: string;
131
+ jumpWay: LinkJumpWay;
132
+ openLink: (url: string, jumpWay: LinkJumpWay) => void;
131
133
  }): void;
132
134
  /**
133
135
  * 格式化链接地址
@@ -1 +1 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(i,n,e,o){return new(e||(e=Promise))((function(r,t){function a(i){try{l(o.next(i))}catch(i){t(i)}}function s(i){try{l(o.throw(i))}catch(i){t(i)}}function l(i){var n;i.done?r(i.value):(n=i.value,n instanceof e?n:new e((function(i){i(n)}))).then(a,s)}l((o=o.apply(i,n||[])).next())}))},__generator=this&&this.__generator||function(i,n){var e,o,r,t,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return t={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function s(s){return function(l){return function(s){if(e)throw new TypeError("Generator is already executing.");for(;t&&(t=0,s[0]&&(a=0)),a;)try{if(e=1,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,o=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=n.call(i,a)}catch(i){s=[6,i],o=0}finally{e=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.LinkJumpWay=exports.isPortable=exports.isHarmony=exports.isIOS=exports.isAndroid=void 0,exports.isCustomUA=isCustomUA,exports.openAppWithFallback=openAppWithFallback,exports.formatLink=formatLink,exports.navigateToLink=navigateToLink;var LinkJumpWay,ua_info_1=require("@just4/ua-info"),querystring_1=require("@just4/querystring"),uaInfo=(0,ua_info_1.getCurrentUAInfo)();function isCustomUA(i){var n=navigator.userAgent.toLowerCase();return!!i.length&&i.some((function(i){return n.includes(i.toLowerCase())}))}function openAppWithFallback(i){var n,e=i.iosLink,o=i.androidLink,r=i.harmonyLink,t=i.fallbackUrl,a=Date.now(),s=!1,l=function(){s=!0,window.removeEventListener("blur",l)};window.addEventListener("blur",l),console.info("ios\uff1a".concat(exports.isIOS,"\uff0cAndroid\uff1a").concat(exports.isAndroid,"\uff0charmony\uff1a").concat(exports.isHarmony)),exports.isIOS?(console.info("iOSLink",e),n=e):exports.isAndroid?(console.info("Android link",o),n=o):exports.isHarmony&&(console.info("harmony link",r),n=r),n||(console.info("\u6ca1\u6709\u914d\u7f6e\u591a\u5e73\u53f0\u94fe\u63a5\uff0c\u4f7f\u7528\u964d\u7ea7\u94fe\u63a5",t),n=t),window.location.href=n,setTimeout((function(){window.removeEventListener("blur",l);var i=Date.now()-a;!s&&i<3700&&t&&(window.location.href=t)}),3500)}function toPlvWebviewBridge(i){return __awaiter(this,void 0,void 0,(function(){var n,e,o,r;return __generator(this,(function(t){switch(t.label){case 0:return n=i.getPlvWebviewSmallWindowSize,e=i.getPlvWebviewBridge,o=(null==n?void 0:n())||{width:90,height:160},[4,null==e?void 0:e()];case 1:return(r=t.sent())?(r.sendData("clickProduct",{width:o.width,height:o.height,newPage:!0,link:i.link,data:i.data}),[2]):[2]}}))}))}function toMultiPlatformLink(i){return __awaiter(this,void 0,void 0,(function(){var n,e,o,r,t,a,s,l,u,c,f,p,k,d,v,w;return __generator(this,(function(m){switch(m.label){case 0:n=i.linkData,e=i.isWxMiniProgramEnv,o=i.toWxMiniProgram,r=i.openLink,t=i.getLinkParams,a=i.isMobile,s=n.wxMiniprogramLink,l=n.pcLink,u=n.iosLink,c=n.androidLink,f=n.harmonyLink,p=n.link,k=n.jumpWay,d=n.mobileAppLink,v=(null==a?void 0:a())||exports.isPortable,console.info("\u8df3\u8f6c\u51fd\u6570\u6536\u5230\u7684\u6570\u636e",n),w=!1,m.label=1;case 1:return m.trys.push([1,3,,4]),[4,null==e?void 0:e()];case 2:return w=m.sent()||!1,[3,4];case 3:return m.sent(),w=!1,[3,4];case 4:return w&&o?(console.info("\u8fdb\u5165\u5230\u5c0f\u7a0b\u5e8f webview \u73af\u5883 wxMiniprogramLink & link",s,p),s?o(formatLink(s,t)):r(formatLink(p,t),LinkJumpWay.CurrentWindow),[2]):v?uaInfo.client.isWx||uaInfo.client.isWxWork||uaInfo.client.isDing||uaInfo.client.isQQ||uaInfo.client.isWeibo||uaInfo.client.isBaiduApp?(r(formatLink(p,t),k),[2]):(openAppWithFallback({iosLink:u,androidLink:c,harmonyLink:f,fallbackUrl:d||p}),[2]):(r(formatLink(l||p,t),k),[2])}}))}))}function formatLink(i,n){var e={};if(n){var o=n(i);e=Object.assign({},e,o)}return(0,querystring_1.concat)(i,e)}function navigateToLink(i){var n=i.linkData,e=i.usePlvWebviewBridge,o=i.openLink,r=i.isPlvWebview,t=i.getPlvWebviewSmallWindowSize,a=i.getPlvWebviewBridge,s=i.isWxMiniProgramEnv,l=i.toWxMiniProgram,u=i.getLinkParams,c=i.isMobile,f=(null==r?void 0:r())||!1;if(console.info("\u662f\u5426\u4fdd\u5229\u5a01 webview \u73af\u5883",f),f){var p=n.link,k=n.iosLink,d=n.androidLink,v=n.harmonyLink,w=n.mobileAppLink,m=n.wxMiniprogramOriginalId,L=n.wxMiniprogramLink,b=w||p;console.info("\u4fdd\u5229\u5a01 webview \u4e0b\u7684 mobileAppLink\uff0clink",w,p),console.info("\u4fdd\u5229\u5a01 webview \u4e0b usePlvWebviewBridge",e);var g={mobileLink:formatLink(p,u),wxMiniprogramOriginalId:m,wxMiniprogramLink:formatLink(L,u),mobileAppLink:formatLink(w,u)};return e?void toPlvWebviewBridge({link:formatLink(b,u),data:g,getPlvWebviewSmallWindowSize:t,getPlvWebviewBridge:a}):void openAppWithFallback({iosLink:k,androidLink:d,harmonyLink:v,fallbackUrl:w||p})}toMultiPlatformLink({linkData:n,getLinkParams:u,isWxMiniProgramEnv:s,toWxMiniProgram:l,openLink:o,isMobile:c})}exports.isAndroid=uaInfo.os.isAndroid,exports.isIOS=uaInfo.os.isIOS,exports.isHarmony=uaInfo.os.isOpenHarmony,exports.isPortable=uaInfo.isPortable,function(i){i.PopUp="POP_UP",i.NewWindow="NEW_WINDOW",i.CurrentWindow="CURRENT_WINDOW"}(LinkJumpWay||(exports.LinkJumpWay=LinkJumpWay={}));
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(i,n,o,e){return new(o||(o=Promise))((function(r,t){function a(i){try{l(e.next(i))}catch(i){t(i)}}function s(i){try{l(e.throw(i))}catch(i){t(i)}}function l(i){var n;i.done?r(i.value):(n=i.value,n instanceof o?n:new o((function(i){i(n)}))).then(a,s)}l((e=e.apply(i,n||[])).next())}))},__generator=this&&this.__generator||function(i,n){var o,e,r,t,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return t={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function s(s){return function(l){return function(s){if(o)throw new TypeError("Generator is already executing.");for(;t&&(t=0,s[0]&&(a=0)),a;)try{if(o=1,e&&(r=2&s[0]?e.return:s[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,s[1])).done)return r;switch(e=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,e=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=n.call(i,a)}catch(i){s=[6,i],e=0}finally{o=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.LinkJumpWay=exports.isPortable=exports.isHarmony=exports.isIOS=exports.isAndroid=void 0,exports.isCustomUA=isCustomUA,exports.openAppWithFallback=openAppWithFallback,exports.formatLink=formatLink,exports.navigateToLink=navigateToLink;var LinkJumpWay,ua_info_1=require("@just4/ua-info"),querystring_1=require("@just4/querystring"),uaInfo=(0,ua_info_1.getCurrentUAInfo)();function isCustomUA(i){var n=navigator.userAgent.toLowerCase();return!!i.length&&i.some((function(i){return n.includes(i.toLowerCase())}))}function openAppWithFallback(i){var n,o=i.iosLink,e=i.androidLink,r=i.harmonyLink,t=i.fallbackUrl,a=i.jumpWay,s=i.openLink,l=Date.now(),u=!1,c=function(){u=!0,window.removeEventListener("blur",c)};if(window.addEventListener("blur",c),console.info("ios\uff1a".concat(exports.isIOS,"\uff0cAndroid\uff1a").concat(exports.isAndroid,"\uff0charmony\uff1a").concat(exports.isHarmony)),exports.isIOS?(console.info("iOSLink",o),n=o):exports.isAndroid?(console.info("Android link",e),n=e):exports.isHarmony&&(console.info("harmony link",r),n=r),!n)return console.info("\u6ca1\u6709\u914d\u7f6e\u591a\u5e73\u53f0\u94fe\u63a5\uff0c\u4f7f\u7528\u964d\u7ea7\u94fe\u63a5",t),void s(t,a);window.location.href=n,setTimeout((function(){console.info("\u8fdb\u5165\u5230\u964d\u7ea7\u903b\u8f91\u4e86"),window.removeEventListener("blur",c);var i=Date.now()-l;!u&&i<3700&&t&&(console.info("\u964d\u7ea7\u7684 url",t,a),s(t,a))}),3500)}function toPlvWebviewBridge(i){return __awaiter(this,void 0,void 0,(function(){var n,o,e,r;return __generator(this,(function(t){switch(t.label){case 0:return n=i.getPlvWebviewSmallWindowSize,o=i.getPlvWebviewBridge,e=(null==n?void 0:n())||{width:90,height:160},[4,null==o?void 0:o()];case 1:return(r=t.sent())?(r.sendData("clickProduct",{width:e.width,height:e.height,newPage:!0,link:i.link,data:i.data}),[2]):[2]}}))}))}function toMultiPlatformLink(i){return __awaiter(this,void 0,void 0,(function(){var n,o,e,r,t,a,s,l,u,c,p,f,k,d,v,m;return __generator(this,(function(w){switch(w.label){case 0:n=i.linkData,o=i.isWxMiniProgramEnv,e=i.toWxMiniProgram,r=i.openLink,t=i.getLinkParams,a=i.isMobile,s=n.wxMiniprogramLink,l=n.pcLink,u=n.iosLink,c=n.androidLink,p=n.harmonyLink,f=n.link,k=n.jumpWay,d=n.mobileAppLink,v=(null==a?void 0:a())||exports.isPortable,console.info("\u8df3\u8f6c\u51fd\u6570\u6536\u5230\u7684\u6570\u636e",n),m=!1,w.label=1;case 1:return w.trys.push([1,3,,4]),[4,null==o?void 0:o()];case 2:return m=w.sent()||!1,[3,4];case 3:return w.sent(),m=!1,[3,4];case 4:return m&&e?(console.info("\u8fdb\u5165\u5230\u5c0f\u7a0b\u5e8f webview \u73af\u5883 wxMiniprogramLink & link",s,f),s?e(formatLink(s,t)):r(formatLink(f,t),k),[2]):v?uaInfo.client.isWx||uaInfo.client.isWxWork||uaInfo.client.isDing||uaInfo.client.isQQ||uaInfo.client.isWeibo||uaInfo.client.isBaiduApp?(r(formatLink(f,t),k),[2]):(openAppWithFallback({iosLink:u,androidLink:c,harmonyLink:p,fallbackUrl:formatLink(d||f,t),jumpWay:k,openLink:r}),[2]):(r(formatLink(l||f,t),k),[2])}}))}))}function formatLink(i,n){var o={};if(n){var e=n(i);o=Object.assign({},o,e)}return(0,querystring_1.concat)(i,o)}function navigateToLink(i){var n=i.linkData,o=i.usePlvWebviewBridge,e=i.openLink,r=i.isPlvWebview,t=i.getPlvWebviewSmallWindowSize,a=i.getPlvWebviewBridge,s=i.isWxMiniProgramEnv,l=i.toWxMiniProgram,u=i.getLinkParams,c=i.isMobile,p=(null==r?void 0:r())||!1;if(console.info("\u662f\u5426\u4fdd\u5229\u5a01 webview \u73af\u5883",p),p){var f=n.link,k=n.iosLink,d=n.androidLink,v=n.harmonyLink,m=n.mobileAppLink,w=n.wxMiniprogramOriginalId,L=n.wxMiniprogramLink,b=n.jumpWay,g=m||f;console.info("\u4fdd\u5229\u5a01 webview \u4e0b\u7684 mobileAppLink\uff0clink",m,f),console.info("\u4fdd\u5229\u5a01 webview \u4e0b usePlvWebviewBridge",o);var h={mobileLink:formatLink(f,u),wxMiniprogramOriginalId:w,wxMiniprogramLink:formatLink(L,u),mobileAppLink:formatLink(m,u)};return o?void toPlvWebviewBridge({link:formatLink(g,u),data:h,getPlvWebviewSmallWindowSize:t,getPlvWebviewBridge:a}):void openAppWithFallback({iosLink:k,androidLink:d,harmonyLink:v,fallbackUrl:formatLink(m||f,u),jumpWay:b,openLink:e})}toMultiPlatformLink({linkData:n,getLinkParams:u,isWxMiniProgramEnv:s,toWxMiniProgram:l,openLink:e,isMobile:c})}exports.isAndroid=uaInfo.os.isAndroid,exports.isIOS=uaInfo.os.isIOS,exports.isHarmony=uaInfo.os.isOpenHarmony,exports.isPortable=uaInfo.isPortable,function(i){i.PopUp="POP_UP",i.NewWindow="NEW_WINDOW",i.CurrentWindow="CURRENT_WINDOW"}(LinkJumpWay||(exports.LinkJumpWay=LinkJumpWay={}));
package/es/date.d.ts CHANGED
@@ -43,3 +43,17 @@ export interface FormatSecondsOptions {
43
43
  * ```
44
44
  */
45
45
  export declare function formatSeconds(secs: number, options?: FormatSecondsOptions): string;
46
+ /**
47
+ * 把“时:分:秒.毫秒”格式的字符串转换为总秒数。如存在毫秒部分,则四舍五入。
48
+ * @param time “时:分:秒.毫秒”格式的字符串。
49
+ * @returns 总秒数。
50
+ * @example
51
+ * ```javascript
52
+ * timeToSeconds('00:01'); // 1
53
+ * timeToSeconds('10:01'); // 601
54
+ * timeToSeconds('06:10:01'); // 22201
55
+ * timeToSeconds('06:10:01.123'); // 22201
56
+ * timeToSeconds('06:10:01.666'); // 22202
57
+ * ```
58
+ */
59
+ export declare function timeToSeconds(time: string): number;
package/es/date.js CHANGED
@@ -1 +1 @@
1
- function ensureDate(e){return"object"!=typeof e&&(e=new Date(e)),e}export function formatDate(e,t){const n={Y:(e=ensureDate(e)).getFullYear(),M:e.getMonth()+1,D:e.getDate(),h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()};return t.replace(/([YMDhms])\1*/g,(function(e){let t=n[e[0]].toString();const r=e.length;return r>t.length&&(t=new Array(r-t.length+1).join("0")+t),t}))}export function formatSeconds(e,t={segments:2,digits:2}){if(e=Number(e),isNaN(e)||e<0)throw new Error('"secs" must be a positive integer');let n=2;"auto"===t.segments&&e>=3600?n=3:"number"==typeof t.segments&&-1!==[2,3].indexOf(t.segments)&&(n=t.segments);let r=0|(t.digits||2);r=Math.max(1,r);const s=new Array(r+1).join("0"),o=[60,1];return 3===n&&o.unshift(3600),o.map((t=>{const n=Math.floor(e/t),o=n.toString().length;return e%=t,(s+n).slice(-Math.max(o,r))})).join(":")}
1
+ function ensureDate(e){return"object"!=typeof e&&(e=new Date(e)),e}export function formatDate(e,t){const n={Y:(e=ensureDate(e)).getFullYear(),M:e.getMonth()+1,D:e.getDate(),h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()};return t.replace(/([YMDhms])\1*/g,(function(e){let t=n[e[0]].toString();const r=e.length;return r>t.length&&(t=new Array(r-t.length+1).join("0")+t),t}))}export function formatSeconds(e,t={segments:2,digits:2}){if(e=Number(e),isNaN(e)||e<0)throw new Error('"secs" must be a positive integer');let n=2;"auto"===t.segments&&e>=3600?n=3:"number"==typeof t.segments&&-1!==[2,3].indexOf(t.segments)&&(n=t.segments);let r=0|(t.digits||2);r=Math.max(1,r);const o=new Array(r+1).join("0"),s=[60,1];return 3===n&&s.unshift(3600),s.map((t=>{const n=Math.floor(e/t),s=n.toString().length;return e%=t,(o+n).slice(-Math.max(s,r))})).join(":")}export function timeToSeconds(e){const t=/^(?:(\d+):)*?(?:(\d+):)?(\d+)(?:\.(\d+))?$/.exec(e);if(!t)return NaN;const n=[3600,60,1,.001];let r=0;return[t[1],t[2],t[3],t[4]].some(((e,t)=>{if(null!=e){const o=Number(e);if(isNaN(o))return r=NaN,!0;r+=Math.round(o*n[t])}return!1})),r}
@@ -128,6 +128,8 @@ export declare function openAppWithFallback(options: {
128
128
  androidLink: string;
129
129
  harmonyLink: string;
130
130
  fallbackUrl: string;
131
+ jumpWay: LinkJumpWay;
132
+ openLink: (url: string, jumpWay: LinkJumpWay) => void;
131
133
  }): void;
132
134
  /**
133
135
  * 格式化链接地址
@@ -1 +1 @@
1
- var __awaiter=this&&this.__awaiter||function(i,n,o,e){return new(o||(o=Promise))((function(t,r){function a(i){try{s(e.next(i))}catch(i){r(i)}}function l(i){try{s(e.throw(i))}catch(i){r(i)}}function s(i){var n;i.done?t(i.value):(n=i.value,n instanceof o?n:new o((function(i){i(n)}))).then(a,l)}s((e=e.apply(i,n||[])).next())}))};import{getCurrentUAInfo}from"@just4/ua-info";import{concat}from"@just4/querystring";const uaInfo=getCurrentUAInfo();export const isAndroid=uaInfo.os.isAndroid;export const isIOS=uaInfo.os.isIOS;export const isHarmony=uaInfo.os.isOpenHarmony;export const isPortable=uaInfo.isPortable;export var LinkJumpWay;!function(i){i.PopUp="POP_UP",i.NewWindow="NEW_WINDOW",i.CurrentWindow="CURRENT_WINDOW"}(LinkJumpWay||(LinkJumpWay={}));export function isCustomUA(i){const n=navigator.userAgent.toLowerCase();return!!i.length&&i.some((i=>n.includes(i.toLowerCase())))}export function openAppWithFallback(i){const{iosLink:n,androidLink:o,harmonyLink:e,fallbackUrl:t}=i,r=Date.now();let a=!1;const l=()=>{a=!0,window.removeEventListener("blur",l)};let s;window.addEventListener("blur",l),console.info(`ios\uff1a${isIOS}\uff0cAndroid\uff1a${isAndroid}\uff0charmony\uff1a${isHarmony}`),isIOS?(console.info("iOSLink",n),s=n):isAndroid?(console.info("Android link",o),s=o):isHarmony&&(console.info("harmony link",e),s=e),s||(console.info("\u6ca1\u6709\u914d\u7f6e\u591a\u5e73\u53f0\u94fe\u63a5\uff0c\u4f7f\u7528\u964d\u7ea7\u94fe\u63a5",t),s=t),window.location.href=s,setTimeout((()=>{window.removeEventListener("blur",l);const i=Date.now()-r;!a&&i<3700&&t&&(window.location.href=t)}),3500)}function toPlvWebviewBridge(i){return __awaiter(this,void 0,void 0,(function*(){const{getPlvWebviewSmallWindowSize:n,getPlvWebviewBridge:o}=i,e=(null==n?void 0:n())||{width:90,height:160},t=yield null==o?void 0:o();t&&t.sendData("clickProduct",{width:e.width,height:e.height,newPage:!0,link:i.link,data:i.data})}))}function toMultiPlatformLink(i){return __awaiter(this,void 0,void 0,(function*(){const{linkData:n,isWxMiniProgramEnv:o,toWxMiniProgram:e,openLink:t,getLinkParams:r,isMobile:a}=i,{wxMiniprogramLink:l,pcLink:s,iosLink:c,androidLink:d,harmonyLink:k,link:u,jumpWay:f,mobileAppLink:m}=n,w=(null==a?void 0:a())||isPortable;console.info("\u8df3\u8f6c\u51fd\u6570\u6536\u5230\u7684\u6570\u636e",n);let v=!1;try{v=(yield null==o?void 0:o())||!1}catch(i){v=!1}if(v&&e)return console.info("\u8fdb\u5165\u5230\u5c0f\u7a0b\u5e8f webview \u73af\u5883 wxMiniprogramLink & link",l,u),void(l?e(formatLink(l,r)):t(formatLink(u,r),LinkJumpWay.CurrentWindow));w?uaInfo.client.isWx||uaInfo.client.isWxWork||uaInfo.client.isDing||uaInfo.client.isQQ||uaInfo.client.isWeibo||uaInfo.client.isBaiduApp?t(formatLink(u,r),f):openAppWithFallback({iosLink:c,androidLink:d,harmonyLink:k,fallbackUrl:m||u}):t(formatLink(s||u,r),f)}))}export function formatLink(i,n){let o={};if(n){const e=n(i);o=Object.assign({},o,e)}return concat(i,o)}export function navigateToLink(i){const{linkData:n,usePlvWebviewBridge:o,openLink:e,isPlvWebview:t,getPlvWebviewSmallWindowSize:r,getPlvWebviewBridge:a,isWxMiniProgramEnv:l,toWxMiniProgram:s,getLinkParams:c,isMobile:d}=i,k=(null==t?void 0:t())||!1;if(console.info("\u662f\u5426\u4fdd\u5229\u5a01 webview \u73af\u5883",k),k){const{link:i,iosLink:e,androidLink:t,harmonyLink:l,mobileAppLink:s,wxMiniprogramOriginalId:d,wxMiniprogramLink:k}=n,u=s||i;console.info("\u4fdd\u5229\u5a01 webview \u4e0b\u7684 mobileAppLink\uff0clink",s,i),console.info("\u4fdd\u5229\u5a01 webview \u4e0b usePlvWebviewBridge",o);const f={mobileLink:formatLink(i,c),wxMiniprogramOriginalId:d,wxMiniprogramLink:formatLink(k,c),mobileAppLink:formatLink(s,c)};return o?void toPlvWebviewBridge({link:formatLink(u,c),data:f,getPlvWebviewSmallWindowSize:r,getPlvWebviewBridge:a}):void openAppWithFallback({iosLink:e,androidLink:t,harmonyLink:l,fallbackUrl:s||i})}toMultiPlatformLink({linkData:n,getLinkParams:c,isWxMiniProgramEnv:l,toWxMiniProgram:s,openLink:e,isMobile:d})}
1
+ var __awaiter=this&&this.__awaiter||function(i,n,o,e){return new(o||(o=Promise))((function(t,r){function a(i){try{s(e.next(i))}catch(i){r(i)}}function l(i){try{s(e.throw(i))}catch(i){r(i)}}function s(i){var n;i.done?t(i.value):(n=i.value,n instanceof o?n:new o((function(i){i(n)}))).then(a,l)}s((e=e.apply(i,n||[])).next())}))};import{getCurrentUAInfo}from"@just4/ua-info";import{concat}from"@just4/querystring";const uaInfo=getCurrentUAInfo();export const isAndroid=uaInfo.os.isAndroid;export const isIOS=uaInfo.os.isIOS;export const isHarmony=uaInfo.os.isOpenHarmony;export const isPortable=uaInfo.isPortable;export var LinkJumpWay;!function(i){i.PopUp="POP_UP",i.NewWindow="NEW_WINDOW",i.CurrentWindow="CURRENT_WINDOW"}(LinkJumpWay||(LinkJumpWay={}));export function isCustomUA(i){const n=navigator.userAgent.toLowerCase();return!!i.length&&i.some((i=>n.includes(i.toLowerCase())))}export function openAppWithFallback(i){const{iosLink:n,androidLink:o,harmonyLink:e,fallbackUrl:t,jumpWay:r,openLink:a}=i,l=Date.now();let s=!1;const c=()=>{s=!0,window.removeEventListener("blur",c)};let k;if(window.addEventListener("blur",c),console.info(`ios\uff1a${isIOS}\uff0cAndroid\uff1a${isAndroid}\uff0charmony\uff1a${isHarmony}`),isIOS?(console.info("iOSLink",n),k=n):isAndroid?(console.info("Android link",o),k=o):isHarmony&&(console.info("harmony link",e),k=e),!k)return console.info("\u6ca1\u6709\u914d\u7f6e\u591a\u5e73\u53f0\u94fe\u63a5\uff0c\u4f7f\u7528\u964d\u7ea7\u94fe\u63a5",t),void a(t,r);window.location.href=k,setTimeout((()=>{console.info("\u8fdb\u5165\u5230\u964d\u7ea7\u903b\u8f91\u4e86"),window.removeEventListener("blur",c);const i=Date.now()-l;!s&&i<3700&&t&&(console.info("\u964d\u7ea7\u7684 url",t,r),a(t,r))}),3500)}function toPlvWebviewBridge(i){return __awaiter(this,void 0,void 0,(function*(){const{getPlvWebviewSmallWindowSize:n,getPlvWebviewBridge:o}=i,e=(null==n?void 0:n())||{width:90,height:160},t=yield null==o?void 0:o();t&&t.sendData("clickProduct",{width:e.width,height:e.height,newPage:!0,link:i.link,data:i.data})}))}function toMultiPlatformLink(i){return __awaiter(this,void 0,void 0,(function*(){const{linkData:n,isWxMiniProgramEnv:o,toWxMiniProgram:e,openLink:t,getLinkParams:r,isMobile:a}=i,{wxMiniprogramLink:l,pcLink:s,iosLink:c,androidLink:k,harmonyLink:u,link:d,jumpWay:f,mobileAppLink:m}=n,L=(null==a?void 0:a())||isPortable;console.info("\u8df3\u8f6c\u51fd\u6570\u6536\u5230\u7684\u6570\u636e",n);let p=!1;try{p=(yield null==o?void 0:o())||!1}catch(i){p=!1}if(p&&e)return console.info("\u8fdb\u5165\u5230\u5c0f\u7a0b\u5e8f webview \u73af\u5883 wxMiniprogramLink & link",l,d),void(l?e(formatLink(l,r)):t(formatLink(d,r),f));L?uaInfo.client.isWx||uaInfo.client.isWxWork||uaInfo.client.isDing||uaInfo.client.isQQ||uaInfo.client.isWeibo||uaInfo.client.isBaiduApp?t(formatLink(d,r),f):openAppWithFallback({iosLink:c,androidLink:k,harmonyLink:u,fallbackUrl:formatLink(m||d,r),jumpWay:f,openLink:t}):t(formatLink(s||d,r),f)}))}export function formatLink(i,n){let o={};if(n){const e=n(i);o=Object.assign({},o,e)}return concat(i,o)}export function navigateToLink(i){const{linkData:n,usePlvWebviewBridge:o,openLink:e,isPlvWebview:t,getPlvWebviewSmallWindowSize:r,getPlvWebviewBridge:a,isWxMiniProgramEnv:l,toWxMiniProgram:s,getLinkParams:c,isMobile:k}=i,u=(null==t?void 0:t())||!1;if(console.info("\u662f\u5426\u4fdd\u5229\u5a01 webview \u73af\u5883",u),u){const{link:i,iosLink:t,androidLink:l,harmonyLink:s,mobileAppLink:k,wxMiniprogramOriginalId:u,wxMiniprogramLink:d,jumpWay:f}=n,m=k||i;console.info("\u4fdd\u5229\u5a01 webview \u4e0b\u7684 mobileAppLink\uff0clink",k,i),console.info("\u4fdd\u5229\u5a01 webview \u4e0b usePlvWebviewBridge",o);const L={mobileLink:formatLink(i,c),wxMiniprogramOriginalId:u,wxMiniprogramLink:formatLink(d,c),mobileAppLink:formatLink(k,c)};return o?void toPlvWebviewBridge({link:formatLink(m,c),data:L,getPlvWebviewSmallWindowSize:r,getPlvWebviewBridge:a}):void openAppWithFallback({iosLink:t,androidLink:l,harmonyLink:s,fallbackUrl:formatLink(k||i,c),jumpWay:f,openLink:e})}toMultiPlatformLink({linkData:n,getLinkParams:c,isWxMiniProgramEnv:l,toWxMiniProgram:s,openLink:e,isMobile:k})}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyv/utils",
3
- "version": "2.17.0",
3
+ "version": "2.19.0-beta.1",
4
4
  "description": "Utility functions of Polyv frontend development.",
5
5
  "keywords": [
6
6
  "polyv",