@jnrs/shared 1.0.14 → 1.0.16

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/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # @jnrs/shared
2
+
3
+ ## 目录
4
+ - [@jnrs/shared](#jnrsshared)
5
+ - [目录](#目录)
6
+ - [介绍](#介绍)
7
+ - [软件架构](#软件架构)
8
+ - [安装教程](#安装教程)
9
+ - [使用示例](#使用示例)
10
+ - [API](#api)
11
+ - [@jnrs/core 模块](#jnrscore-模块)
12
+ - [@jnrs/core/lodash 模块](#jnrscorelodash-模块)
13
+ - [@jnrs/core/uuid 模块](#jnrscoreuuid-模块)
14
+
15
+ #### 介绍
16
+ 巨能前端基建通用包
17
+
18
+ #### 软件架构
19
+ jnrs-monorepo-frontend
20
+
21
+ #### 安装教程
22
+ ```shell
23
+ pnpm add @jnrs/shared
24
+ ```
25
+
26
+ #### 使用示例
27
+ ```typescript
28
+ import { Fullscreen } from '@jnrs/shared'
29
+ import { debounce } from '@jnrs/shared/lodash'
30
+ import { uuidv4 } from '@jnrs/shared/uuid'
31
+ ```
32
+
33
+ ## API
34
+
35
+ #### @jnrs/core 模块
36
+ - 类
37
+ - Fullscreen
38
+ - 函数
39
+ - setDefaultLocale
40
+ - formatDateTime
41
+ - formatWeekday
42
+ #### @jnrs/core/lodash 模块
43
+ #### @jnrs/core/uuid 模块
44
+
package/dist/index.cjs ADDED
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var date = require('./utils/date.cjs');
4
+ var fullscreen = require('./utils/fullscreen.cjs');
5
+
6
+
7
+
8
+ exports.formatDateTime = date.formatDateTime;
9
+ exports.formatWeekday = date.formatWeekday;
10
+ exports.setDefaultLocale = date.setDefaultLocale;
11
+ exports.Fullscreen = fullscreen.Fullscreen;
12
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './utils/date';
2
- export * from './utils/fullscreen';
1
+ export { formatDateTime, formatWeekday, setDefaultLocale } from './utils/date.js';
2
+ export { Fullscreen } from './utils/fullscreen.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export * from './utils/date';
2
- export * from './utils/fullscreen';
1
+ export { formatDateTime, formatWeekday, setDefaultLocale } from './utils/date.js';
2
+ export { Fullscreen } from './utils/fullscreen.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var lodashEs = require('lodash-es');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "debounce", {
8
+ enumerable: true,
9
+ get: function () { return lodashEs.debounce; }
10
+ });
11
+ Object.defineProperty(exports, "get", {
12
+ enumerable: true,
13
+ get: function () { return lodashEs.get; }
14
+ });
15
+ Object.defineProperty(exports, "has", {
16
+ enumerable: true,
17
+ get: function () { return lodashEs.has; }
18
+ });
19
+ Object.defineProperty(exports, "isEmpty", {
20
+ enumerable: true,
21
+ get: function () { return lodashEs.isEmpty; }
22
+ });
23
+ Object.defineProperty(exports, "isNil", {
24
+ enumerable: true,
25
+ get: function () { return lodashEs.isNil; }
26
+ });
27
+ Object.defineProperty(exports, "noop", {
28
+ enumerable: true,
29
+ get: function () { return lodashEs.noop; }
30
+ });
31
+ Object.defineProperty(exports, "omit", {
32
+ enumerable: true,
33
+ get: function () { return lodashEs.omit; }
34
+ });
35
+ Object.defineProperty(exports, "once", {
36
+ enumerable: true,
37
+ get: function () { return lodashEs.once; }
38
+ });
39
+ Object.defineProperty(exports, "pick", {
40
+ enumerable: true,
41
+ get: function () { return lodashEs.pick; }
42
+ });
43
+ Object.defineProperty(exports, "set", {
44
+ enumerable: true,
45
+ get: function () { return lodashEs.set; }
46
+ });
47
+ Object.defineProperty(exports, "throttle", {
48
+ enumerable: true,
49
+ get: function () { return lodashEs.throttle; }
50
+ });
51
+ //# sourceMappingURL=lodash.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lodash.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/lodash.d.ts CHANGED
@@ -1,4 +1 @@
1
- export { debounce, throttle, once } from 'lodash-es';
2
- export { get, set, has } from 'lodash-es';
3
- export { omit, pick, isEmpty } from 'lodash-es';
4
- export { isNil, noop } from 'lodash-es';
1
+ export { debounce, get, has, isEmpty, isNil, noop, omit, once, pick, set, throttle } from 'lodash-es';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lodash.d.ts","sourceRoot":"","sources":["../src/lodash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGpD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAGzC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAG/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
package/dist/lodash.js CHANGED
@@ -1,8 +1,2 @@
1
- // 函数控制
2
- export { debounce, throttle, once } from 'lodash-es';
3
- // 安全属性访问
4
- export { get, set, has } from 'lodash-es';
5
- // 对象操作
6
- export { omit, pick, isEmpty } from 'lodash-es';
7
- // 工具判断
8
- export { isNil, noop } from 'lodash-es';
1
+ export { debounce, get, has, isEmpty, isNil, noop, omit, once, pick, set, throttle } from 'lodash-es';
2
+ //# sourceMappingURL=lodash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lodash.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ var dateFns = require('date-fns');
4
+ var locale = require('date-fns/locale');
5
+
6
+ /**
7
+ * @Author : TanRui
8
+ * @WeChat : Tan578853789
9
+ * @File : date.ts
10
+ * @Date : 2025/09/30
11
+ * @Desc. : 日期格式化
12
+ */
13
+ const localeMap = {
14
+ 'zh-CN': locale.zhCN,
15
+ 'en-US': locale.enUS,
16
+ 'es-ES': locale.es,
17
+ 'fr-FR': locale.fr,
18
+ 'ja-JP': locale.ja,
19
+ 'ko-KR': locale.ko,
20
+ 'ru-RU': locale.ru,
21
+ 'de-DE': locale.de
22
+ };
23
+ let defaultLocale = getLocale('zh-CN');
24
+ /**
25
+ * 设置全局默认语言
26
+ * @param locale - 支持的语言字符串,如 'zh-CN', 'en-US', 'es-ES', 'fr-FR', 'ja-JP', 'ko-KR', 'ru-RU'
27
+ */
28
+ function setDefaultLocale(locale) {
29
+ if (!localeMap[locale]) {
30
+ throw new Error(`talia-utils/date 不支持语言: ${locale}. 支持的语言包括: ${Object.keys(localeMap).join(', ')}`);
31
+ }
32
+ defaultLocale = getLocale(locale);
33
+ }
34
+ function getLocale(locale) {
35
+ return localeMap[locale];
36
+ }
37
+ /**
38
+ * 格式化日期为 "YYYY-MM-DD HH:mm:ss"
39
+ * @param date - 可选,传入 Date 对象或时间戳;不传则使用当前时间
40
+ * @param locale - 可选,传入 Locale 对象(如 `zhCN`, `enUS`),用于本地化
41
+ * @returns 格式化后的字符串,例如 "1994-11-27 08:00:00"
42
+ */
43
+ function formatDateTime(date, locale) {
44
+ const targetDate = date ? new Date(date) : new Date();
45
+ return dateFns.format(targetDate, 'yyyy-MM-dd HH:mm:ss', {
46
+ locale: locale ? getLocale(locale) : defaultLocale
47
+ });
48
+ }
49
+ /**
50
+ * 获取星期几的完整名称(如 "Monday" 或 "星期一")
51
+ * @param date - 可选,传入 Date 对象或时间戳;不传则使用当前时间
52
+ * @param locale - 可选,传入 Locale 对象(如 `zhCN`, `enUS`),用于本地化
53
+ * @returns 星期几的字符串,例如 "Thursday"(英文)或 "星期四"(中文)
54
+ *
55
+ */
56
+ function formatWeekday(date = new Date(), locale) {
57
+ return dateFns.format(date, 'EEEE', { locale: locale ? getLocale(locale) : defaultLocale });
58
+ }
59
+
60
+ exports.formatDateTime = formatDateTime;
61
+ exports.formatWeekday = formatWeekday;
62
+ exports.setDefaultLocale = setDefaultLocale;
63
+ //# sourceMappingURL=date.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.cjs","sources":["../../src/utils/date.ts"],"sourcesContent":[null],"names":["zhCN","enUS","es","fr","ja","ko","ru","de","format"],"mappings":";;;;;AAAA;;;;;;AAMG;AAKH,MAAM,SAAS,GAAG;AAChB,IAAA,OAAO,EAAEA,WAAI;AACb,IAAA,OAAO,EAAEC,WAAI;AACb,IAAA,OAAO,EAAEC,SAAE;AACX,IAAA,OAAO,EAAEC,SAAE;AACX,IAAA,OAAO,EAAEC,SAAE;AACX,IAAA,OAAO,EAAEC,SAAE;AACX,IAAA,OAAO,EAAEC,SAAE;AACX,IAAA,OAAO,EAAEC;CACD;AAIV,IAAI,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC;AAEtC;;;AAGG;AACH,SAAS,gBAAgB,CAAC,MAAuB,EAAA;AAC/C,IAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AACtB,QAAA,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAA,WAAA,EAAc,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACnF;IACH;AACA,IAAA,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;AACnC;AAEA,SAAS,SAAS,CAAC,MAAuB,EAAA;AACxC,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B;AAEA;;;;;AAKG;AACH,SAAS,cAAc,CAAC,IAAoB,EAAE,MAAwB,EAAA;AACpE,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;AACrD,IAAA,OAAOC,cAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE;AAC/C,QAAA,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG;AACtC,KAAA,CAAC;AACJ;AAEA;;;;;;AAMG;AACH,SAAS,aAAa,CAAC,IAAA,GAAsB,IAAI,IAAI,EAAE,EAAE,MAAwB,EAAA;IAC/E,OAAOA,cAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;AACrF;;;;;;"}
@@ -1,3 +1,5 @@
1
+ import * as date_fns from 'date-fns';
2
+
1
3
  /**
2
4
  * @Author : TanRui
3
5
  * @WeChat : Tan578853789
@@ -6,28 +8,28 @@
6
8
  * @Desc. : 日期格式化
7
9
  */
8
10
  declare const localeMap: {
9
- readonly 'zh-CN': import("date-fns").Locale;
10
- readonly 'en-US': import("date-fns").Locale;
11
- readonly 'es-ES': import("date-fns").Locale;
12
- readonly 'fr-FR': import("date-fns").Locale;
13
- readonly 'ja-JP': import("date-fns").Locale;
14
- readonly 'ko-KR': import("date-fns").Locale;
15
- readonly 'ru-RU': import("date-fns").Locale;
16
- readonly 'de-DE': import("date-fns").Locale;
11
+ readonly 'zh-CN': date_fns.Locale;
12
+ readonly 'en-US': date_fns.Locale;
13
+ readonly 'es-ES': date_fns.Locale;
14
+ readonly 'fr-FR': date_fns.Locale;
15
+ readonly 'ja-JP': date_fns.Locale;
16
+ readonly 'ko-KR': date_fns.Locale;
17
+ readonly 'ru-RU': date_fns.Locale;
18
+ readonly 'de-DE': date_fns.Locale;
17
19
  };
18
20
  type SupportedLocale = keyof typeof localeMap;
19
21
  /**
20
22
  * 设置全局默认语言
21
23
  * @param locale - 支持的语言字符串,如 'zh-CN', 'en-US', 'es-ES', 'fr-FR', 'ja-JP', 'ko-KR', 'ru-RU'
22
24
  */
23
- export declare function setDefaultLocale(locale: SupportedLocale): void;
25
+ declare function setDefaultLocale(locale: SupportedLocale): void;
24
26
  /**
25
27
  * 格式化日期为 "YYYY-MM-DD HH:mm:ss"
26
28
  * @param date - 可选,传入 Date 对象或时间戳;不传则使用当前时间
27
29
  * @param locale - 可选,传入 Locale 对象(如 `zhCN`, `enUS`),用于本地化
28
30
  * @returns 格式化后的字符串,例如 "1994-11-27 08:00:00"
29
31
  */
30
- export declare function formatDateTime(date?: Date | number, locale?: SupportedLocale): string;
32
+ declare function formatDateTime(date?: Date | number, locale?: SupportedLocale): string;
31
33
  /**
32
34
  * 获取星期几的完整名称(如 "Monday" 或 "星期一")
33
35
  * @param date - 可选,传入 Date 对象或时间戳;不传则使用当前时间
@@ -35,10 +37,6 @@ export declare function formatDateTime(date?: Date | number, locale?: SupportedL
35
37
  * @returns 星期几的字符串,例如 "Thursday"(英文)或 "星期四"(中文)
36
38
  *
37
39
  */
38
- export declare function formatWeekday(date?: Date | number, locale?: SupportedLocale): string;
39
- declare const _default: {
40
- setDefaultLocale: typeof setDefaultLocale;
41
- formatDateTime: typeof formatDateTime;
42
- formatWeekday: typeof formatWeekday;
43
- };
44
- export default _default;
40
+ declare function formatWeekday(date?: Date | number, locale?: SupportedLocale): string;
41
+
42
+ export { formatDateTime, formatWeekday, setDefaultLocale };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,QAAA,MAAM,SAAS;;;;;;;;;CASL,CAAA;AAEV,KAAK,eAAe,GAAG,MAAM,OAAO,SAAS,CAAA;AAI7C;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,MAAM,EAAE,eAAe,QAOhD;AAMD;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CAK9E;AAED;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,IAAI,GAAE,IAAI,GAAG,MAAmB,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CAEzF;AAED,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAA"}
@@ -1,3 +1,6 @@
1
+ import { format } from 'date-fns';
2
+ import { de, ru, ko, ja, fr, es, enUS, zhCN } from 'date-fns/locale';
3
+
1
4
  /**
2
5
  * @Author : TanRui
3
6
  * @WeChat : Tan578853789
@@ -5,8 +8,6 @@
5
8
  * @Date : 2025/09/30
6
9
  * @Desc. : 日期格式化
7
10
  */
8
- import { format } from 'date-fns';
9
- import { zhCN, enUS, es, fr, ja, ko, ru, de } from 'date-fns/locale';
10
11
  const localeMap = {
11
12
  'zh-CN': zhCN,
12
13
  'en-US': enUS,
@@ -22,7 +23,7 @@ let defaultLocale = getLocale('zh-CN');
22
23
  * 设置全局默认语言
23
24
  * @param locale - 支持的语言字符串,如 'zh-CN', 'en-US', 'es-ES', 'fr-FR', 'ja-JP', 'ko-KR', 'ru-RU'
24
25
  */
25
- export function setDefaultLocale(locale) {
26
+ function setDefaultLocale(locale) {
26
27
  if (!localeMap[locale]) {
27
28
  throw new Error(`talia-utils/date 不支持语言: ${locale}. 支持的语言包括: ${Object.keys(localeMap).join(', ')}`);
28
29
  }
@@ -37,7 +38,7 @@ function getLocale(locale) {
37
38
  * @param locale - 可选,传入 Locale 对象(如 `zhCN`, `enUS`),用于本地化
38
39
  * @returns 格式化后的字符串,例如 "1994-11-27 08:00:00"
39
40
  */
40
- export function formatDateTime(date, locale) {
41
+ function formatDateTime(date, locale) {
41
42
  const targetDate = date ? new Date(date) : new Date();
42
43
  return format(targetDate, 'yyyy-MM-dd HH:mm:ss', {
43
44
  locale: locale ? getLocale(locale) : defaultLocale
@@ -50,11 +51,9 @@ export function formatDateTime(date, locale) {
50
51
  * @returns 星期几的字符串,例如 "Thursday"(英文)或 "星期四"(中文)
51
52
  *
52
53
  */
53
- export function formatWeekday(date = new Date(), locale) {
54
+ function formatWeekday(date = new Date(), locale) {
54
55
  return format(date, 'EEEE', { locale: locale ? getLocale(locale) : defaultLocale });
55
56
  }
56
- export default {
57
- setDefaultLocale,
58
- formatDateTime,
59
- formatWeekday
60
- };
57
+
58
+ export { formatDateTime, formatWeekday, setDefaultLocale };
59
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sources":["../../src/utils/date.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;;;;;;AAMG;AAKH,MAAM,SAAS,GAAG;AAChB,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,OAAO,EAAE;CACD;AAIV,IAAI,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC;AAEtC;;;AAGG;AACH,SAAS,gBAAgB,CAAC,MAAuB,EAAA;AAC/C,IAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AACtB,QAAA,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAA,WAAA,EAAc,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACnF;IACH;AACA,IAAA,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;AACnC;AAEA,SAAS,SAAS,CAAC,MAAuB,EAAA;AACxC,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B;AAEA;;;;;AAKG;AACH,SAAS,cAAc,CAAC,IAAoB,EAAE,MAAwB,EAAA;AACpE,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;AACrD,IAAA,OAAO,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE;AAC/C,QAAA,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG;AACtC,KAAA,CAAC;AACJ;AAEA;;;;;;AAMG;AACH,SAAS,aAAa,CAAC,IAAA,GAAsB,IAAI,IAAI,EAAE,EAAE,MAAwB,EAAA;IAC/E,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;AACrF;;;;"}
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @Author : TanRui
5
+ * @WeChat : Tan578853789
6
+ * @File : fullscreen.ts
7
+ * @Date : 2025/10/09
8
+ * @Desc. : 全屏功能类封装(支持默认全屏整个页面)
9
+ */
10
+ class Fullscreen {
11
+ // 默认全屏元素,可配置
12
+ defaultElement;
13
+ constructor(defaultElement) {
14
+ // 如果未传入,默认为 document.documentElement(即 <html>)
15
+ this.defaultElement = defaultElement || document.documentElement;
16
+ }
17
+ /**
18
+ * 进入全屏
19
+ * @param element 可选,指定要全屏的元素
20
+ */
21
+ async request(element) {
22
+ const target = element || this.defaultElement;
23
+ try {
24
+ await target.requestFullscreen({
25
+ navigationUI: 'hide'
26
+ });
27
+ }
28
+ catch (error) {
29
+ console.error('进入全屏失败:', error);
30
+ }
31
+ }
32
+ /**
33
+ * 退出全屏
34
+ */
35
+ async exit() {
36
+ if (document.fullscreenElement) {
37
+ try {
38
+ await document.exitFullscreen();
39
+ }
40
+ catch (error) {
41
+ console.error('退出全屏失败:', error);
42
+ }
43
+ }
44
+ }
45
+ /**
46
+ * 切换全屏状态
47
+ * @param element 可选,指定要切换全屏的元素
48
+ */
49
+ async toggle(element) {
50
+ if (document.fullscreenElement) {
51
+ await this.exit();
52
+ }
53
+ else {
54
+ await this.request(element);
55
+ }
56
+ }
57
+ /**
58
+ * 判断当前是否处于全屏状态
59
+ * @returns boolean
60
+ */
61
+ isFullscreen() {
62
+ return !!document.fullscreenElement;
63
+ }
64
+ /**
65
+ * 设置默认全屏元素
66
+ * @param element 新的默认元素
67
+ */
68
+ setDefaultElement(element) {
69
+ this.defaultElement = element;
70
+ }
71
+ /**
72
+ * 获取当前全屏的元素(如果存在)
73
+ * @returns HTMLElement | null
74
+ */
75
+ getFullscreenElement() {
76
+ return document.fullscreenElement;
77
+ }
78
+ }
79
+
80
+ exports.Fullscreen = Fullscreen;
81
+ //# sourceMappingURL=fullscreen.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fullscreen.cjs","sources":["../../src/utils/fullscreen.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;AAMG;MAEU,UAAU,CAAA;;AAEb,IAAA,cAAc;AAEtB,IAAA,WAAA,CAAY,cAA4B,EAAA;;QAEtC,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,QAAQ,CAAC,eAAe;IAClE;AAEA;;;AAGG;IACH,MAAM,OAAO,CAAC,OAAqB,EAAA;AACjC,QAAA,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,cAAc;AAC7C,QAAA,IAAI;YACF,MAAM,MAAM,CAAC,iBAAiB,CAAC;AAC7B,gBAAA,YAAY,EAAE;AACf,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC;IACF;AAEA;;AAEG;AACH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AAC9B,YAAA,IAAI;AACF,gBAAA,MAAM,QAAQ,CAAC,cAAc,EAAE;YACjC;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YACjC;QACF;IACF;AAEA;;;AAGG;IACH,MAAM,MAAM,CAAC,OAAqB,EAAA;AAChC,QAAA,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,IAAI,EAAE;QACnB;aAAO;AACL,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7B;IACF;AAEA;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,iBAAiB;IACrC;AAEA;;;AAGG;AACH,IAAA,iBAAiB,CAAC,OAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO;IAC/B;AAEA;;;AAGG;IACH,oBAAoB,GAAA;QAClB,OAAO,QAAQ,CAAC,iBAAuC;IACzD;AACD;;;;"}
@@ -5,7 +5,7 @@
5
5
  * @Date : 2025/10/09
6
6
  * @Desc. : 全屏功能类封装(支持默认全屏整个页面)
7
7
  */
8
- export declare class Fullscreen {
8
+ declare class Fullscreen {
9
9
  private defaultElement;
10
10
  constructor(defaultElement?: HTMLElement);
11
11
  /**
@@ -38,3 +38,5 @@ export declare class Fullscreen {
38
38
  */
39
39
  getFullscreenElement(): HTMLElement | null;
40
40
  }
41
+
42
+ export { Fullscreen };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fullscreen.d.ts","sourceRoot":"","sources":["../../src/utils/fullscreen.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qBAAa,UAAU;IAErB,OAAO,CAAC,cAAc,CAAa;gBAEvB,cAAc,CAAC,EAAE,WAAW;IAKxC;;;OAGG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;;OAGG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;;OAGG;IACH,YAAY,IAAI,OAAO;IAIvB;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAI7C;;;OAGG;IACH,oBAAoB,IAAI,WAAW,GAAG,IAAI;CAG3C"}
@@ -5,7 +5,7 @@
5
5
  * @Date : 2025/10/09
6
6
  * @Desc. : 全屏功能类封装(支持默认全屏整个页面)
7
7
  */
8
- export class Fullscreen {
8
+ class Fullscreen {
9
9
  // 默认全屏元素,可配置
10
10
  defaultElement;
11
11
  constructor(defaultElement) {
@@ -74,3 +74,6 @@ export class Fullscreen {
74
74
  return document.fullscreenElement;
75
75
  }
76
76
  }
77
+
78
+ export { Fullscreen };
79
+ //# sourceMappingURL=fullscreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fullscreen.js","sources":["../../src/utils/fullscreen.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;AAMG;MAEU,UAAU,CAAA;;AAEb,IAAA,cAAc;AAEtB,IAAA,WAAA,CAAY,cAA4B,EAAA;;QAEtC,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,QAAQ,CAAC,eAAe;IAClE;AAEA;;;AAGG;IACH,MAAM,OAAO,CAAC,OAAqB,EAAA;AACjC,QAAA,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,cAAc;AAC7C,QAAA,IAAI;YACF,MAAM,MAAM,CAAC,iBAAiB,CAAC;AAC7B,gBAAA,YAAY,EAAE;AACf,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC;IACF;AAEA;;AAEG;AACH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AAC9B,YAAA,IAAI;AACF,gBAAA,MAAM,QAAQ,CAAC,cAAc,EAAE;YACjC;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YACjC;QACF;IACF;AAEA;;;AAGG;IACH,MAAM,MAAM,CAAC,OAAqB,EAAA;AAChC,QAAA,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,IAAI,EAAE;QACnB;aAAO;AACL,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7B;IACF;AAEA;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,iBAAiB;IACrC;AAEA;;;AAGG;AACH,IAAA,iBAAiB,CAAC,OAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO;IAC/B;AAEA;;;AAGG;IACH,oBAAoB,GAAA;QAClB,OAAO,QAAQ,CAAC,iBAAuC;IACzD;AACD;;;;"}
package/dist/uuid.cjs ADDED
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var uuid = require('uuid');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "uuidv4", {
8
+ enumerable: true,
9
+ get: function () { return uuid.v4; }
10
+ });
11
+ Object.defineProperty(exports, "uuidv5", {
12
+ enumerable: true,
13
+ get: function () { return uuid.v5; }
14
+ });
15
+ //# sourceMappingURL=uuid.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
package/dist/uuid.d.ts CHANGED
@@ -1,2 +1 @@
1
- export { v4 as uuidv4 } from 'uuid';
2
- export { v5 as uuidv5 } from 'uuid';
1
+ export { v4 as uuidv4, v5 as uuidv5 } from 'uuid';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../src/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA"}
package/dist/uuid.js CHANGED
@@ -1,2 +1,2 @@
1
- export { v4 as uuidv4 } from 'uuid';
2
- export { v5 as uuidv5 } from 'uuid';
1
+ export { v4 as uuidv4, v5 as uuidv5 } from 'uuid';
2
+ //# sourceMappingURL=uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,19 +1,18 @@
1
1
  {
2
2
  "name": "@jnrs/shared",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "As the name suggests.",
5
5
  "author": "Talia-Tan",
6
- "license": "ISC",
6
+ "license": "UNLICENSED",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
10
10
  "keywords": [
11
+ "jnrs/shared",
11
12
  "jnrs",
12
13
  "utils",
13
- "typescript",
14
- "helper"
14
+ "typescript"
15
15
  ],
16
- "type": "module",
17
16
  "main": "dist/index.js",
18
17
  "module": "dist/index.js",
19
18
  "types": "dist/index.d.ts",
@@ -25,14 +24,17 @@
25
24
  "exports": {
26
25
  ".": {
27
26
  "import": "./dist/index.js",
27
+ "require": "./dist/index.cjs",
28
28
  "types": "./dist/index.d.ts"
29
29
  },
30
30
  "./lodash": {
31
31
  "import": "./dist/lodash.js",
32
+ "require": "./dist/lodash.cjs",
32
33
  "types": "./dist/lodash.d.ts"
33
34
  },
34
35
  "./uuid": {
35
36
  "import": "./dist/uuid.js",
37
+ "require": "./dist/uuid.cjs",
36
38
  "types": "./dist/uuid.d.ts"
37
39
  }
38
40
  },
@@ -42,18 +44,24 @@
42
44
  "uuid": "^13.0.0"
43
45
  },
44
46
  "devDependencies": {
47
+ "@rollup/plugin-node-resolve": "^16.0.3",
48
+ "@rollup/plugin-typescript": "^12.3.0",
45
49
  "@types/lodash-es": "^4.17.12",
46
50
  "@vitest/coverage-v8": "^3.2.4",
47
51
  "@vitest/ui": "3.2.4",
48
52
  "rimraf": "^6.0.1",
53
+ "rollup": "^4.53.2",
54
+ "rollup-plugin-dts": "^6.2.3",
55
+ "tslib": "^2.8.1",
56
+ "tsup": "^8.5.1",
49
57
  "typescript": "^5.9.3",
50
58
  "vitest": "^3.2.4"
51
59
  },
52
60
  "scripts": {
53
61
  "test": "vitest",
54
62
  "test:ui": "vitest --ui",
55
- "dev": "tsc --watch --declaration --outDir dist",
56
- "build": "rimraf dist && tsc",
63
+ "dev": "rollup -c -w",
64
+ "build": "rimraf dist && rollup -c",
57
65
  "release": "node ./scripts/release.mjs"
58
66
  }
59
67
  }