ranui 0.1.8 → 0.1.10-alpha.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.
Files changed (176) hide show
  1. package/dist/_commonjs-dynamic-modules-DLbDWi6a.js +12 -0
  2. package/dist/arrow-down-C9jBUUt3.js +30 -0
  3. package/dist/assets/image/failImage.d.ts +2 -0
  4. package/dist/button.js +7 -0
  5. package/dist/checkbox.js +7 -0
  6. package/dist/colorpicker.js +13 -0
  7. package/dist/{colz-746223ab.js → colz-CRDozfZA.js} +1 -5
  8. package/dist/components/button/index.d.ts +38 -1
  9. package/dist/components/checkbox/index.d.ts +27 -0
  10. package/dist/components/colorpicker/index.d.ts +122 -0
  11. package/dist/components/content/index.d.ts +15 -0
  12. package/dist/components/input/index.d.ts +208 -1
  13. package/dist/components/message/index.d.ts +2 -0
  14. package/dist/components/option/index.d.ts +2 -1
  15. package/dist/components/player/index.d.ts +207 -493
  16. package/dist/components/popover/index.d.ts +39 -0
  17. package/dist/components/preview/docx.d.ts +1 -1
  18. package/dist/components/preview/index.d.ts +2 -0
  19. package/dist/components/preview/pptx/process_pptx.d.ts +1 -1
  20. package/dist/components/progress/index.d.ts +11 -5
  21. package/dist/components/radar/index.d.ts +1 -1
  22. package/dist/components/scratch/index.d.ts +23 -0
  23. package/dist/components/select/index.d.ts +18 -6
  24. package/dist/components/tab/index.d.ts +5 -0
  25. package/dist/components/tabpane/index.d.ts +5 -0
  26. package/dist/content.js +6 -0
  27. package/dist/docx-ajDUtnbM.js +3665 -0
  28. package/dist/global-DOfcrQ2N.js +4 -0
  29. package/dist/icon.js +6 -0
  30. package/dist/iconShadowless.js +6 -0
  31. package/dist/image.js +4 -0
  32. package/dist/index-0fvHQjmN.js +298 -0
  33. package/dist/{index-f6d6982d.js → index-BLepXisd.js} +101 -84
  34. package/dist/{index-b2be6bef.js → index-BOoNI-Al.js} +904 -1078
  35. package/dist/index-BPBRPxND.js +195 -0
  36. package/dist/{index-b90299ca.js → index-BpOERe9M.js} +1 -1
  37. package/dist/index-Bv6Z6rIe.js +498 -0
  38. package/dist/index-ByJ7zZdQ.js +65641 -0
  39. package/dist/{index-5975bbc0.js → index-C1x9Popy.js} +1 -1
  40. package/dist/index-CCNK5H8T.js +103 -0
  41. package/dist/{index-a1a53af6.js → index-CD09p_mF.js} +7 -31
  42. package/dist/index-CFnsLnrb.js +496 -0
  43. package/dist/{index-a43b144f.js → index-CJZp9lE4.js} +29 -50
  44. package/dist/{index-57492b9b.js → index-CSnBqUsQ.js} +48 -1
  45. package/dist/index-CWWI8SHO.js +206 -0
  46. package/dist/{index-7b8840f9.js → index-CZlEoE62.js} +220 -1010
  47. package/dist/index-CbyMC6Yz.js +59 -0
  48. package/dist/index-CiBVH-oH.js +258 -0
  49. package/dist/{index-0e7229ea.js → index-DUMmFdJ7.js} +9 -21
  50. package/dist/{index-aea75a9f.js → index-Du-Biu-I.js} +1 -1
  51. package/dist/index-EnzWG8R0.js +521 -0
  52. package/dist/index-F2RO3OU4.js +501 -0
  53. package/dist/{index-7f513a14.js → index-GavQwMDL.js} +11 -29
  54. package/dist/{index-48653b79.js → index-suip9eAw.js} +2 -2
  55. package/dist/index.d.ts +18 -14
  56. package/dist/index.js +23 -19
  57. package/dist/info-circle-fill-CFeVMdci.js +4 -0
  58. package/dist/input.js +6 -0
  59. package/dist/inputShadowless.js +6 -0
  60. package/dist/jszip.min-Ca6PjkYs.js +2674 -0
  61. package/dist/message.js +5 -0
  62. package/dist/modal.js +4 -0
  63. package/dist/{components/option/index.js → option.js} +3 -6
  64. package/dist/{pdf-bdb7818a.js → pdf-B2a6ll8f.js} +1 -1
  65. package/dist/player.js +8 -0
  66. package/dist/popover.js +6 -0
  67. package/dist/preview.js +7 -0
  68. package/dist/progress.js +7 -0
  69. package/dist/radar.js +6 -0
  70. package/dist/select.js +10 -0
  71. package/dist/selectShadowless.js +10 -0
  72. package/dist/{umd/components/image → shadowless/icon}/index.d.ts +1 -0
  73. package/dist/shadowless/input/index.d.ts +210 -0
  74. package/dist/{umd/components → shadowless}/select/index.d.ts +19 -11
  75. package/dist/shadowless/shadowless/index.js +14 -0
  76. package/dist/shadowless.d.ts +3 -0
  77. package/dist/skeleton.js +4 -0
  78. package/dist/sprite-CH2zLtZy.js +141 -0
  79. package/dist/style.css +1 -1
  80. package/dist/tab.js +6 -0
  81. package/dist/tabpane.js +4 -0
  82. package/dist/tsconfig.json +29 -0
  83. package/dist/umd/index.umd.cjs +21 -32
  84. package/dist/umd/shadowless/shadowless.umd.cjs +1 -0
  85. package/dist/umd/shadowless/style.css +1 -0
  86. package/dist/umd/style.css +1 -1
  87. package/dist/utils/color.d.ts +52 -0
  88. package/dist/utils/index.d.ts +9 -1
  89. package/dist/utils-BMBEcoPj.js +356 -0
  90. package/dist/vite.config.d.ts +1 -0
  91. package/package.json +61 -39
  92. package/readme.md +14 -14
  93. package/typings.d.ts +101 -0
  94. package/dist/components/button/index.js +0 -7
  95. package/dist/components/icon/index.js +0 -6
  96. package/dist/components/image/index.js +0 -4
  97. package/dist/components/input/index.js +0 -5
  98. package/dist/components/message/index.js +0 -4
  99. package/dist/components/modal/index.js +0 -4
  100. package/dist/components/player/index.js +0 -11
  101. package/dist/components/preview/index.js +0 -8
  102. package/dist/components/progress/index.js +0 -8
  103. package/dist/components/radar/index.js +0 -7
  104. package/dist/components/select/index.js +0 -11
  105. package/dist/components/skeleton/index.js +0 -4
  106. package/dist/components/tab/index.js +0 -7
  107. package/dist/components/tabpane/index.js +0 -4
  108. package/dist/docx-c5d02d8c.js +0 -21
  109. package/dist/index-183517e7.js +0 -265
  110. package/dist/index-4d873a42.js +0 -195
  111. package/dist/index-a216f328.js +0 -662
  112. package/dist/index-d2d69b06.js +0 -225
  113. package/dist/index-ecaed5cc.js +0 -439
  114. package/dist/info-circle-fill-90ec9aa9.js +0 -14
  115. package/dist/umd/build/config.d.ts +0 -3
  116. package/dist/umd/build/config.umd.d.ts +0 -2
  117. package/dist/umd/components/button/index.d.ts +0 -2
  118. package/dist/umd/components/form/index.d.ts +0 -2
  119. package/dist/umd/components/icon/index.d.ts +0 -2
  120. package/dist/umd/components/input/index.d.ts +0 -2
  121. package/dist/umd/components/message/index.d.ts +0 -14
  122. package/dist/umd/components/modal/index.d.ts +0 -2
  123. package/dist/umd/components/option/index.d.ts +0 -2
  124. package/dist/umd/components/player/index.d.ts +0 -524
  125. package/dist/umd/components/preview/colz.d.ts +0 -72
  126. package/dist/umd/components/preview/docx.d.ts +0 -8
  127. package/dist/umd/components/preview/excel/excel.d.ts +0 -2
  128. package/dist/umd/components/preview/excel/index.d.ts +0 -1
  129. package/dist/umd/components/preview/excel/media.d.ts +0 -37
  130. package/dist/umd/components/preview/index.d.ts +0 -6
  131. package/dist/umd/components/preview/pdf.d.ts +0 -1
  132. package/dist/umd/components/preview/pptx/index.d.ts +0 -16
  133. package/dist/umd/components/preview/pptx/process_pptx.d.ts +0 -23
  134. package/dist/umd/components/preview/pptx/t_xml.d.ts +0 -1
  135. package/dist/umd/components/preview/pptx/worker.d.ts +0 -1
  136. package/dist/umd/components/progress/index.d.ts +0 -36
  137. package/dist/umd/components/radar/index.d.ts +0 -2
  138. package/dist/umd/components/skeleton/index.d.ts +0 -2
  139. package/dist/umd/components/tab/index.d.ts +0 -403
  140. package/dist/umd/components/tabpane/index.d.ts +0 -347
  141. package/dist/umd/index.d.ts +0 -14
  142. package/dist/umd/playwright.config.d.ts +0 -9
  143. package/dist/umd/plugins/auto-import-file.d.ts +0 -0
  144. package/dist/umd/plugins/load-style.d.ts +0 -6
  145. package/dist/umd/plugins/load-svg.d.ts +0 -9
  146. package/dist/umd/tests/button.spec.d.ts +0 -1
  147. package/dist/umd/utils/image.d.ts +0 -32
  148. package/dist/umd/utils/index.d.ts +0 -64
  149. package/dist/umd/utils/math.d.ts +0 -26
  150. package/dist/umd/utils/tween.d.ts +0 -21
  151. package/dist/umd/vite.config.d.ts +0 -6
  152. package/dist/vendor-f71e6f68.js +0 -92126
  153. /package/dist/{add-user-b2bed3e7.js → add-user-BN1JlY7e.js} +0 -0
  154. /package/dist/{book-b11a68eb.js → book-nTEFXU2x.js} +0 -0
  155. /package/dist/{umd/build/config.es.d.ts → build/config.sha.d.ts} +0 -0
  156. /package/dist/{check-circle-fill-dc284144.js → check-circle-fill-B_pd8ZSs.js} +0 -0
  157. /package/dist/{check-circle-74bd09c3.js → check-circle-szyAJiap.js} +0 -0
  158. /package/dist/{close-20925345.js → close-CFnkhudp.js} +0 -0
  159. /package/dist/{close-circle-720c18be.js → close-circle-CwmuN2C6.js} +0 -0
  160. /package/dist/{close-circle-fill-238a66b1.js → close-circle-fill-jSqPPw9i.js} +0 -0
  161. /package/dist/{eye-5e742329.js → eye-D_mEt17f.js} +0 -0
  162. /package/dist/{eye-close-3874f1ae.js → eye-close-BVr3NJtg.js} +0 -0
  163. /package/dist/{home-c4a05e8b.js → home-BUQ4USMk.js} +0 -0
  164. /package/dist/{index-8e1e2573.js → index-CQTJoWhb.js} +0 -0
  165. /package/dist/{info-circle-5826decc.js → info-circle-COnL5bTJ.js} +0 -0
  166. /package/dist/{loading-09ca52df.js → loading-Dcc5RApI.js} +0 -0
  167. /package/dist/{lock-1d2487c9.js → lock-Cr7BnmWN.js} +0 -0
  168. /package/dist/{message-b2bfdea7.js → message-D36_Zo2l.js} +0 -0
  169. /package/dist/{power-off-6ade5a91.js → power-off-lQRbiBak.js} +0 -0
  170. /package/dist/{preview-b291aea8.js → preview-CJbz9GjO.js} +0 -0
  171. /package/dist/{setting-1e5ccb6d.js → setting-DemlgzVC.js} +0 -0
  172. /package/dist/{team-ca6a12e1.js → team-tl4NJXPC.js} +0 -0
  173. /package/dist/{unlock-f56086fd.js → unlock-CeU74z9n.js} +0 -0
  174. /package/dist/{user-5c01e665.js → user-B-eVXwuk.js} +0 -0
  175. /package/dist/{warning-circle-035e025c.js → warning-circle-DDUgEDIv.js} +0 -0
  176. /package/dist/{warning-circle-fill-d17c37c9.js → warning-circle-fill-lODUKz0i.js} +0 -0
