@whitesev/pops 2.1.9 → 2.1.10

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.
@@ -141,6 +141,12 @@ declare class Pops {
141
141
  before(element: HTMLElement | Element | string, content: HTMLElement | string): void;
142
142
  after(element: HTMLElement | Element | string, content: HTMLElement | string): void;
143
143
  getKeyFrames(sheet: CSSStyleSheet): {};
144
+ calcColor(): {
145
+ hexToRgb: (str: string) => any;
146
+ rgbToHex: (r: any, g: any, b: any) => string;
147
+ getDarkColor: (color: string, level: number) => string;
148
+ getLightColor: (color: string, level: number) => string;
149
+ };
144
150
  on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T]) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): void;
145
151
  on<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], callback: (this: HTMLElement, event: T) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): void;
146
152
  on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): void;
@@ -729,6 +729,19 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
729
729
  * @returns
730
730
  */
731
731
  getKeyFrames(sheet: CSSStyleSheet): {};
732
+ /**
733
+ * 颜色转换函数
734
+ * @method hexToRgb hex 颜色转 rgb 颜色
735
+ * @method rgbToHex rgb 颜色转 Hex 颜色
736
+ * @method getDarkColor 加深颜色值
737
+ * @method getLightColor 变浅颜色值
738
+ */
739
+ calcColor(): {
740
+ hexToRgb: (str: string) => any;
741
+ rgbToHex: (r: any, g: any, b: any) => string;
742
+ getDarkColor: (color: string, level: number) => string;
743
+ getLightColor: (color: string, level: number) => string;
744
+ };
732
745
  }
733
746
  declare const popsDOMUtils: PopsDOMUtils;
734
747
  export { popsDOMUtils };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@whitesev/pops",
4
- "version": "2.1.9",
4
+ "version": "2.1.10",
5
5
  "type": "module",
6
6
  "description": "弹窗库",
7
7
  "main": "dist/index.cjs.js",
@@ -1,7 +1,10 @@
1
1
  .pops-rightClickMenu {
2
- --right-context-menu-shadow-color: #cacaca;
3
- --right-context-menu-row-visited-color: #dfdfdf;
4
- --right-context-menu-row-hover-color: #dfdfdf;
2
+ --pops-right-context-color: #000000;
3
+ --pops-right-context-bg-color: #ffffff;
4
+ --pops-right-context-z-index: 10000;
5
+ --pops-right-context-menu-shadow-color: #cacaca;
6
+ --pops-right-context-menu-row-visited-color: #dfdfdf;
7
+ --pops-right-context-menu-row-hover-color: #dfdfdf;
5
8
  }
6
9
  .pops-rightClickMenu * {
7
10
  -webkit-box-sizing: border-box;
@@ -13,13 +16,14 @@
13
16
  }
14
17
  .pops-rightClickMenu {
15
18
  position: fixed;
16
- z-index: 10000;
19
+ z-index: var(--pops-right-context-z-index);
17
20
  text-align: center;
18
21
  border-radius: 3px;
19
22
  font-size: 16px;
20
23
  font-weight: 500;
21
- background: #fff;
22
- box-shadow: 0px 1px 6px 1px var(--right-context-menu-shadow-color);
24
+ color: var(--pops-right-context-color);
25
+ background-color: var(--pops-right-context-bg-color);
26
+ box-shadow: 0px 1px 6px 1px var(--pops-right-context-menu-shadow-color);
23
27
  }
24
28
  .pops-rightClickMenu-anim-grid {
25
29
  display: grid;
@@ -30,7 +34,7 @@
30
34
  grid-template-rows: 1fr;
31
35
  }
32
36
  .pops-rightClickMenu-is-visited {
33
- background: var(--right-context-menu-row-visited-color);
37
+ background: var(--pops-right-context-menu-row-visited-color);
34
38
  }
