@noah-libjs/utils 0.0.48 → 0.0.49

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/es.js CHANGED
@@ -1428,7 +1428,8 @@ function safe_json_parse(str) {
1428
1428
  if (!isString(str)) return retOnErr;
1429
1429
  try {
1430
1430
  var v = JSON.parse(str);
1431
- return isObject(v) || Array.isArray(v) ? v : retOnErr;
1431
+ // return (isObject(v) || Array.isArray(v)) ? v : retOnErr
1432
+ return v;
1432
1433
  } catch (error) {
1433
1434
  return retOnErr;
1434
1435
  }
@@ -1497,6 +1498,119 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
1497
1498
  var e = new Error(message);
1498
1499
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
1499
1500
  };
1501
+ function getFn(format) {
1502
+ function f(s) {
1503
+ if (isFunction(s === null || s === void 0 ? void 0 : s.format)) {
1504
+ var res = s.format(format);
1505
+ if (isString(res)) return res;
1506
+ }
1507
+ var a = dayjs(s);
1508
+ return a.isValid() ? a.format(format) : null;
1509
+ }
1510
+ return Object.assign(f, {
1511
+ format: format
1512
+ });
1513
+ }
1514
+ function getMomentObj(s) {
1515
+ return dayjs(s);
1516
+ }
1517
+ var formatDate = getFn('YYYY-MM-DD');
1518
+ var formatDateTime = getFn('YYYY-MM-DD HH:mm:ss');
1519
+ var formatDateTimeNoSecond = getFn('YYYY-MM-DD HH:mm');
1520
+ var formatTime = getFn('HH:mm:ss');
1521
+ function start() {
1522
+ var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs;
1523
+ return m().set('hour', 0).set('minute', 0).set('second', 0);
1524
+ }
1525
+ function end() {
1526
+ var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs;
1527
+ return m().set('hour', 23).set('minute', 59).set('second', 59);
1528
+ }
1529
+ function getMomentRange() {
1530
+ var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs;
1531
+ return {
1532
+ 昨天: [start(m).add(-1, 'day'), end(m).add(-1, 'day')],
1533
+ 今天: [start(m), end(m)],
1534
+ 明天: [start(m).add(1, 'day'), end(m).add(1, 'day')],
1535
+ 上周: [start(m).add(-1, 'week').startOf('week'), end(m).add(-1, 'week').endOf('week')],
1536
+ // 这周: [start(m).startOf('week'), end(m).endOf('week')] as DT,
1537
+ 近一周: [start(m).add(-1, 'week').add(1, 'day'), end(m)],
1538
+ 下周: [start(m).add(1, 'week').startOf('week'), end(m).add(1, 'week').endOf('week')],
1539
+ 上月: [start(m).add(-1, 'month').startOf('month'), end(m).add(-1, 'month').endOf('month')],
1540
+ // 这月: [start(m).startOf('month'), end(m).endOf('month')] as DT,
1541
+ 近一月: [start(m).add(-1, 'month').add(1, 'day'), end(m)],
1542
+ 下月: [start(m).add(1, 'month').startOf('month'), end(m).add(1, 'month').endOf('month')],
1543
+ 近一年: [start(m).add(-1, 'year').add(1, 'day'), end(m)],
1544
+ 年初至今: [start(m).startOf('year'), end(m)]
1545
+ };
1546
+ }
1547
+ function presets_date() {
1548
+ return [{
1549
+ label: '一月前',
1550
+ value: start().add(-1, 'month')
1551
+ }, {
1552
+ label: '一周前',
1553
+ value: start().add(-1, 'week')
1554
+ }, {
1555
+ label: '一天前',
1556
+ value: start().add(-1, 'day')
1557
+ }, {
1558
+ label: '一天后',
1559
+ value: start().add(1, 'day')
1560
+ }, {
1561
+ label: '两天后',
1562
+ value: start().add(2, 'day')
1563
+ }, {
1564
+ label: '三天后',
1565
+ value: start().add(3, 'day')
1566
+ }, {
1567
+ label: '一周后',
1568
+ value: start().add(1, 'week')
1569
+ }, {
1570
+ label: '两周后',
1571
+ value: start().add(2, 'week')
1572
+ }, {
1573
+ label: '一月后',
1574
+ value: start().add(1, 'month')
1575
+ }, {
1576
+ label: '两月后',
1577
+ value: start().add(2, 'month')
1578
+ }, {
1579
+ label: '半年后',
1580
+ value: start().add(6, 'month')
1581
+ }];
1582
+ }
1583
+ function isMoment(m) {
1584
+ return isFunction(m.format);
1585
+ }
1586
+ /**
1587
+ * 获取若干天后的日期
1588
+ */
1589
+ function getFutureDate(num) {
1590
+ return dayjs().add(num, 'days').format('YYYY-MM-DD');
1591
+ }
1592
+ function dayjs_quarter(input, which_quarter) {
1593
+ if (typeof which_quarter !== 'undefined') {
1594
+ // 设置季度:调整月份至目标季度的第一个月,并保持其他部分不变
1595
+ var targetMonth = (which_quarter - 1) * 3;
1596
+ var adjustedDate = input.month(targetMonth);
1597
+ return [adjustedDate, which_quarter];
1598
+ } else {
1599
+ // 获取当前季度:根据月份计算季度(1-4)
1600
+ var currentMonth = input.month(); // 0-11
1601
+ var currentQuarter = Math.floor(currentMonth / 3) + 1;
1602
+ return [input, currentQuarter];
1603
+ }
1604
+ }
1605
+ function diff_between(a, b, unit) {
1606
+ var _float = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
1607
+ return dayjs(a).diff(dayjs(b), unit, _float);
1608
+ }
1609
+ function dayOf(unit) {
1610
+ var today = dayjs();
1611
+ var first = dayjs().startOf(unit);
1612
+ return diff_between(today, first, 'day', false) + 1;
1613
+ }
1500
1614
 