@@ -4,12 +4,12 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { a as addClassToElement, r as removeClassToElement } from "./index-d2d69b06.js";
8
- import { i as isDisabled, c as createCustomError } from "./index-57492b9b.js";
9
- import "./components/option/index.js";
10
- import "./index-7f513a14.js";
11
- import "./index-ecaed5cc.js";
12
- const f7170ee498e0dd32cbdcb63fba8f75cc = ':host{position:relative;display:inline-block;cursor:pointer;height:32px}:host ::slotted(r-option){display:none}:host([disabled]){cursor:not-allowed;pointer-events:all;opacity:.6}:host([type="text"])::part(selection){border:none}:host([type="text"])::part(icon){display:none}:host(:not([disabled]):hover) .select{cursor:pointer}:host(:not([disabled]):hover) .selection{border:1px solid #1890ff}:host(:not([disabled]):hover) .selection-search{cursor:pointer}:host(:not([disabled]):hover) .selection-item{cursor:pointer;color:#bfbfbf}:host(:not([disabled]):focus) .selection{border:1px solid #1890ff}:host(:not([disabled]):focus) .selection-search{cursor:pointer}:host(:not([disabled]):focus) .selection-item{cursor:pointer;color:#bfbfbf}:host .selection-search{display:none}:host([showSearch]:not([disabled])) .selection-search{cursor:text;display:block}:host([showSearch]:not([disabled])) .selection-item{cursor:pointer}:host([showSearch]:not([disabled]):focus) .selection-search{display:block;cursor:text;opacity:1}.ran-select{width:100%;height:100%;box-sizing:border-box;margin:0;padding:0;color:#000000e0;font-size:14px;line-height:1.57142857;list-style:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";position:relative;display:inline-block}.ran-select .selection{position:relative;background-color:#fff;border:1px solid #d9d9d9;transition:all .2s cubic-bezier(.645,.045,.355,1);width:100%;height:100%;padding:0 11px;box-sizing:border-box;margin:0;color:#000000e0;font-size:14px;line-height:1.57142857;list-style:none;font-family:inherit;display:flex;border-radius:6px}.ran-select .selection-search{position:absolute;top:0;left:0;height:100%;inset-inline-start:11px;inset-inline-end:11px;opacity:0;margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;cursor:not-allowed}.ran-select .selection-search::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.ran-select .selection-search::part(ran-input){border:none;padding:0;height:100%;outline:none}.ran-select .selection-search::part(ran-input):active{border:none;padding:0;height:100%;outline:none;border-color:transparent;box-shadow:none;border-right-width:0px}.ran-select .selection-item{position:absolute;top:0;left:12px;margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;height:100%;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.ran-select .selection-select{color:#00000040}.ran-select .selection .icon{display:flex;align-items:center;color:#00000040;font-style:normal;text-align:center;text-transform:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;inset-inline-start:auto;inset-inline-end:8px;height:12px;margin-top:-3px;font-size:12px;pointer-events:none}\n';
7
+ import { a as addClassToElement, r as removeClassToElement, i as isMobile, d as generateThrottle } from "./utils-BMBEcoPj.js";
8
+ import { H as HTMLElementSSR, i as isDisabled, c as createCustomError } from "./index-CSnBqUsQ.js";
9
+ import "./option.js";
10
+ import "./index-0fvHQjmN.js";
11
+ import "./index-F2RO3OU4.js";
12
+ const f7170ee498e0dd32cbdcb63fba8f75cc = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transparent}.remove-wap-active-focus:active,.remove-wap-active-focus:focus{outline:0;-webkit-tap-highlight-color:transparent}r-select{position:relative;width:120px;height:40px}:host{position:relative;display:inline-block;cursor:pointer;height:32px;outline:0;-webkit-tap-highlight-color:transparent}:host,:host(:focus),:host(:active){outline:0;-webkit-tap-highlight-color:transparent}:host ::slotted(r-option){display:none}:host([disabled]){cursor:not-allowed;pointer-events:all;opacity:.6}:host([type="text"])::part(selection){border:none}:host([type="text"])::part(icon){display:none}:host(:not([disabled]):hover) .select{cursor:pointer}:host(:not([disabled]):hover) .selection{border:1px solid #1890ff}:host(:not([disabled]):hover) .selection-search{cursor:pointer}:host(:not([disabled]):hover) .selection-item{cursor:pointer;color:#bfbfbf}:host(:not([disabled]):focus) .selection{border:1px solid #1890ff}:host(:not([disabled]):focus) .selection-search{cursor:pointer}:host(:not([disabled]):focus) .selection-item{cursor:pointer;color:#bfbfbf}:host .selection-search{display:none}:host([showSearch]:not([disabled])) .selection-search{cursor:text;display:block}:host([showSearch]:not([disabled])) .selection-item{cursor:pointer}:host([showSearch]:not([disabled]):focus) .selection-search{display:block;cursor:text;opacity:1}.ran-select{width:100%;height:100%;box-sizing:border-box;margin:0;padding:0;color:#000000e0;font-size:14px;line-height:1.57142857;list-style:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";position:relative;display:inline-block}.ran-select .selection{position:relative;background-color:#fff;border:1px solid #d9d9d9;transition:all .2s cubic-bezier(.645,.045,.355,1);width:100%;height:100%;padding:0 11px;box-sizing:border-box;margin:0;color:#000000e0;font-size:14px;line-height:1.57142857;list-style:none;font-family:inherit;display:flex;border-radius:6px}.ran-select .selection-search{position:absolute;top:0;left:0;height:100%;inset-inline-start:11px;inset-inline-end:11px;opacity:0;margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;cursor:not-allowed}.ran-select .selection-search::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.ran-select .selection-search::part(ran-input){border:none;padding:0;height:100%;outline:none}.ran-select .selection-search::part(ran-input):active{border:none;padding:0;height:100%;outline:none;border-color:transparent;box-shadow:none;border-right-width:0px}.ran-select .selection-item{position:absolute;top:0;left:12px;margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;height:100%;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.ran-select .selection-select{color:#00000040}.ran-select .selection .icon{display:flex;align-items:center;color:#00000040;font-style:normal;text-align:center;text-transform:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;inset-inline-start:auto;inset-inline-end:8px;height:12px;margin-top:-3px;font-size:12px;pointer-events:none}';
13
13
  const placementDirection = {
14
14
  bottom: {
15
15
  add: "ran-select-dropdown-down-in",
@@ -20,7 +20,8 @@ const placementDirection = {
20
20
  remove: "ran-select-dropdown-up-out"
21
21
  }
22
22
  };
23
- class Select extends HTMLElement {
23
+ const searchThrottle = generateThrottle();
24
+ class Select extends HTMLElementSSR() {
24
25
  constructor() {
25
26
  super();
26
27
  __publicField(this, "removeTimeId");
@@ -40,6 +41,7 @@ class Select extends HTMLElement {
40
41
  __publicField(this, "_activeOption");
41
42
  __publicField(this, "_text");
42
43
  __publicField(this, "_selector");
44
+ __publicField(this, "onSearch");
43
45
  /**
44
46
  * @description: 移除 select dropdown
45
47
  * @return {*}
@@ -48,17 +50,11 @@ class Select extends HTMLElement {
48
50
  if (this._selectDropDownOutTimeId)
49
51
  return;
50
52
  if (this._selectionDropdown && this._selectionDropdown.style.display !== "none") {
51
- addClassToElement(
52
- this._selectionDropdown,
53
- placementDirection[this.placement].remove
54
- );
53
+ addClassToElement(this._selectionDropdown, placementDirection[this.placement].remove);
55
54
  this._selectDropDownOutTimeId = setTimeout(() => {
56
55
  var _a;
57
56
  (_a = this._selectionDropdown) == null ? void 0 : _a.style.setProperty("display", "none");
58
- this._selectionDropdown && removeClassToElement(
59
- this._selectionDropdown,
60
- placementDirection[this.placement].remove
61
- );
57
+ this._selectionDropdown && removeClassToElement(this._selectionDropdown, placementDirection[this.placement].remove);
62
58
  clearTimeout(this._selectDropDownOutTimeId);
63
59
  this._selectDropDownOutTimeId = void 0;
64
60
  }, 300);
@@ -73,16 +69,10 @@ class Select extends HTMLElement {
73
69
  if (this._selectDropDownInTimeId)
74
70
  return;
75
71
  if (this._selectionDropdown && this._selectionDropdown.style.display !== "block") {
76
- addClassToElement(
77
- this._selectionDropdown,
78
- placementDirection[this.placement].add
79
- );
72
+ addClassToElement(this._selectionDropdown, placementDirection[this.placement].add);
80
73
  (_a = this._selectionDropdown) == null ? void 0 : _a.style.setProperty("display", "block");
81
74
  this._selectDropDownInTimeId = setTimeout(() => {
82
- this._selectionDropdown && removeClassToElement(
83
- this._selectionDropdown,
84
- placementDirection[this.placement].add
85
- );
75
+ this._selectionDropdown && removeClassToElement(this._selectionDropdown, placementDirection[this.placement].add);
86
76
  clearTimeout(this._selectDropDownInTimeId);
87
77
  this._selectDropDownInTimeId = void 0;
88
78
  }, 200);
@@ -93,35 +83,31 @@ class Select extends HTMLElement {
93
83
  return;
94
84
  const rect = this.getBoundingClientRect();
95
85
  const { top, left, bottom, width, height, x, y, right } = rect;
96
- this._selectionDropdown.style.setProperty(
97
- "-ran-x",
98
- `${x + window.scrollX}`
99
- );
100
- this._selectionDropdown.style.setProperty(
101
- "-ran-y",
102
- `${y + window.scrollY}`
103
- );
86
+ const root = document.getElementById(this.getPopupContainerId);
87
+ this._selectionDropdown.style.setProperty("--ran-x", `${top + window.scrollX}`);
88
+ this._selectionDropdown.style.setProperty("--ran-y", `${left + window.scrollY}`);
104
89
  let selectTop = bottom + window.scrollY;
105
90
  let selectLeft = left + window.scrollX;
106
91
  this._selectionDropdown.style.setProperty("width", `${width}px`);
107
- const root = document.getElementById(this.getPopupContainerId);
108
92
  if (this.placement === "top") {
109
93
  selectTop = top + window.scrollY - this._selectionDropdown.clientHeight;
110
- if (this.getPopupContainerId && root) {
94
+ }
95
+ if (this.getPopupContainerId && root) {
96
+ if (this.placement === "top") {
111
97
  selectTop = top - root.getBoundingClientRect().top - this._selectionDropdown.clientHeight;
112
- selectLeft = left - root.getBoundingClientRect().left;
98
+ } else {
99
+ selectTop = root.getBoundingClientRect().height;
113
100
  }
101
+ selectLeft = 0;
114
102
  }
115
- this._selectionDropdown.style.setProperty(
116
- "inset",
117
- `${selectTop}px auto auto ${selectLeft}px`
118
- );
103
+ this._selectionDropdown.style.setProperty("inset", `${selectTop}px auto auto ${selectLeft}px`);
119
104
  });
120
105
  /**
121
106
  * @description: 设置下拉框
122
107
  * @return {*}
123
108
  */
124
- __publicField(this, "selectMouseDown", () => {
109
+ __publicField(this, "selectMouseDown", (e) => {
110
+ e.stopPropagation();
125
111
  if (isDisabled(this))
126
112
  return;
127
113
  this.removeDropDownTimeId();
@@ -130,7 +116,8 @@ class Select extends HTMLElement {
130
116
  this.placementPosition();
131
117
  });
132
118
  __publicField(this, "removeDropDownTimeId", () => {
133
- if (this.action.includes("hover")) {
119
+ this._search.setAttribute("value", "");
120
+ if (this.trigger.includes("hover") && !isMobile()) {
134
121
  clearTimeout(this.removeTimeId);
135
122
  this.removeTimeId = void 0;
136
123
  }
@@ -146,7 +133,7 @@ class Select extends HTMLElement {
146
133
  this.removeTimeId = setTimeout(() => {
147
134
  this.removeDropDownTimeId();
148
135
  this.setSelectDropdownDisplayNone();
149
- }, 300);
136
+ }, 100);
150
137
  });
151
138
  /**
152
139
  * @description: 选中一个选项的情况
@@ -155,6 +142,7 @@ class Select extends HTMLElement {
155
142
  */
156
143
  __publicField(this, "clickOption", (e) => {
157
144
  var _a, _b;
145
+ e.stopPropagation();
158
146
  let element = e.target;
159
147
  if ((_a = element.classList) == null ? void 0 : _a.contains("ranui-select-dropdown-option-item")) {
160
148
  element = element.children[0];
@@ -169,19 +157,16 @@ class Select extends HTMLElement {
169
157
  this._text.setAttribute("title", label);
170
158
  this._search.setAttribute("placeholder", label);
171
159
  }
160
+ const rect = this.getBoundingClientRect();
161
+ const { height } = rect;
162
+ this._text.style.setProperty("line-height", `${height}px`);
172
163
  if (this._activeOption) {
173
- removeClassToElement(
174
- this._activeOption,
175
- "ranui-select-dropdown-option-active"
176
- );
164
+ removeClassToElement(this._activeOption, "ranui-select-dropdown-option-active");
177
165
  }
178
166
  setTimeout(() => {
179
167
  this._activeOption = (element == null ? void 0 : element.parentElement) || void 0;
180
168
  if (this._activeOption) {
181
- addClassToElement(
182
- this._activeOption,
183
- "ranui-select-dropdown-option-active"
184
- );
169
+ addClassToElement(this._activeOption, "ranui-select-dropdown-option-active");
185
170
  }
186
171
  }, 200);
187
172
  this.setSelectDropdownDisplayNone();
@@ -196,22 +181,20 @@ class Select extends HTMLElement {
196
181
  if (!this._selectDropdown) {
197
182
  const container = document.getElementById(this.getPopupContainerId) || document.body;
198
183
  this._selectDropdown = document.createElement("div");
184
+ this._selectDropdown.style.setProperty("-webkit-tap-highlight-color", "transparent");
185
+ this._selectDropdown.style.setProperty("outline", "0");
199
186
  this._selectDropdown.addEventListener("click", this.clickOption);
200
187
  this._selectionDropdown = document.createElement("div");
188
+ this._selectionDropdown.style.setProperty("-webkit-tap-highlight-color", "transparent");
189
+ this._selectionDropdown.style.setProperty("outline", "0");
201
190
  if (this.dropdownclass) {
202
- this._selectionDropdown.setAttribute(
203
- "class",
204
- `${this.dropdownclass} ranui-select-dropdown`
205
- );
191
+ this._selectionDropdown.setAttribute("class", `${this.dropdownclass} ranui-select-dropdown`);
206
192
  } else {
207
193
  this._selectionDropdown.setAttribute("class", "ranui-select-dropdown");
208
194
  }
209
- if (this.action.includes("hover")) {
195
+ if (this.trigger.includes("hover") && !isMobile()) {
210
196
  this._selectDropdown.addEventListener("mouseleave", this.selectBlur);
211
- this._selectDropdown.addEventListener(
212
- "mouseenter",
213
- this.removeDropDownTimeId
214
- );
197
+ this._selectDropdown.addEventListener("mouseenter", this.removeDropDownTimeId);
215
198
  }
216
199
  this._selectDropdown.appendChild(this._selectionDropdown);
217
200
  this._selectionDropdown.style.setProperty("display", "none");
@@ -253,7 +236,16 @@ class Select extends HTMLElement {
253
236
  this._optionLabelMapValue.set(label, value);
254
237
  this._optionValueMapLabel.set(value, label);
255
238
  });
256
- this._optionList.forEach((item) => {
239
+ this.createSelectDropdownContent(this._optionList);
240
+ });
241
+ __publicField(this, "createSelectDropdownContent", (options = []) => {
242
+ var _a, _b;
243
+ if (options.length === 0) {
244
+ (_a = this._selectDropdown) == null ? void 0 : _a.style.setProperty("display", "none");
245
+ } else {
246
+ (_b = this._selectDropdown) == null ? void 0 : _b.style.setProperty("display", "block");
247
+ }
248
+ options.forEach((item) => {
257
249
  if (this._selectionDropdown) {
258
250
  const { label, value } = item;
259
251
  const selectOptionItem = document.createElement("div");
@@ -265,16 +257,10 @@ class Select extends HTMLElement {
265
257
  );
266
258
  this._activeOption = selectOptionItem;
267
259
  } else {
268
- selectOptionItem.setAttribute(
269
- "class",
270
- "ranui-select-dropdown-option-item"
271
- );
260
+ selectOptionItem.setAttribute("class", "ranui-select-dropdown-option-item");
272
261
  }
273
262
  const selectOptionItemContent = document.createElement("div");
274
- selectOptionItemContent.setAttribute(
275
- "class",
276
- "ranui-select-dropdown-option-item-content"
277
- );
263
+ selectOptionItemContent.setAttribute("class", "ranui-select-dropdown-option-item-content");
278
264
  selectOptionItemContent.innerHTML = `${label}`;
279
265
  selectOptionItemContent.setAttribute("value", `${value}`);
280
266
  selectOptionItemContent.setAttribute("title", `${label}`);
@@ -299,9 +285,36 @@ class Select extends HTMLElement {
299
285
  this._text.setAttribute("title", label);
300
286
  });
301
287
  __publicField(this, "changeSearch", (e) => {
288
+ const value = e.detail.value || "";
289
+ this.dispatchEvent(
290
+ new CustomEvent("search", {
291
+ detail: { value }
292
+ })
293
+ );
294
+ if (this._selectionDropdown) {
295
+ this._selectionDropdown.innerHTML = "";
296
+ }
297
+ if (value.length > 0) {
298
+ const options = this._optionList.map((item) => {
299
+ const { label } = item;
300
+ if (`${label}`.toLowerCase().includes(value)) {
301
+ return { label, value: item.value };
302
+ }
303
+ return void 0;
304
+ }).filter((item) => item);
305
+ this.createSelectDropdownContent(options);
306
+ } else {
307
+ this.createSelectDropdownContent(this._optionList);
308
+ }
302
309
  });
303
310
  __publicField(this, "setShowSearch", () => {
304
- this._search.addEventListener("change", this.changeSearch);
311
+ this.onSearch = searchThrottle(this.changeSearch);
312
+ this.onSearch && this._search.addEventListener("change", this.onSearch);
313
+ this.onSearch && this._search.addEventListener("click", this.onSearch);
314
+ });
315
+ __publicField(this, "removeShowSearch", () => {
316
+ this.onSearch && this._search.removeEventListener("change", this.onSearch);
317
+ this.onSearch && this._search.removeEventListener("click", this.onSearch);
305
318
  });
306
319
  __publicField(this, "listenSlotChange", () => {
307
320
  this._slot.addEventListener("slotchange", this.addOptionToSlot);
@@ -312,17 +325,21 @@ class Select extends HTMLElement {
312
325
  __publicField(this, "listenActionEvent", () => {
313
326
  this.removeEventListener("mouseenter", this.selectMouseDown);
314
327
  this.removeEventListener("mouseleave", this.selectBlur);
315
- this.removeEventListener("mousedown", this.selectMouseDown);
328
+ this.removeEventListener("click", this.selectMouseDown);
316
329
  this.removeEventListener("blur", this.selectBlur);
317
- if (this.action.includes("hover")) {
330
+ if (this.trigger.includes("hover") && !isMobile()) {
318
331
  this.addEventListener("mouseenter", this.selectMouseDown);
319
332
  this.addEventListener("mouseleave", this.selectBlur);
320
333
  }
321
- if (this.action.includes("click")) {
322
- this.addEventListener("mousedown", this.selectMouseDown);
334
+ if (this.trigger.includes("click")) {
335
+ this.addEventListener("click", this.selectMouseDown);
323
336
  this.addEventListener("blur", this.selectBlur);
324
337
  }
325
338
  });
339
+ __publicField(this, "clickRemoveSelect", (e) => {
340
+ e.stopPropagation();
341
+ this.setSelectDropdownDisplayNone();
342
+ });
326
343
  this._slot = document.createElement("slot");
327
344
  this._select = document.createElement("div");
328
345
  this._select.setAttribute("class", "ran-select");
@@ -339,7 +356,7 @@ class Select extends HTMLElement {
339
356
  this._text = document.createElement("span");
340
357
  this._text.setAttribute("class", "selection-item");
341
358
  this._text.setAttribute("part", "selection-item");
342
- this._icon = document.createElement("r-icon");
359
+ this._icon = document.createElement("ra-icon");
343
360
  this._icon.setAttribute("class", "icon");
344
361
  this._icon.setAttribute("part", "icon");
345
362
  this._icon.setAttribute("name", "arrow-down");
@@ -360,7 +377,7 @@ class Select extends HTMLElement {
360
377
  F7170EE498E0DD32CBDCB63FBA8F75CC.textContent = f7170ee498e0dd32cbdcb63fba8f75cc;
361
378
  shadowRoot.appendChild(F7170EE498E0DD32CBDCB63FBA8F75CC);
362
379
  this._shadowDom = shadowRoot;
363
- shadowRoot.appendChild(this._select);
380
+ this._shadowDom.appendChild(this._select);
364
381
  }
365
382
  static get observedAttributes() {
366
383
  return [
@@ -376,8 +393,8 @@ class Select extends HTMLElement {
376
393
  // 挂载的节点
377
394
  "dropdownclass",
378
395
  // 弹窗的类名
379
- "action"
380
- // 触发下拉框的行为,click还是hover
396
+ "trigger"
397
+ // 触发下拉框的行为, click 还是 hover ,hover 在 isMobile 移动端无效
381
398
  ];
382
399
  }
383
400
  get value() {
@@ -432,11 +449,11 @@ class Select extends HTMLElement {
432
449
  set dropdownclass(value) {
433
450
  this.setAttribute("dropdownclass", value || "");
434
451
  }
435
- get action() {
436
- return this.getAttribute("action") || "click";
452
+ get trigger() {
453
+ return this.getAttribute("trigger") || "click";
437
454
  }
438
- set action(value) {
439
- this.setAttribute("action", value || "");
455
+ set trigger(value) {
456
+ this.setAttribute("trigger", value || "");
440
457
  }
441
458
  get disabled() {
442
459
  return isDisabled(this);
@@ -457,9 +474,7 @@ class Select extends HTMLElement {
457
474
  sheet.insertRule(this.sheet);
458
475
  this._shadowDom.adoptedStyleSheets = [sheet];
459
476
  } catch (error) {
460
- console.error(
461
- `Failed to parse the rule in CSSStyleSheet: ${this.sheet}`
462
- );
477
+ console.error(`Failed to parse the rule in CSSStyleSheet: ${this.sheet}`);
463
478
  }
464
479
  }
465
480
  }
@@ -469,16 +484,18 @@ class Select extends HTMLElement {
469
484
  this.listenActionEvent();
470
485
  this.listenSlotChange();
471
486
  this.setShowSearch();
487
+ document.addEventListener("click", this.clickRemoveSelect);
472
488
  }
473
489
  disconnectCallback() {
474
490
  var _a;
475
491
  this.removeEventListener("mouseenter", this.selectMouseDown);
476
492
  this.removeEventListener("mouseleave", this.selectBlur);
477
- this.removeEventListener("mousedown", this.selectMouseDown);
493
+ this.removeEventListener("click", this.selectMouseDown);
478
494
  this.removeEventListener("blur", this.selectBlur);
479
495
  this.removeSelectDropdown();
480
496
  (_a = this._selectDropdown) == null ? void 0 : _a.removeEventListener("click", this.clickOption);
481
497
  this.removeListenSlotChange();
498
+ document.removeEventListener("click", this.clickRemoveSelect);
482
499
  }
483
500
  attributeChangedCallback(name, oldValue, newValue) {
484
501
  if (name === "disabled" && this._select) {