35
39
  i.pops-rightClickMenu-icon {
36
40
  height: 1em;
@@ -50,7 +54,7 @@ i.pops-rightClickMenu-icon[is-loading="true"] {
50
54
  animation: rotating 2s linear infinite;
51
55
  }
52
56
  .pops-rightClickMenu li:hover {
53
- background: var(--right-context-menu-row-hover-color);
57
+ background: var(--pops-right-context-menu-row-hover-color);
54
58
  cursor: pointer;
55
59
  }
56
60
  .pops-rightClickMenu ul {
@@ -79,6 +83,6 @@ i.pops-rightClickMenu-icon[is-loading="true"] {
79
83
 
80
84
  @media (prefers-color-scheme: dark) {
81
85
  .pops-rightClickMenu {
82
- --right-context-menu-shadow-color: #3c3c3c;
86
+ --pops-right-context-menu-shadow-color: #3c3c3c;
83
87
  }
84
88
  }
package/src/css/index.css CHANGED
@@ -13,6 +13,7 @@
13
13
  --pops-bd-opacity: 1;
14
14
  --pops-font-size: 16px;
15
15
  interpolate-size: allow-keywords;
16
+ --pops-color: #000000;
16
17
  --pops-bg-color: rgb(255, 255, 255, var(--pops-bg-opacity));
17
18
  --pops-bd-color: rgb(235, 238, 245, var(--pops-bd-opacity));
18
19
  --pops-box-shadow-color: rgba(0, 0, 0, 0.12);
@@ -29,6 +30,7 @@
29
30
  @media (prefers-color-scheme: dark) {
30
31
  .pops {
31
32
  --pops-mask-bg-opacity: 0.8;
33
+ --pops-color: #ffffff;
32
34
  --pops-bg-color: rgb(17, 17, 17, var(--pops-bg-opacity));
33
35
  --pops-bd-color: rgb(55, 55, 55, var(--pops-bd-opacity));
34
36
  --pops-box-shadow-color: rgba(81, 81, 81, 0.12);
@@ -38,6 +40,7 @@
38
40
  }
39
41
  }
40
42
  .pops {
43
+ color: var(--pops-color);
41
44
  background-color: var(--pops-bg-color);
42
45
  border: 1px solid var(--pops-bd-color);
43
46
  border-radius: 4px;
@@ -2517,6 +2517,119 @@ class PopsDOMUtils extends PopsDOMUtilsEvent {
2517
2517
  });
2518
2518
  return result;
2519
2519
  }
2520
+ /**
2521
+ * 颜色转换函数
2522
+ * @method hexToRgb hex 颜色转 rgb 颜色
2523
+ * @method rgbToHex rgb 颜色转 Hex 颜色
2524
+ * @method getDarkColor 加深颜色值
2525
+ * @method getLightColor 变浅颜色值
2526
+ */
2527
+ calcColor() {
2528
+ function useChangeColor() {
2529
+ /**
2530
+ * hex 颜色转 rgb 颜色
2531
+ */
2532
+ const hexToRgb = (
2533
+ /**
2534
+ * hex 颜色值
2535
+ */
2536
+ str: string
2537
+ ): any => {
2538
+ let hexs: any = "";
2539
+ let reg = /^#(?:[0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/;
2540
+ if (!reg.test(str)) {
2541
+ console.warn("输入错误的hex");
2542
+ return "";
2543
+ }
2544
+ str = str.replace("#", "");
2545
+ hexs = str.match(/../g);
2546
+ for (let i = 0; i < 3; i++) hexs[i] = parseInt(hexs[i], 16);
2547
+ return hexs;
2548
+ };
2549
+
2550
+ /**
2551
+ * rgb转hex
2552
+ */
2553
+ const rgbToHex = (
2554
+ /**
2555
+ * 红色
2556
+ */
2557
+ r: any,
2558
+ /**
2559
+ * 绿色
2560
+ */
2561
+ g: any,
2562
+ /**
2563
+ * 蓝色
2564
+ */
2565
+ b: any
2566
+ ): string => {
2567
+ let reg = /^\d{1,3}$/;
2568
+ if (!reg.test(r) || !reg.test(g) || !reg.test(b)) {
2569
+ console.warn("输入错误的rgb颜色值");
2570
+ return "";
2571
+ }
2572
+ let hexs = [r.toString(16), g.toString(16), b.toString(16)];
2573
+ for (let i = 0; i < 3; i++)
2574
+ if (hexs[i].length == 1) hexs[i] = `0${hexs[i]}`;
2575
+ return `#${hexs.join("")}`;
2576
+ };
2577
+
2578
+ /**
2579
+ * 获取深色
2580
+ */
2581
+ const getDarkColor = (
2582
+ /**
2583
+ * 颜色值字符串
2584
+ */
2585
+ color: string,
2586
+ /**
2587
+ * 加深的程度,限0-1之间
2588
+ */
2589
+ level: number
2590
+ ): string => {
2591
+ let reg = /^#(?:[0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/;
2592
+ if (!reg.test(color)) {
2593
+ console.warn("输入错误的hex颜色值");
2594
+ return "";
2595
+ }
2596
+ let rgb = useChangeColor().hexToRgb(color);
2597
+ for (let i = 0; i < 3; i++) rgb[i] = Math.floor(rgb[i] * (1 - level));
2598
+ return useChangeColor().rgbToHex(rgb[0], rgb[1], rgb[2]);
2599
+ };
2600
+
2601
+ /**
2602
+ * 获取颜色变浅后的颜色值
2603
+ */
2604
+ const getLightColor = (
2605
+ /**
2606
+ * 颜色值字符串
2607
+ */
2608
+ color: string,
2609
+ /**
2610
+ * 加深的程度,限0-1之间
2611
+ */
2612
+ level: number
2613
+ ): string => {
2614
+ let reg = /^#(?:[0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/;
2615
+ if (!reg.test(color)) {
2616
+ console.warn("输入错误的hex颜色值");
2617
+ return "";
2618
+ }
2619
+ let rgb = useChangeColor().hexToRgb(color);
2620
+ for (let i = 0; i < 3; i++)
2621
+ rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i]);
2622
+ return useChangeColor().rgbToHex(rgb[0], rgb[1], rgb[2]);
2623
+ };
2624
+ return {
2625
+ hexToRgb,
2626
+ rgbToHex,
2627
+ getDarkColor,
2628
+ getLightColor,
2629
+ };
2630
+ }
2631
+ return useChangeColor();
2632
+ }
2520
2633
  }
2521
2634
 
2522
2635
  const popsDOMUtils = new PopsDOMUtils();