1501
1615
  // export function sleep(sec: number) {
1502
1616
  // return new Promise<void>((resolve) => setTimeout(resolve, sec * 1000))
@@ -1870,16 +1984,19 @@ function confirm_operation() {
1870
1984
  // '😎'.charCodeAt(0).toString(16) == 'd83d' // UTF-16 码元
1871
1985
  // '😎'.charCodeAt(1).toString(16) == 'de0e'
1872
1986
  // '😎'.codePointAt(0)?.toString(16) == '1f60e'// Unicode 码点
1987
+ var rnums = [723, 41, 886, 159, 37, 902, 208, 645, 12, 571, 498, 83, 709, 246, 317, 58, 943, 162, 650, 29, 811, 476, 135, 528, 76, 918, 203, 689, 344, 107, 552, 795, 86, 431, 278, 614, 957, 18, 392, 506, 734, 129, 851, 46, 237, 698, 925, 141, 563, 305, 778, 89, 422, 196, 535, 261, 674, 908, 35, 173, 599, 712, 48, 836, 219, 641, 962, 115, 387, 519, 746, 25, 453, 138, 827, 574, 291, 638, 93, 366, 789, 102, 495, 84, 226, 667, 913, 154, 542, 329, 758, 61, 417, 188, 501, 283, 626, 977, 39, 145];
1873
1988
  function simple_encrypt(data) {
1989
+ var old = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1874
1990
  if (!data) return null;
1875
1991
  return JSON.stringify(data).split('').map(function (_, idx) {
1876
- return ~_.charCodeAt(0) + idx * 119;
1992
+ return ~_.charCodeAt(0) + (old ? idx * 119 : rnums[idx % 100]);
1877
1993
  });
1878
1994
  }
1879
1995
  function simple_decrypt(code) {
1996
+ var old = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1880
1997
  if (!code) return null;
1881
1998
  var str = expect_array(code).map(function (_, idx) {
1882
- return String.fromCharCode(~(_ - idx * 119));
1999
+ return String.fromCharCode(~(_ - (old ? idx * 119 : rnums[idx % 100])));
1883
2000
  }).join('');
1884
2001
  return safe_json_parse(str);
1885
2002
  }
@@ -1923,118 +2040,14 @@ function calc_number(data) {
1923
2040
  Object.assign(get_global(), {
1924
2041
  safe_async_call: safe_async_call,
1925
2042
  simple_decrypt_str: simple_decrypt_str,
1926
- simple_encrypt_str: simple_encrypt_str
2043
+ simple_encrypt_str: simple_encrypt_str,
2044
+ simple_decrypt: simple_decrypt,
2045
+ simple_encrypt: simple_encrypt,
2046
+ getMomentObj: getMomentObj,
2047
+ dayOf: dayOf
1927
2048
  });
1928
2049
  // safe_check()
1929
2050
 
1930
- function getFn(format) {
1931
- function f(s) {
1932
- if (isFunction(s === null || s === void 0 ? void 0 : s.format)) {
1933
- var res = s.format(format);
1934
- if (isString(res)) return res;
1935
- }
1936
- var a = dayjs(s);
1937
- return a.isValid() ? a.format(format) : null;
1938
- }
1939
- return Object.assign(f, {
1940
- format: format
1941
- });
1942
- }
1943
- function getMomentObj(s) {
1944
- return dayjs(s);
1945
- }
1946
- var formatDate = getFn('YYYY-MM-DD');
1947
- var formatDateTime = getFn('YYYY-MM-DD HH:mm:ss');
1948
- var formatDateTimeNoSecond = getFn('YYYY-MM-DD HH:mm');
1949
- var formatTime = getFn('HH:mm:ss');
1950
- function start() {
1951
- var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs;
1952
- return m().set('hour', 0).set('minute', 0).set('second', 0);
1953
- }
1954
- function end() {
1955
- var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs;
1956
- return m().set('hour', 23).set('minute', 59).set('second', 59);
1957
- }
1958
- function getMomentRange() {
1959
- var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs;
1960
- return {
1961
- 昨天: [start(m).add(-1, 'day'), end(m).add(-1, 'day')],
1962
- 今天: [start(m), end(m)],
1963
- 明天: [start(m).add(1, 'day'), end(m).add(1, 'day')],
1964
- 上周: [start(m).add(-1, 'week').startOf('week'), end(m).add(-1, 'week').endOf('week')],
1965
- // 这周: [start(m).startOf('week'), end(m).endOf('week')] as DT,
1966
- 近一周: [start(m).add(-1, 'week').add(1, 'day'), end(m)],
1967
- 下周: [start(m).add(1, 'week').startOf('week'), end(m).add(1, 'week').endOf('week')],
1968
- 上月: [start(m).add(-1, 'month').startOf('month'), end(m).add(-1, 'month').endOf('month')],
1969
- // 这月: [start(m).startOf('month'), end(m).endOf('month')] as DT,
1970
- 近一月: [start(m).add(-1, 'month').add(1, 'day'), end(m)],
1971
- 下月: [start(m).add(1, 'month').startOf('month'), end(m).add(1, 'month').endOf('month')],
1972
- 近一年: [start(m).add(-1, 'year').add(1, 'day'), end(m)],
1973
- 年初至今: [start(m).startOf('year'), end(m)]
1974
- };
1975
- }
1976
- function presets_date() {
1977
- return [{
1978
- label: '一月前',
1979
- value: start().add(-1, 'month')
1980
- }, {
1981
- label: '一周前',
1982
- value: start().add(-1, 'week')
1983
- }, {
1984
- label: '一天前',
1985
- value: start().add(-1, 'day')
1986
- }, {
1987
- label: '一天后',
1988
- value: start().add(1, 'day')
1989
- }, {
1990
- label: '两天后',
1991
- value: start().add(2, 'day')
1992
- }, {
1993
- label: '三天后',
1994
- value: start().add(3, 'day')
1995
- }, {
1996
- label: '一周后',
1997
- value: start().add(1, 'week')
1998
- }, {
1999
- label: '两周后',
2000
- value: start().add(2, 'week')
2001
- }, {
2002
- label: '一月后',
2003
- value: start().add(1, 'month')
2004
- }, {
2005
- label: '两月后',
2006
- value: start().add(2, 'month')
2007
- }, {
2008
- label: '半年后',
2009
- value: start().add(6, 'month')
2010
- }];
2011
- }
2012
- function isMoment(m) {
2013
- return isFunction(m.format);
2014
- }
2015
- /**
2016
- * 获取若干天后的日期
2017
- */
2018
- function getFutureDate(num) {
2019
- return dayjs().add(num, 'days').format('YYYY-MM-DD');
2020
- }
2021
- function dayjs_quarter(input, which_quarter) {
2022
- if (typeof which_quarter !== 'undefined') {
2023
- // 设置季度:调整月份至目标季度的第一个月,并保持其他部分不变
2024
- var targetMonth = (which_quarter - 1) * 3;
2025
- var adjustedDate = input.month(targetMonth);
2026
- return [adjustedDate, which_quarter];
2027
- } else {
2028
- // 获取当前季度:根据月份计算季度(1-4)
2029
- var currentMonth = input.month(); // 0-11
2030
- var currentQuarter = Math.floor(currentMonth / 3) + 1;
2031
- return [input, currentQuarter];
2032
- }
2033
- }
2034
- function diff_between(a, b, unit) {
2035
- var _float = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
2036
- return dayjs(a).diff(dayjs(b), unit, _float);
2037
- }
2038
2051
  var colorMap = {
2039
2052
  'log': '#1475b2',
2040
2053
  'warn': '#f89c1e',
@@ -2690,4 +2703,4 @@ function load_src(items, node) {
2690
2703
  var load_src_ = create_load_src();
2691
2704
  return load_src_(items, node);
2692
2705
  }
2693
- export { ARG_URS1_KEY, ARG_URS2_KEY, EMPTY_PLACEHOLDER, EventEmitter, MyLog, ROMAN_NUMERALS, TOKEN_KEY, all, alphabetical, _assign as assign, base64ToBinary, base64_to_image, boil, cache_fetch, calc_number, callable, camel, capitalize, chain, charToUTF8, charToUnicode, clone, cloneDeep, cluster, compose, confirm_operation, construct, copyText, counting, create_load_src, crush, dash, dayjs_quarter, debounce, defer, diff, diff_between, downloadFile, draw, dyn_cb, expect_array, filter_obj_to_url_search, first, flat, fork, formatDate, formatDateTime, formatDateTimeNoSecond, formatTime, gen_encoded_char_svg, get, getDictionaries, getDictionariesEnumerations, getDictionaryLabel, getDictionaryValue, getDualModeOptions, getFilledArray, getFuckTimeInterval, getFutureDate, getMomentObj, getMomentRange, getOptionLabel, getOptionValue, getPresetOptions, getSameOptions, getSearchParamsAll, getSearchParamsValue, getSimpleOptions, get_global, group, guard, hasOwn, identity, image_to_base64, inRange, intersects, invert, isArray, isBoolean, isDate, isEmpty, _isEqual as isEqual, isFloat, isFunction, isInt, isMoment, isNil, isNull, isNumber, isObject, isObjectLike, isPrimitive, isPromise, isString, isSymbol, iterate, keys, last, list, listify, load_src, lowerize, map, mapEntries, mapKeys, mapValues, max, memo, merge, merge_dict, merge_preset_options, min, noop, numberLikeCompare, objectify, omit, optionKey不详, optionKey其他, optionKey否, parallel, partial, partob, pascal, pick, presets_date, proxied, random, randomHex, random_word, range, reduce, replace, replaceOrAppend, retry, safeExec, safeGetFromFuncOrData, safe_async_call, safe_json_parse, safe_json_parse_arr, safe_json_stringify, safe_number_parse, scrollIntoView, select, series, set, setSearchParamsAll, setSearchParamsValue, shake, shift, shuffle, sift, simple_decrypt, simple_decrypt_str, simple_encrypt, simple_encrypt_str, size, sleep, snake, sort, speculate_on_display, sum, template, text_ellipsis, throttle, title, toFloat, toInt, toString, toggle, trim, tryit as try, tryit, uid, unicodeToChar, unicode_to_UTF8, unique, upperize, uuid, warpBase64Type, zip, zipToObject };
2706
+ export { ARG_URS1_KEY, ARG_URS2_KEY, EMPTY_PLACEHOLDER, EventEmitter, MyLog, ROMAN_NUMERALS, TOKEN_KEY, all, alphabetical, _assign as assign, base64ToBinary, base64_to_image, boil, cache_fetch, calc_number, callable, camel, capitalize, chain, charToUTF8, charToUnicode, clone, cloneDeep, cluster, compose, confirm_operation, construct, copyText, counting, create_load_src, crush, dash, dayOf, dayjs_quarter, debounce, defer, diff, diff_between, downloadFile, draw, dyn_cb, expect_array, filter_obj_to_url_search, first, flat, fork, formatDate, formatDateTime, formatDateTimeNoSecond, formatTime, gen_encoded_char_svg, get, getDictionaries, getDictionariesEnumerations, getDictionaryLabel, getDictionaryValue, getDualModeOptions, getFilledArray, getFuckTimeInterval, getFutureDate, getMomentObj, getMomentRange, getOptionLabel, getOptionValue, getPresetOptions, getSameOptions, getSearchParamsAll, getSearchParamsValue, getSimpleOptions, get_global, group, guard, hasOwn, identity, image_to_base64, inRange, intersects, invert, isArray, isBoolean, isDate, isEmpty, _isEqual as isEqual, isFloat, isFunction, isInt, isMoment, isNil, isNull, isNumber, isObject, isObjectLike, isPrimitive, isPromise, isString, isSymbol, iterate, keys, last, list, listify, load_src, lowerize, map, mapEntries, mapKeys, mapValues, max, memo, merge, merge_dict, merge_preset_options, min, noop, numberLikeCompare, objectify, omit, optionKey不详, optionKey其他, optionKey否, parallel, partial, partob, pascal, pick, presets_date, proxied, random, randomHex, random_word, range, reduce, replace, replaceOrAppend, retry, safeExec, safeGetFromFuncOrData, safe_async_call, safe_json_parse, safe_json_parse_arr, safe_json_stringify, safe_number_parse, scrollIntoView, select, series, set, setSearchParamsAll, setSearchParamsValue, shake, shift, shuffle, sift, simple_decrypt, simple_decrypt_str, simple_encrypt, simple_encrypt_str, size, sleep, snake, sort, speculate_on_display, sum, template, text_ellipsis, throttle, title, toFloat, toInt, toString, toggle, trim, tryit as try, tryit, uid, unicodeToChar, unicode_to_UTF8, unique, upperize, uuid, warpBase64Type, zip, zipToObject };
package/dist/lib.js CHANGED
@@ -1438,7 +1438,8 @@ function safe_json_parse(str) {
1438
1438
  if (!isString(str)) return retOnErr;
1439
1439
  try {
1440
1440
  var v = JSON.parse(str);
1441
- return isObject(v) || Array.isArray(v) ? v : retOnErr;
1441
+ // return (isObject(v) || Array.isArray(v)) ? v : retOnErr
1442
+ return v;
1442
1443
  } catch (error) {
1443
1444
  return retOnErr;
1444
1445
  }
@@ -1507,6 +1508,119 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
1507
1508
  var e = new Error(message);
1508
1509
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
1509
1510
  };
1511
+ function getFn(format) {
1512
+ function f(s) {
1513
+ if (isFunction(s === null || s === void 0 ? void 0 : s.format)) {
1514
+ var res = s.format(format);
1515
+ if (isString(res)) return res;
1516
+ }
1517
+ var a = dayjs__default["default"](s);
1518
+ return a.isValid() ? a.format(format) : null;
1519
+ }
1520
+ return Object.assign(f, {
1521
+ format: format
1522
+ });
1523
+ }
1524
+ function getMomentObj(s) {
1525
+ return dayjs__default["default"](s);
1526
+ }
1527
+ var formatDate = getFn('YYYY-MM-DD');
1528
+ var formatDateTime = getFn('YYYY-MM-DD HH:mm:ss');
1529
+ var formatDateTimeNoSecond = getFn('YYYY-MM-DD HH:mm');
1530
+ var formatTime = getFn('HH:mm:ss');
1531
+ function start() {
1532
+ var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs__default["default"];
1533
+ return m().set('hour', 0).set('minute', 0).set('second', 0);
1534
+ }
1535
+ function end() {
1536
+ var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs__default["default"];
1537
+ return m().set('hour', 23).set('minute', 59).set('second', 59);
1538
+ }
1539
+ function getMomentRange() {
1540
+ var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs__default["default"];
1541
+ return {
1542
+ 昨天: [start(m).add(-1, 'day'), end(m).add(-1, 'day')],
1543
+ 今天: [start(m), end(m)],
1544
+ 明天: [start(m).add(1, 'day'), end(m).add(1, 'day')],
1545
+ 上周: [start(m).add(-1, 'week').startOf('week'), end(m).add(-1, 'week').endOf('week')],
1546
+ // 这周: [start(m).startOf('week'), end(m).endOf('week')] as DT,
1547
+ 近一周: [start(m).add(-1, 'week').add(1, 'day'), end(m)],
1548
+ 下周: [start(m).add(1, 'week').startOf('week'), end(m).add(1, 'week').endOf('week')],
1549
+ 上月: [start(m).add(-1, 'month').startOf('month'), end(m).add(-1, 'month').endOf('month')],
1550
+ // 这月: [start(m).startOf('month'), end(m).endOf('month')] as DT,
1551
+ 近一月: [start(m).add(-1, 'month').add(1, 'day'), end(m)],
1552
+ 下月: [start(m).add(1, 'month').startOf('month'), end(m).add(1, 'month').endOf('month')],
1553
+ 近一年: [start(m).add(-1, 'year').add(1, 'day'), end(m)],
1554
+ 年初至今: [start(m).startOf('year'), end(m)]
1555
+ };
1556
+ }
1557
+ function presets_date() {
1558
+ return [{
1559
+ label: '一月前',
1560
+ value: start().add(-1, 'month')
1561
+ }, {
1562
+ label: '一周前',
1563
+ value: start().add(-1, 'week')
1564
+ }, {
1565
+ label: '一天前',
1566
+ value: start().add(-1, 'day')
1567
+ }, {
1568
+ label: '一天后',
1569
+ value: start().add(1, 'day')
1570
+ }, {
1571
+ label: '两天后',
1572
+ value: start().add(2, 'day')
1573
+ }, {
1574
+ label: '三天后',
1575
+ value: start().add(3, 'day')
1576
+ }, {
1577
+ label: '一周后',
1578
+ value: start().add(1, 'week')
1579
+ }, {
1580
+ label: '两周后',
1581
+ value: start().add(2, 'week')
1582
+ }, {
1583
+ label: '一月后',
1584
+ value: start().add(1, 'month')
1585
+ }, {
1586
+ label: '两月后',
1587
+ value: start().add(2, 'month')
1588
+ }, {
1589
+ label: '半年后',
1590
+ value: start().add(6, 'month')
1591
+ }];
1592
+ }
1593
+ function isMoment(m) {
1594
+ return isFunction(m.format);
1595
+ }
1596
+ /**
1597
+ * 获取若干天后的日期
1598
+ */
1599
+ function getFutureDate(num) {
1600
+ return dayjs__default["default"]().add(num, 'days').format('YYYY-MM-DD');
1601
+ }
1602
+ function dayjs_quarter(input, which_quarter) {
1603
+ if (typeof which_quarter !== 'undefined') {
1604
+ // 设置季度:调整月份至目标季度的第一个月,并保持其他部分不变
1605
+ var targetMonth = (which_quarter - 1) * 3;
1606
+ var adjustedDate = input.month(targetMonth);
1607
+ return [adjustedDate, which_quarter];
1608
+ } else {
1609
+ // 获取当前季度:根据月份计算季度(1-4)
1610
+ var currentMonth = input.month(); // 0-11
1611
+ var currentQuarter = Math.floor(currentMonth / 3) + 1;
1612
+ return [input, currentQuarter];
1613
+ }
1614
+ }
1615
+ function diff_between(a, b, unit) {
1616
+ var _float = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
1617
+ return dayjs__default["default"](a).diff(dayjs__default["default"](b), unit, _float);
1618
+ }
1619
+ function dayOf(unit) {
1620
+ var today = dayjs__default["default"]();
1621
+ var first = dayjs__default["default"]().startOf(unit);
1622
+ return diff_between(today, first, 'day', false) + 1;
1623
+ }
1510
1624
 
1511
1625
  // export function sleep(sec: number) {
1512
1626
  // return new Promise<void>((resolve) => setTimeout(resolve, sec * 1000))
@@ -1880,16 +1994,19 @@ function confirm_operation() {
1880
1994
  // '😎'.charCodeAt(0).toString(16) == 'd83d' // UTF-16 码元
1881
1995
  // '😎'.charCodeAt(1).toString(16) == 'de0e'
1882
1996
  // '😎'.codePointAt(0)?.toString(16) == '1f60e'// Unicode 码点
1997
+ var rnums = [723, 41, 886, 159, 37, 902, 208, 645, 12, 571, 498, 83, 709, 246, 317, 58, 943, 162, 650, 29, 811, 476, 135, 528, 76, 918, 203, 689, 344, 107, 552, 795, 86, 431, 278, 614, 957, 18, 392, 506, 734, 129, 851, 46, 237, 698, 925, 141, 563, 305, 778, 89, 422, 196, 535, 261, 674, 908, 35, 173, 599, 712, 48, 836, 219, 641, 962, 115, 387, 519, 746, 25, 453, 138, 827, 574, 291, 638, 93, 366, 789, 102, 495, 84, 226, 667, 913, 154, 542, 329, 758, 61, 417, 188, 501, 283, 626, 977, 39, 145];
1883
1998
  function simple_encrypt(data) {
1999
+ var old = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1884
2000
  if (!data) return null;
1885
2001
  return JSON.stringify(data).split('').map(function (_, idx) {
1886
- return ~_.charCodeAt(0) + idx * 119;
2002
+ return ~_.charCodeAt(0) + (old ? idx * 119 : rnums[idx % 100]);
1887
2003
  });
1888
2004
  }
1889
2005
  function simple_decrypt(code) {
2006
+ var old = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1890
2007
  if (!code) return null;
1891
2008
  var str = expect_array(code).map(function (_, idx) {
1892
- return String.fromCharCode(~(_ - idx * 119));
2009
+ return String.fromCharCode(~(_ - (old ? idx * 119 : rnums[idx % 100])));
1893
2010
  }).join('');
1894
2011
  return safe_json_parse(str);
1895
2012
  }
@@ -1933,118 +2050,14 @@ function calc_number(data) {
1933
2050
  Object.assign(get_global(), {
1934
2051
  safe_async_call: safe_async_call,
1935
2052
  simple_decrypt_str: simple_decrypt_str,
1936
- simple_encrypt_str: simple_encrypt_str
2053
+ simple_encrypt_str: simple_encrypt_str,
2054
+ simple_decrypt: simple_decrypt,
2055
+ simple_encrypt: simple_encrypt,
2056
+ getMomentObj: getMomentObj,
2057
+ dayOf: dayOf
1937
2058
  });
1938
2059
  // safe_check()
1939
2060
 
1940
- function getFn(format) {
1941
- function f(s) {
1942
- if (isFunction(s === null || s === void 0 ? void 0 : s.format)) {
1943
- var res = s.format(format);
1944
- if (isString(res)) return res;
1945
- }
1946
- var a = dayjs__default["default"](s);
1947
- return a.isValid() ? a.format(format) : null;
1948
- }
1949
- return Object.assign(f, {
1950
- format: format
1951
- });
1952
- }
1953
- function getMomentObj(s) {
1954
- return dayjs__default["default"](s);
1955
- }
1956
- var formatDate = getFn('YYYY-MM-DD');
1957
- var formatDateTime = getFn('YYYY-MM-DD HH:mm:ss');
1958
- var formatDateTimeNoSecond = getFn('YYYY-MM-DD HH:mm');
1959
- var formatTime = getFn('HH:mm:ss');
1960
- function start() {
1961
- var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs__default["default"];
1962
- return m().set('hour', 0).set('minute', 0).set('second', 0);
1963
- }
1964
- function end() {
1965
- var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs__default["default"];
1966
- return m().set('hour', 23).set('minute', 59).set('second', 59);
1967
- }
1968
- function getMomentRange() {
1969
- var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dayjs__default["default"];
1970
- return {
1971
- 昨天: [start(m).add(-1, 'day'), end(m).add(-1, 'day')],
1972
- 今天: [start(m), end(m)],
1973
- 明天: [start(m).add(1, 'day'), end(m).add(1, 'day')],
1974
- 上周: [start(m).add(-1, 'week').startOf('week'), end(m).add(-1, 'week').endOf('week')],
1975
- // 这周: [start(m).startOf('week'), end(m).endOf('week')] as DT,
1976
- 近一周: [start(m).add(-1, 'week').add(1, 'day'), end(m)],
1977
- 下周: [start(m).add(1, 'week').startOf('week'), end(m).add(1, 'week').endOf('week')],
1978
- 上月: [start(m).add(-1, 'month').startOf('month'), end(m).add(-1, 'month').endOf('month')],
1979
- // 这月: [start(m).startOf('month'), end(m).endOf('month')] as DT,
1980
- 近一月: [start(m).add(-1, 'month').add(1, 'day'), end(m)],
1981
- 下月: [start(m).add(1, 'month').startOf('month'), end(m).add(1, 'month').endOf('month')],
1982
- 近一年: [start(m).add(-1, 'year').add(1, 'day'), end(m)],
1983
- 年初至今: [start(m).startOf('year'), end(m)]
1984
- };
1985
- }
1986
- function presets_date() {
1987
- return [{
1988
- label: '一月前',
1989
- value: start().add(-1, 'month')
1990
- }, {
1991
- label: '一周前',
1992
- value: start().add(-1, 'week')
1993
- }, {
1994
- label: '一天前',
1995
- value: start().add(-1, 'day')
1996
- }, {
1997
- label: '一天后',
1998
- value: start().add(1, 'day')
1999
- }, {
2000
- label: '两天后',
2001
- value: start().add(2, 'day')
2002
- }, {
2003
- label: '三天后',
2004
- value: start().add(3, 'day')
2005
- }, {
2006
- label: '一周后',
2007
- value: start().add(1, 'week')
2008
- }, {
2009
- label: '两周后',
2010
- value: start().add(2, 'week')
2011
- }, {
2012
- label: '一月后',
2013
- value: start().add(1, 'month')
2014
- }, {
2015
- label: '两月后',
2016
- value: start().add(2, 'month')
2017
- }, {
2018
- label: '半年后',
2019
- value: start().add(6, 'month')
2020
- }];
2021
- }
2022
- function isMoment(m) {
2023
- return isFunction(m.format);
2024
- }
2025
- /**
2026
- * 获取若干天后的日期
2027
- */
2028
- function getFutureDate(num) {
2029
- return dayjs__default["default"]().add(num, 'days').format('YYYY-MM-DD');
2030
- }
2031
- function dayjs_quarter(input, which_quarter) {
2032
- if (typeof which_quarter !== 'undefined') {
2033
- // 设置季度:调整月份至目标季度的第一个月,并保持其他部分不变
2034
- var targetMonth = (which_quarter - 1) * 3;
2035
- var adjustedDate = input.month(targetMonth);
2036
- return [adjustedDate, which_quarter];
2037
- } else {
2038
- // 获取当前季度:根据月份计算季度(1-4)
2039
- var currentMonth = input.month(); // 0-11
2040
- var currentQuarter = Math.floor(currentMonth / 3) + 1;
2041
- return [input, currentQuarter];
2042
- }
2043
- }
2044
- function diff_between(a, b, unit) {
2045
- var _float = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
2046
- return dayjs__default["default"](a).diff(dayjs__default["default"](b), unit, _float);
2047
- }
2048
2061
  var colorMap = {
2049
2062
  'log': '#1475b2',
2050
2063
  'warn': '#f89c1e',
@@ -2738,6 +2751,7 @@ exports.counting = counting;
2738
2751
  exports.create_load_src = create_load_src;
2739
2752
  exports.crush = crush;
2740
2753
  exports.dash = dash;
2754
+ exports.dayOf = dayOf;
2741
2755
  exports.dayjs_quarter = dayjs_quarter;
2742
2756
  exports.debounce = debounce;
2743
2757
  exports.defer = defer;
@@ -38,4 +38,5 @@ export declare function isMoment(m: any): boolean;
38
38
  export declare function getFutureDate(num: number): any;
39
39
  export declare function dayjs_quarter(input: Dayjs, which_quarter?: number): [Dayjs, number];
40
40
  export declare function diff_between(a: ConfigType, b: ConfigType, unit: QUnitType | OpUnitType, float?: boolean): number;
41
+ export declare function dayOf(unit: OpUnitType): number;
41
42
  export { dayjs };
@@ -37,8 +37,8 @@ export declare function speculate_on_display(value?: any): string;
37
37
  export declare function getFuckTimeInterval(star_hour?: number, end_hour?: number, min_interval?: 1 | 2 | 3 | 4 | 5 | 6 | 10 | 15 | 20 | 30): string[];
38
38
  export declare function random_word(): string[];
39
39
  export declare function confirm_operation(): boolean;
40
- export declare function simple_encrypt(data: AnyObject | any[]): number[] | null;
41
- export declare function simple_decrypt(code: number[]): AnyObject | null;
40
+ export declare function simple_encrypt(data: AnyObject | any[], old?: boolean): number[] | null;
41
+ export declare function simple_decrypt(code: number[], old?: boolean): AnyObject | null;
42
42
  export declare function simple_encrypt_str(data: string, sp?: string): string | null;
43
43
  export declare function simple_decrypt_str(code: string, sp?: string): string | null;
44
44
  export declare function text_ellipsis(text: string, max: number): string;
package/dist/typing.d.ts CHANGED
@@ -757,8 +757,8 @@ declare function speculate_on_display(value?: any): string;
757
757
  declare function getFuckTimeInterval(star_hour?: number, end_hour?: number, min_interval?: 1 | 2 | 3 | 4 | 5 | 6 | 10 | 15 | 20 | 30): string[];
758
758
  declare function random_word(): string[];
759
759
  declare function confirm_operation(): boolean;
760
- declare function simple_encrypt(data: AnyObject | any[]): number[] | null;
761
- declare function simple_decrypt(code: number[]): AnyObject | null;
760
+ declare function simple_encrypt(data: AnyObject | any[], old?: boolean): number[] | null;
761
+ declare function simple_decrypt(code: number[], old?: boolean): AnyObject | null;
762
762
  declare function simple_encrypt_str(data: string, sp?: string): string | null;
763
763
  declare function simple_decrypt_str(code: string, sp?: string): string | null;
764
764
  declare function text_ellipsis(text: string, max: number): string;
@@ -865,6 +865,7 @@ declare function isMoment(m: any): boolean;
865
865
  declare function getFutureDate(num: number): any;
866
866
  declare function dayjs_quarter(input: Dayjs, which_quarter?: number): [Dayjs, number];
867
867
  declare function diff_between(a: ConfigType, b: ConfigType, unit: QUnitType | OpUnitType, float?: boolean): number;
868
+ declare function dayOf(unit: OpUnitType): number;
868
869
 
869
870
  interface ISpectialOption {
870
871
  sp?: ICommonOption[];
@@ -938,5 +939,5 @@ declare function create_load_src(): (items: TMixOpt | TMixOpt[], node?: HTMLHead
938
939
  declare function load_src(items: TMixOpt, node?: HTMLHeadElement): Promise<Element>;
939
940
  declare function load_src(items: TMixOpt[], node?: HTMLHeadElement): Promise<Element[]>;
940
941
 
941
- export { ARG_URS1_KEY, ARG_URS2_KEY, AggregateError, EMPTY_PLACEHOLDER, EventEmitter, MyLog, ROMAN_NUMERALS, TOKEN_KEY, all, alphabetical, assign, base64ToBinary, base64_to_image, boil, cache_fetch, calc_number, callable, camel, capitalize, chain, charToUTF8, charToUnicode, clone, cloneDeep, cluster, compose, confirm_operation, construct, copyText, counting, create_load_src, crush, dash, dayjs_quarter, debounce, defer, diff, diff_between, downloadFile, draw, dyn_cb, expect_array, filter_obj_to_url_search, first, flat, fork, formatDate, formatDateTime, formatDateTimeNoSecond, formatTime, gen_encoded_char_svg, get, getDictionaries, getDictionariesEnumerations, getDictionaryLabel, getDictionaryValue, getDualModeOptions, getFilledArray, getFuckTimeInterval, getFutureDate, getMomentObj, getMomentRange, getOptionLabel, getOptionValue, getPresetOptions, getSameOptions, getSearchParamsAll, getSearchParamsValue, getSimpleOptions, get_global, group, guard, hasOwn, identity, image_to_base64, inRange, intersects, invert, isArray, isBoolean, isDate, isEmpty, isEqual, isFloat, isFunction, isInt, isMoment, isNil, isNull, isNumber, isObject, isObjectLike, isPrimitive, isPromise, isString, isSymbol, iterate, keys, last, list, listify, load_src, lowerize, map, mapEntries, mapKeys, mapValues, max, memo, merge, merge_dict, merge_preset_options, min, noop, numberLikeCompare, objectify, omit, optionKey不详, optionKey其他, optionKey否, parallel, partial, partob, pascal, pick, presets_date, proxied, random, randomHex, random_word, range, reduce, replace, replaceOrAppend, retry, safeExec, safeGetFromFuncOrData, safe_async_call, safe_json_parse, safe_json_parse_arr, safe_json_stringify, safe_number_parse, scrollIntoView, select, series, set, setSearchParamsAll, setSearchParamsValue, shake, shift, shuffle, sift, simple_decrypt, simple_decrypt_str, simple_encrypt, simple_encrypt_str, size, sleep, snake, sort, speculate_on_display, sum, template, text_ellipsis, throttle, title, toFloat, toInt, toString, toggle, trim, tryit as try, tryit, uid, unicodeToChar, unicode_to_UTF8, unique, upperize, uuid, warpBase64Type, zip, zipToObject };
942
+ export { ARG_URS1_KEY, ARG_URS2_KEY, AggregateError, EMPTY_PLACEHOLDER, EventEmitter, MyLog, ROMAN_NUMERALS, TOKEN_KEY, all, alphabetical, assign, base64ToBinary, base64_to_image, boil, cache_fetch, calc_number, callable, camel, capitalize, chain, charToUTF8, charToUnicode, clone, cloneDeep, cluster, compose, confirm_operation, construct, copyText, counting, create_load_src, crush, dash, dayOf, dayjs_quarter, debounce, defer, diff, diff_between, downloadFile, draw, dyn_cb, expect_array, filter_obj_to_url_search, first, flat, fork, formatDate, formatDateTime, formatDateTimeNoSecond, formatTime, gen_encoded_char_svg, get, getDictionaries, getDictionariesEnumerations, getDictionaryLabel, getDictionaryValue, getDualModeOptions, getFilledArray, getFuckTimeInterval, getFutureDate, getMomentObj, getMomentRange, getOptionLabel, getOptionValue, getPresetOptions, getSameOptions, getSearchParamsAll, getSearchParamsValue, getSimpleOptions, get_global, group, guard, hasOwn, identity, image_to_base64, inRange, intersects, invert, isArray, isBoolean, isDate, isEmpty, isEqual, isFloat, isFunction, isInt, isMoment, isNil, isNull, isNumber, isObject, isObjectLike, isPrimitive, isPromise, isString, isSymbol, iterate, keys, last, list, listify, load_src, lowerize, map, mapEntries, mapKeys, mapValues, max, memo, merge, merge_dict, merge_preset_options, min, noop, numberLikeCompare, objectify, omit, optionKey不详, optionKey其他, optionKey否, parallel, partial, partob, pascal, pick, presets_date, proxied, random, randomHex, random_word, range, reduce, replace, replaceOrAppend, retry, safeExec, safeGetFromFuncOrData, safe_async_call, safe_json_parse, safe_json_parse_arr, safe_json_stringify, safe_number_parse, scrollIntoView, select, series, set, setSearchParamsAll, setSearchParamsValue, shake, shift, shuffle, sift, simple_decrypt, simple_decrypt_str, simple_encrypt, simple_encrypt_str, size, sleep, snake, sort, speculate_on_display, sum, template, text_ellipsis, throttle, title, toFloat, toInt, toString, toggle, trim, tryit as try, tryit, uid, unicodeToChar, unicode_to_UTF8, unique, upperize, uuid, warpBase64Type, zip, zipToObject };
942
943
  export type { AnyObject, Dayjs, DayjsConfigType, ICommonOption, PartialAll, PartialSome, PropertyKey$1 as PropertyKey, TCommonFileType };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noah-libjs/utils",
3
- "version": "0.0.48",
3
+ "version": "0.0.49",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -34,5 +34,5 @@
34
34
  "keywords": [],
35
35
  "author": "",
36
36
  "license": "MIT",
37
- "gitHead": "80105ac49ea56c9ca7abd6a478940cc2d1644853"
37
+ "gitHead": "79e2242954102e2d87978912eff9ab8d7cbd1b7d"
38
38
  }