199da06d0Sopenharmony_ci/** 299da06d0Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 399da06d0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 499da06d0Sopenharmony_ci * you may not use this file except in compliance with the License. 599da06d0Sopenharmony_ci * You may obtain a copy of the License at 699da06d0Sopenharmony_ci * 799da06d0Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 899da06d0Sopenharmony_ci * 999da06d0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1099da06d0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1199da06d0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1299da06d0Sopenharmony_ci * See the License for the specific language governing permissions and 1399da06d0Sopenharmony_ci * limitations under the License. 1499da06d0Sopenharmony_ci */ 1599da06d0Sopenharmony_ci 1699da06d0Sopenharmony_ci/** 1799da06d0Sopenharmony_ci * @file: Tools 1899da06d0Sopenharmony_ci */ 1999da06d0Sopenharmony_ci 2099da06d0Sopenharmony_ci 2199da06d0Sopenharmony_ci/** 2299da06d0Sopenharmony_ci * Carry when the time is greater than 9 seconds 2399da06d0Sopenharmony_ci */ 2499da06d0Sopenharmony_ciconst NINE_MAX = 9; 2599da06d0Sopenharmony_ci 2699da06d0Sopenharmony_ci/** 2799da06d0Sopenharmony_ci * Divide by 60 to get minutes and seconds 2899da06d0Sopenharmony_ci */ 2999da06d0Sopenharmony_ciconst SIXTY_SECONDS = 60; 3099da06d0Sopenharmony_ciconst SEC_VAL = 1000; 3199da06d0Sopenharmony_ciconst MIN_VAL = SIXTY_SECONDS * SEC_VAL 3299da06d0Sopenharmony_ci 3399da06d0Sopenharmony_ciexport default class Utils { 3499da06d0Sopenharmony_ci private static sUtils: Utils 3599da06d0Sopenharmony_ci 3699da06d0Sopenharmony_ci public static getInstance(): Utils { 3799da06d0Sopenharmony_ci if (Utils.sUtils == null) { 3899da06d0Sopenharmony_ci Utils.sUtils = new Utils() 3999da06d0Sopenharmony_ci } 4099da06d0Sopenharmony_ci return Utils.sUtils; 4199da06d0Sopenharmony_ci } 4299da06d0Sopenharmony_ci 4399da06d0Sopenharmony_ci /** 4499da06d0Sopenharmony_ci * format phone number 4599da06d0Sopenharmony_ci * 4699da06d0Sopenharmony_ci * @param { string } phoneNumber 4799da06d0Sopenharmony_ci */ 4899da06d0Sopenharmony_ci public formatPhoneNum(phoneNumber) { 4999da06d0Sopenharmony_ci if (/^1\d{10}$/.test(phoneNumber)) { 5099da06d0Sopenharmony_ci const str01 = phoneNumber.substring(0, 3); 5199da06d0Sopenharmony_ci const str02 = phoneNumber.substring(3, 7); 5299da06d0Sopenharmony_ci const str03 = phoneNumber.substring(7, 11); 5399da06d0Sopenharmony_ci return `${str01} ${str02} ${str03}`; 5499da06d0Sopenharmony_ci } 5599da06d0Sopenharmony_ci return phoneNumber; 5699da06d0Sopenharmony_ci } 5799da06d0Sopenharmony_ci 5899da06d0Sopenharmony_ci /** 5999da06d0Sopenharmony_ci * format time 6099da06d0Sopenharmony_ci * 6199da06d0Sopenharmony_ci * @param { number } count 6299da06d0Sopenharmony_ci */ 6399da06d0Sopenharmony_ci public formatTime(count) { 6499da06d0Sopenharmony_ci const second = Math.floor((count % MIN_VAL) / SEC_VAL); 6599da06d0Sopenharmony_ci const minute = Math.floor((count / MIN_VAL) % SIXTY_SECONDS); 6699da06d0Sopenharmony_ci const hour = Math.floor(count / (SIXTY_SECONDS * MIN_VAL)); 6799da06d0Sopenharmony_ci const secondStr = second <= NINE_MAX ? '0' + second : second; 6899da06d0Sopenharmony_ci const minuteStr = minute <= NINE_MAX ? '0' + minute : minute; 6999da06d0Sopenharmony_ci return hour > 0 ? `${hour}:${minuteStr}:${secondStr}` : `${minuteStr}:${secondStr}`; 7099da06d0Sopenharmony_ci } 7199da06d0Sopenharmony_ci 7299da06d0Sopenharmony_ci /** 7399da06d0Sopenharmony_ci * debounce 7499da06d0Sopenharmony_ci * 7599da06d0Sopenharmony_ci * @param {Function} func 7699da06d0Sopenharmony_ci * 7799da06d0Sopenharmony_ci * @param {Number} delay 7899da06d0Sopenharmony_ci * 7999da06d0Sopenharmony_ci * @return function 8099da06d0Sopenharmony_ci */ 8199da06d0Sopenharmony_ci public debounce(func, delay = 200) { 8299da06d0Sopenharmony_ci let timer = null; 8399da06d0Sopenharmony_ci return function () { 8499da06d0Sopenharmony_ci clearTimeout(timer); 8599da06d0Sopenharmony_ci timer = setTimeout(() => { 8699da06d0Sopenharmony_ci func.apply(this, arguments); 8799da06d0Sopenharmony_ci }, delay); 8899da06d0Sopenharmony_ci }; 8999da06d0Sopenharmony_ci } 9099da06d0Sopenharmony_ci}