@falcon-ui/falcon-ui 1.0.0

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 (289) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +182 -0
  3. package/cjs/JsBarcode-BlUjuVmB.cjs +3519 -0
  4. package/cjs/JsBarcode-BlUjuVmB.cjs.map +1 -0
  5. package/cjs/chunk-D4y6LrGi.cjs +40 -0
  6. package/cjs/components/JsBarcode-BOXEZn4Q.cjs +3519 -0
  7. package/cjs/components/JsBarcode-BOXEZn4Q.cjs.map +1 -0
  8. package/cjs/components/barcode/JsBarcode-BOXEZn4Q.cjs +3519 -0
  9. package/cjs/components/barcode/JsBarcode-BOXEZn4Q.cjs.map +1 -0
  10. package/cjs/components/barcode/chunk-D4y6LrGi.cjs +40 -0
  11. package/cjs/components/barcode/index.cjs +211 -0
  12. package/cjs/components/barcode/index.cjs.map +1 -0
  13. package/cjs/components/barcode/src/JsBarcode-BOXEZn4Q.cjs +3519 -0
  14. package/cjs/components/barcode/src/JsBarcode-BOXEZn4Q.cjs.map +1 -0
  15. package/cjs/components/barcode/src/barcode.cjs +102 -0
  16. package/cjs/components/barcode/src/barcode.cjs.map +1 -0
  17. package/cjs/components/barcode/src/barcode.vue.cjs +200 -0
  18. package/cjs/components/barcode/src/barcode.vue.cjs.map +1 -0
  19. package/cjs/components/barcode/src/chunk-D4y6LrGi.cjs +40 -0
  20. package/cjs/components/button/index.cjs +135 -0
  21. package/cjs/components/button/index.cjs.map +1 -0
  22. package/cjs/components/button/src/button.cjs +16 -0
  23. package/cjs/components/button/src/button.cjs.map +1 -0
  24. package/cjs/components/button/src/button.vue.cjs +124 -0
  25. package/cjs/components/button/src/button.vue.cjs.map +1 -0
  26. package/cjs/components/chunk-D4y6LrGi.cjs +40 -0
  27. package/cjs/components/date-picker/index.cjs +164 -0
  28. package/cjs/components/date-picker/index.cjs.map +1 -0
  29. package/cjs/components/date-picker/src/date-picker.cjs +25 -0
  30. package/cjs/components/date-picker/src/date-picker.cjs.map +1 -0
  31. package/cjs/components/date-picker/src/date-picker.vue.cjs +153 -0
  32. package/cjs/components/date-picker/src/date-picker.vue.cjs.map +1 -0
  33. package/cjs/components/dialog/index.cjs +346 -0
  34. package/cjs/components/dialog/index.cjs.map +1 -0
  35. package/cjs/components/dialog/src/dialog.cjs +40 -0
  36. package/cjs/components/dialog/src/dialog.cjs.map +1 -0
  37. package/cjs/components/dialog/src/dialog.vue.cjs +343 -0
  38. package/cjs/components/dialog/src/dialog.vue.cjs.map +1 -0
  39. package/cjs/components/index.cjs +9450 -0
  40. package/cjs/components/index.cjs.map +1 -0
  41. package/cjs/components/input/index.cjs +175 -0
  42. package/cjs/components/input/index.cjs.map +1 -0
  43. package/cjs/components/input/src/input.cjs +27 -0
  44. package/cjs/components/input/src/input.cjs.map +1 -0
  45. package/cjs/components/input/src/input.vue.cjs +164 -0
  46. package/cjs/components/input/src/input.vue.cjs.map +1 -0
  47. package/cjs/components/input-number/index.cjs +374 -0
  48. package/cjs/components/input-number/index.cjs.map +1 -0
  49. package/cjs/components/input-number/src/input-number.cjs +48 -0
  50. package/cjs/components/input-number/src/input-number.cjs.map +1 -0
  51. package/cjs/components/input-number/src/input-number.vue.cjs +363 -0
  52. package/cjs/components/input-number/src/input-number.vue.cjs.map +1 -0
  53. package/cjs/components/input-search/index.cjs +286 -0
  54. package/cjs/components/input-search/index.cjs.map +1 -0
  55. package/cjs/components/input-search/src/input-search.cjs +55 -0
  56. package/cjs/components/input-search/src/input-search.cjs.map +1 -0
  57. package/cjs/components/input-search/src/input-search.vue.cjs +275 -0
  58. package/cjs/components/input-search/src/input-search.vue.cjs.map +1 -0
  59. package/cjs/components/qr-code/index.cjs +1975 -0
  60. package/cjs/components/qr-code/index.cjs.map +1 -0
  61. package/cjs/components/qr-code/src/qr-code.cjs +63 -0
  62. package/cjs/components/qr-code/src/qr-code.cjs.map +1 -0
  63. package/cjs/components/qr-code/src/qr-code.vue.cjs +1964 -0
  64. package/cjs/components/qr-code/src/qr-code.vue.cjs.map +1 -0
  65. package/cjs/components/radial-menu/index.cjs +983 -0
  66. package/cjs/components/radial-menu/index.cjs.map +1 -0
  67. package/cjs/components/radial-menu/src/radial-menu.cjs +96 -0
  68. package/cjs/components/radial-menu/src/radial-menu.cjs.map +1 -0
  69. package/cjs/components/radial-menu/src/radial-menu.vue.cjs +921 -0
  70. package/cjs/components/radial-menu/src/radial-menu.vue.cjs.map +1 -0
  71. package/cjs/components/select/index.cjs +163 -0
  72. package/cjs/components/select/index.cjs.map +1 -0
  73. package/cjs/components/select/src/select.cjs +16 -0
  74. package/cjs/components/select/src/select.cjs.map +1 -0
  75. package/cjs/components/select/src/select.vue.cjs +152 -0
  76. package/cjs/components/select/src/select.vue.cjs.map +1 -0
  77. package/cjs/components/table/index.cjs +3351 -0
  78. package/cjs/components/table/index.cjs.map +1 -0
  79. package/cjs/components/table/src/table.cjs +62 -0
  80. package/cjs/components/table/src/table.cjs.map +1 -0
  81. package/cjs/components/table/src/table.vue.cjs +3085 -0
  82. package/cjs/components/table/src/table.vue.cjs.map +1 -0
  83. package/cjs/dialog-CJU00aEV.cjs +614 -0
  84. package/cjs/dialog-CJU00aEV.cjs.map +1 -0
  85. package/cjs/dialog-DcH26KbE.cjs +2 -0
  86. package/cjs/hooks/dialog-DpYPBcKV.cjs +266 -0
  87. package/cjs/hooks/dialog-DpYPBcKV.cjs.map +1 -0
  88. package/cjs/hooks/hooks-D2Jaq5kO.cjs +328 -0
  89. package/cjs/hooks/hooks-D2Jaq5kO.cjs.map +1 -0
  90. package/cjs/hooks/index.cjs +8 -0
  91. package/cjs/icons/index.cjs +86 -0
  92. package/cjs/icons/index.cjs.map +1 -0
  93. package/cjs/index.cjs +9141 -0
  94. package/cjs/index.cjs.map +1 -0
  95. package/cjs/utils/index.cjs +69 -0
  96. package/cjs/utils/index.cjs.map +1 -0
  97. package/esm/JsBarcode-kVJER62m.js +3514 -0
  98. package/esm/JsBarcode-kVJER62m.js.map +1 -0
  99. package/esm/chunk-BuRq7rDw.js +23 -0
  100. package/esm/components/JsBarcode-CzzxrEd_.js +3514 -0
  101. package/esm/components/JsBarcode-CzzxrEd_.js.map +1 -0
  102. package/esm/components/barcode/JsBarcode-C5ux6wsb.js +3514 -0
  103. package/esm/components/barcode/JsBarcode-C5ux6wsb.js.map +1 -0
  104. package/esm/components/barcode/chunk--em_ddB3.js +23 -0
  105. package/esm/components/barcode/index.mjs +204 -0
  106. package/esm/components/barcode/index.mjs.map +1 -0
  107. package/esm/components/barcode/src/JsBarcode-C5ux6wsb.js +3514 -0
  108. package/esm/components/barcode/src/JsBarcode-C5ux6wsb.js.map +1 -0
  109. package/esm/components/barcode/src/barcode.mjs +98 -0
  110. package/esm/components/barcode/src/barcode.mjs.map +1 -0
  111. package/esm/components/barcode/src/barcode.vue.mjs +194 -0
  112. package/esm/components/barcode/src/barcode.vue.mjs.map +1 -0
  113. package/esm/components/barcode/src/chunk--em_ddB3.js +23 -0
  114. package/esm/components/button/index.mjs +126 -0
  115. package/esm/components/button/index.mjs.map +1 -0
  116. package/esm/components/button/src/button.mjs +14 -0
  117. package/esm/components/button/src/button.mjs.map +1 -0
  118. package/esm/components/button/src/button.vue.mjs +117 -0
  119. package/esm/components/button/src/button.vue.mjs.map +1 -0
  120. package/esm/components/chunk-BuRq7rDw.js +23 -0
  121. package/esm/components/date-picker/index.mjs +155 -0
  122. package/esm/components/date-picker/index.mjs.map +1 -0
  123. package/esm/components/date-picker/src/date-picker.mjs +23 -0
  124. package/esm/components/date-picker/src/date-picker.mjs.map +1 -0
  125. package/esm/components/date-picker/src/date-picker.vue.mjs +146 -0
  126. package/esm/components/date-picker/src/date-picker.vue.mjs.map +1 -0
  127. package/esm/components/dialog/index.mjs +335 -0
  128. package/esm/components/dialog/index.mjs.map +1 -0
  129. package/esm/components/dialog/src/dialog.mjs +38 -0
  130. package/esm/components/dialog/src/dialog.mjs.map +1 -0
  131. package/esm/components/dialog/src/dialog.vue.mjs +334 -0
  132. package/esm/components/dialog/src/dialog.vue.mjs.map +1 -0
  133. package/esm/components/index.mjs +9386 -0
  134. package/esm/components/index.mjs.map +1 -0
  135. package/esm/components/input/index.mjs +166 -0
  136. package/esm/components/input/index.mjs.map +1 -0
  137. package/esm/components/input/src/input.mjs +25 -0
  138. package/esm/components/input/src/input.mjs.map +1 -0
  139. package/esm/components/input/src/input.vue.mjs +157 -0
  140. package/esm/components/input/src/input.vue.mjs.map +1 -0
  141. package/esm/components/input-number/index.mjs +365 -0
  142. package/esm/components/input-number/index.mjs.map +1 -0
  143. package/esm/components/input-number/src/input-number.mjs +45 -0
  144. package/esm/components/input-number/src/input-number.mjs.map +1 -0
  145. package/esm/components/input-number/src/input-number.vue.mjs +356 -0
  146. package/esm/components/input-number/src/input-number.vue.mjs.map +1 -0
  147. package/esm/components/input-search/index.mjs +277 -0
  148. package/esm/components/input-search/index.mjs.map +1 -0
  149. package/esm/components/input-search/src/input-search.mjs +53 -0
  150. package/esm/components/input-search/src/input-search.mjs.map +1 -0
  151. package/esm/components/input-search/src/input-search.vue.mjs +268 -0
  152. package/esm/components/input-search/src/input-search.vue.mjs.map +1 -0
  153. package/esm/components/qr-code/index.mjs +1967 -0
  154. package/esm/components/qr-code/index.mjs.map +1 -0
  155. package/esm/components/qr-code/src/qr-code.mjs +59 -0
  156. package/esm/components/qr-code/src/qr-code.mjs.map +1 -0
  157. package/esm/components/qr-code/src/qr-code.vue.mjs +1958 -0
  158. package/esm/components/qr-code/src/qr-code.vue.mjs.map +1 -0
  159. package/esm/components/radial-menu/index.mjs +974 -0
  160. package/esm/components/radial-menu/index.mjs.map +1 -0
  161. package/esm/components/radial-menu/src/radial-menu.mjs +94 -0
  162. package/esm/components/radial-menu/src/radial-menu.mjs.map +1 -0
  163. package/esm/components/radial-menu/src/radial-menu.vue.mjs +916 -0
  164. package/esm/components/radial-menu/src/radial-menu.vue.mjs.map +1 -0
  165. package/esm/components/select/index.mjs +154 -0
  166. package/esm/components/select/index.mjs.map +1 -0
  167. package/esm/components/select/src/select.mjs +14 -0
  168. package/esm/components/select/src/select.mjs.map +1 -0
  169. package/esm/components/select/src/select.vue.mjs +145 -0
  170. package/esm/components/select/src/select.vue.mjs.map +1 -0
  171. package/esm/components/table/index.mjs +3342 -0
  172. package/esm/components/table/index.mjs.map +1 -0
  173. package/esm/components/table/src/table.mjs +60 -0
  174. package/esm/components/table/src/table.mjs.map +1 -0
  175. package/esm/components/table/src/table.vue.mjs +3080 -0
  176. package/esm/components/table/src/table.vue.mjs.map +1 -0
  177. package/esm/dialog-Cm3Px-Bu.js +537 -0
  178. package/esm/dialog-Cm3Px-Bu.js.map +1 -0
  179. package/esm/dialog-CzZm50XM.js +2 -0
  180. package/esm/hooks/dialog-d4SMZWbw.js +261 -0
  181. package/esm/hooks/dialog-d4SMZWbw.js.map +1 -0
  182. package/esm/hooks/hooks-DdjieG2I.js +281 -0
  183. package/esm/hooks/hooks-DdjieG2I.js.map +1 -0
  184. package/esm/hooks/index.mjs +2 -0
  185. package/esm/icons/index.mjs +79 -0
  186. package/esm/icons/index.mjs.map +1 -0
  187. package/esm/index.mjs +9065 -0
  188. package/esm/index.mjs.map +1 -0
  189. package/esm/utils/index.mjs +65 -0
  190. package/esm/utils/index.mjs.map +1 -0
  191. package/global.d.ts +39 -0
  192. package/package.json +131 -0
  193. package/theme/index.css +1 -0
  194. package/theme/index.scss +16 -0
  195. package/theme/src/barcode.scss +14 -0
  196. package/theme/src/button.scss +65 -0
  197. package/theme/src/date-picker.scss +87 -0
  198. package/theme/src/dialog.scss +146 -0
  199. package/theme/src/ep-vars.scss +11 -0
  200. package/theme/src/input-number.scss +66 -0
  201. package/theme/src/input-search.scss +78 -0
  202. package/theme/src/input.scss +66 -0
  203. package/theme/src/mixins/bem.scss +35 -0
  204. package/theme/src/mixins/color.scss +8 -0
  205. package/theme/src/qr-code.scss +23 -0
  206. package/theme/src/radial-menu.scss +346 -0
  207. package/theme/src/select.scss +44 -0
  208. package/theme/src/table.scss +143 -0
  209. package/theme/src/tokens.scss +26 -0
  210. package/theme/src/tree-select.scss +45 -0
  211. package/theme/src/tree.scss +369 -0
  212. package/types/components/barcode/index.d.ts +183 -0
  213. package/types/components/barcode/src/barcode.d.ts +147 -0
  214. package/types/components/barcode/src/barcode.vue.d.ts +184 -0
  215. package/types/components/button/index.d.ts +135 -0
  216. package/types/components/button/src/button.d.ts +33 -0
  217. package/types/components/button/src/button.vue.d.ts +138 -0
  218. package/types/components/date-picker/index.d.ts +508 -0
  219. package/types/components/date-picker/src/date-picker.d.ts +35 -0
  220. package/types/components/date-picker/src/date-picker.vue.d.ts +509 -0
  221. package/types/components/dialog/index.d.ts +630 -0
  222. package/types/components/dialog/src/dialog.d.ts +70 -0
  223. package/types/components/dialog/src/dialog.vue.d.ts +257 -0
  224. package/types/components/index.d.ts +27 -0
  225. package/types/components/input/index.d.ts +233 -0
  226. package/types/components/input/src/input.d.ts +65 -0
  227. package/types/components/input/src/input.vue.d.ts +239 -0
  228. package/types/components/input-number/index.d.ts +713 -0
  229. package/types/components/input-number/src/input-number.d.ts +101 -0
  230. package/types/components/input-number/src/input-number.vue.d.ts +283 -0
  231. package/types/components/input-search/index.d.ts +113 -0
  232. package/types/components/input-search/src/input-search.d.ts +128 -0
  233. package/types/components/input-search/src/input-search.vue.d.ts +114 -0
  234. package/types/components/qr-code/index.d.ts +109 -0
  235. package/types/components/qr-code/src/qr-code.d.ts +93 -0
  236. package/types/components/qr-code/src/qr-code.vue.d.ts +109 -0
  237. package/types/components/radial-menu/index.d.ts +499 -0
  238. package/types/components/radial-menu/src/radial-menu-item.d.ts +40 -0
  239. package/types/components/radial-menu/src/radial-menu-item.vue.d.ts +95 -0
  240. package/types/components/radial-menu/src/radial-menu.d.ts +92 -0
  241. package/types/components/radial-menu/src/radial-menu.vue.d.ts +200 -0
  242. package/types/components/radial-menu/src/types.d.ts +48 -0
  243. package/types/components/radial-menu/src/use-radial-menu-items.d.ts +19 -0
  244. package/types/components/radial-menu/src/use-radial-menu-keyboard.d.ts +17 -0
  245. package/types/components/radial-menu/src/use-radial-menu-position.d.ts +45 -0
  246. package/types/components/radial-menu/src/use-radial-menu-shortcut.d.ts +8 -0
  247. package/types/components/radial-menu/src/use-radial-menu-state.d.ts +15 -0
  248. package/types/components/select/index.d.ts +5 -0
  249. package/types/components/select/src/select.d.ts +30 -0
  250. package/types/components/select/src/select.vue.d.ts +25 -0
  251. package/types/components/table/index.d.ts +8 -0
  252. package/types/components/table/src/editor-registry.d.ts +24 -0
  253. package/types/components/table/src/proxy-data.d.ts +10 -0
  254. package/types/components/table/src/table-editor.d.ts +18 -0
  255. package/types/components/table/src/table-editor.vue.d.ts +43 -0
  256. package/types/components/table/src/table.d.ts +179 -0
  257. package/types/components/table/src/table.vue.d.ts +121 -0
  258. package/types/components/tree/index.d.ts +5 -0
  259. package/types/components/tree/src/tree-node.vue.d.ts +88 -0
  260. package/types/components/tree/src/tree-types.d.ts +90 -0
  261. package/types/components/tree/src/tree.d.ts +448 -0
  262. package/types/components/tree/src/tree.vue.d.ts +301 -0
  263. package/types/components/tree/src/use-tree-check-conduct.d.ts +43 -0
  264. package/types/components/tree/src/use-tree-checked-state.d.ts +34 -0
  265. package/types/components/tree/src/use-tree-drag.d.ts +45 -0
  266. package/types/components/tree/src/use-tree-expanded-state.d.ts +41 -0
  267. package/types/components/tree/src/use-tree-keyboard.d.ts +21 -0
  268. package/types/components/tree/src/use-tree-load.d.ts +25 -0
  269. package/types/components/tree/src/use-tree-scroll.d.ts +17 -0
  270. package/types/components/tree/src/use-tree-selected-state.d.ts +29 -0
  271. package/types/components/tree-select/index.d.ts +5 -0
  272. package/types/components/tree-select/src/tree-select.d.ts +26 -0
  273. package/types/components/tree-select/src/tree-select.vue.d.ts +25 -0
  274. package/types/falcon-ui/index.d.ts +8 -0
  275. package/types/hooks/index.d.ts +3 -0
  276. package/types/hooks/src/use-clearable-state.d.ts +10 -0
  277. package/types/hooks/src/use-component.d.ts +15 -0
  278. package/types/hooks/src/use-dialog.d.ts +49 -0
  279. package/types/icons/index.d.ts +1 -0
  280. package/types/icons/src/components/holder-outlined.vue.d.ts +3 -0
  281. package/types/icons/src/components/index.d.ts +3 -0
  282. package/types/icons/src/components/minus-square-outlined.vue.d.ts +3 -0
  283. package/types/icons/src/components/plus-square-outlined.vue.d.ts +3 -0
  284. package/types/utils/index.d.ts +3 -0
  285. package/types/utils/src/bem.d.ts +11 -0
  286. package/types/utils/src/component.d.ts +6 -0
  287. package/types/utils/src/install.d.ts +5 -0
  288. package/umd/falcon-ui.umd.js +13297 -0
  289. package/umd/falcon-ui.umd.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.vue.mjs","names":[],"sources":["../../../../../../packages/utils/src/bem.ts","../../../../../../packages/utils/src/component.ts","../../../../../../packages/hooks/src/use-component.ts","../../../../../../packages/components/button/src/button.ts","../../../../../../packages/components/button/src/button.vue","../../../../../../packages/components/button/src/button.vue"],"sourcesContent":["const defaultNamespace = 'fl'\r\nconst statePrefix = 'is-'\r\n\r\nconst buildBemName = (\r\n namespace: string,\r\n block: string,\r\n blockSuffix = '',\r\n element = '',\r\n modifier = ''\r\n) => {\r\n let className = `${namespace}-${block}`\r\n\r\n if (blockSuffix) {\r\n className += `-${blockSuffix}`\r\n }\r\n\r\n if (element) {\r\n className += `__${element}`\r\n }\r\n\r\n if (modifier) {\r\n className += `--${modifier}`\r\n }\r\n\r\n return className\r\n}\r\n\r\nexport const useNamespace = (block: string, namespace = defaultNamespace) => {\r\n const b = (blockSuffix = '') => buildBemName(namespace, block, blockSuffix)\r\n\r\n const e = (element?: string) => (element ? buildBemName(namespace, block, '', element) : '')\r\n\r\n const m = (modifier?: string) =>\r\n modifier ? buildBemName(namespace, block, '', '', modifier) : ''\r\n\r\n const be = (blockSuffix?: string, element?: string) => {\r\n if (!blockSuffix || !element) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, element)\r\n }\r\n\r\n const em = (element?: string, modifier?: string) => {\r\n if (!element || !modifier) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, '', element, modifier)\r\n }\r\n\r\n const bm = (blockSuffix?: string, modifier?: string) => {\r\n if (!blockSuffix || !modifier) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, '', modifier)\r\n }\r\n\r\n const bem = (blockSuffix?: string, element?: string, modifier?: string) => {\r\n if (!blockSuffix && !element && !modifier) {\r\n return b()\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, element, modifier)\r\n }\r\n\r\n const is = (name: string, state = true) => (state ? `${statePrefix}${name}` : '')\r\n\r\n return {\r\n namespace,\r\n b,\r\n e,\r\n m,\r\n be,\r\n em,\r\n bm,\r\n bem,\r\n is\r\n }\r\n}\r\n","type ExposedTarget = {\r\n exposed?: Record<string, unknown> | null\r\n} | null\r\n\r\nexport const mergeComponentExpose = (\r\n vm: ExposedTarget,\r\n exposed: unknown,\r\n extras: Record<string, unknown> = {}\r\n) => {\r\n if (!vm?.exposed || !exposed || (typeof exposed !== 'object' && typeof exposed !== 'function')) {\r\n return\r\n }\r\n\r\n Object.assign(vm.exposed, extras, exposed)\r\n}\r\n\r\nexport const invokeListener = (listener: unknown, ...args: unknown[]) => {\r\n if (typeof listener === 'function') {\r\n listener(...args)\r\n return\r\n }\r\n\r\n if (!Array.isArray(listener)) {\r\n return\r\n }\r\n\r\n for (const item of listener) {\r\n if (typeof item === 'function') {\r\n item(...args)\r\n }\r\n }\r\n}\r\n","import { computed, getCurrentInstance } from 'vue'\r\nimport { invokeListener, mergeComponentExpose, useNamespace } from '@falcon-ui/utils'\r\n\r\ntype UseMergedAttrsOptions = {\r\n attrs: Record<string, unknown>\r\n block: string\r\n listenerName: string\r\n onListener?: (...args: unknown[]) => void\r\n}\r\n\r\nexport const useMergedAttrs = ({\r\n attrs,\r\n block,\r\n listenerName,\r\n onListener\r\n}: UseMergedAttrsOptions) => {\r\n const ns = useNamespace(block)\r\n const className = ns.b()\r\n\r\n const mergedAttrs = computed(() => {\r\n const next = { ...attrs }\r\n const originalListener = next[listenerName]\r\n next.class = [className, next.class]\r\n\r\n next[listenerName] = (...args: unknown[]) => {\r\n onListener?.(...args)\r\n invokeListener(originalListener, ...args)\r\n }\r\n\r\n return next\r\n })\r\n\r\n return {\r\n mergedAttrs\r\n }\r\n}\r\n\r\nexport const useMergedExpose = <TExpose extends Record<string, unknown>>(extras: TExpose) => {\r\n const vm = getCurrentInstance()\r\n\r\n const changeRef = (exposed: unknown) => {\r\n mergeComponentExpose(vm, exposed, extras)\r\n }\r\n\r\n return {\r\n changeRef\r\n }\r\n}\r\n","import type { ExtractPublicPropTypes } from 'vue'\r\n\r\nexport const flButtonProps = {\r\n /**\r\n * 调试事件标签,在开启调试模式后会随 `debug-click` 一起抛出。\r\n */\r\n debugLabel: {\r\n type: String,\r\n default: ''\r\n },\r\n /**\r\n * 是否开启调试点击事件,开启后每次点击都会触发 `debug-click`。\r\n */\r\n debugMode: {\r\n type: Boolean,\r\n default: false\r\n }\r\n} as const\r\n\r\nexport interface FlButtonDebugPayload {\r\n /**\r\n * 用于标识当前按钮实例的业务标签。\r\n */\r\n label: string\r\n}\r\n\r\nexport const flButtonEmits = {\r\n /**\r\n * 开启调试模式后,在按钮点击时触发。\r\n */\r\n 'debug-click': (payload: FlButtonDebugPayload) => typeof payload.label === 'string'\r\n} as const\r\n\r\nexport type FlButtonProps = ExtractPublicPropTypes<typeof flButtonProps>\r\nexport type FlButtonEmits = typeof flButtonEmits\r\n\r\nexport type ButtonProps = FlButtonProps\r\nexport type ButtonEmits = FlButtonEmits\r\n","<template>\r\n <component :is=\"h(ElButton, { ...mergedAttrs, ref: changeRef }, slots)\" />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElButton } from 'element-plus'\r\nimport type { ComponentInstance } from 'vue'\r\nimport { h, useAttrs, useSlots } from 'vue'\r\nimport { useMergedAttrs, useMergedExpose } from '@falcon-ui/hooks'\r\nimport { flButtonEmits, flButtonProps } from './button'\r\n\r\ndefineOptions({\r\n name: 'FlButton',\r\n inheritAttrs: false\r\n})\r\n\r\nconst props = defineProps(flButtonProps)\r\nconst emit = defineEmits(flButtonEmits)\r\nconst attrs = useAttrs()\r\nconst slots = useSlots()\r\n\r\nconst _myExpose = {\r\n /**\r\n * 标记该暴露值来源于 FlButton,便于调试识别。\r\n */\r\n debugKind: 'button'\r\n}\r\n\r\nconst { changeRef } = useMergedExpose(_myExpose)\r\nconst { mergedAttrs } = useMergedAttrs({\r\n attrs: attrs as Record<string, unknown>,\r\n block: 'button',\r\n listenerName: 'onClick',\r\n onListener: () => {\r\n if (props.debugMode) {\r\n emit('debug-click', {\r\n label: props.debugLabel\r\n })\r\n }\r\n }\r\n})\r\n\r\ndefineExpose({} as ComponentInstance<typeof ElButton> & typeof _myExpose)\r\n</script>\r\n","<template>\r\n <component :is=\"h(ElButton, { ...mergedAttrs, ref: changeRef }, slots)\" />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElButton } from 'element-plus'\r\nimport type { ComponentInstance } from 'vue'\r\nimport { h, useAttrs, useSlots } from 'vue'\r\nimport { useMergedAttrs, useMergedExpose } from '@falcon-ui/hooks'\r\nimport { flButtonEmits, flButtonProps } from './button'\r\n\r\ndefineOptions({\r\n name: 'FlButton',\r\n inheritAttrs: false\r\n})\r\n\r\nconst props = defineProps(flButtonProps)\r\nconst emit = defineEmits(flButtonEmits)\r\nconst attrs = useAttrs()\r\nconst slots = useSlots()\r\n\r\nconst _myExpose = {\r\n /**\r\n * 标记该暴露值来源于 FlButton,便于调试识别。\r\n */\r\n debugKind: 'button'\r\n}\r\n\r\nconst { changeRef } = useMergedExpose(_myExpose)\r\nconst { mergedAttrs } = useMergedAttrs({\r\n attrs: attrs as Record<string, unknown>,\r\n block: 'button',\r\n listenerName: 'onClick',\r\n onListener: () => {\r\n if (props.debugMode) {\r\n emit('debug-click', {\r\n label: props.debugLabel\r\n })\r\n }\r\n }\r\n})\r\n\r\ndefineExpose({} as ComponentInstance<typeof ElButton> & typeof _myExpose)\r\n</script>\r\n"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ var __toDynamicImportESM = (isNodeMode) => (mod) => __toESM(mod.default, isNodeMode);
23
+ export { __toDynamicImportESM as n, __toESM as r, __commonJSMin as t };
@@ -0,0 +1,155 @@
1
+ import { computed, createBlock, defineComponent, getCurrentInstance, h, openBlock, resolveDynamicComponent, unref, useAttrs, useSlots, watch } from "vue";
2
+ import { ElDatePicker } from "element-plus";
3
+ var defaultNamespace = "fl";
4
+ var statePrefix = "is-";
5
+ var buildBemName = (namespace, block, blockSuffix = "", element = "", modifier = "") => {
6
+ let className = `${namespace}-${block}`;
7
+ if (blockSuffix) className += `-${blockSuffix}`;
8
+ if (element) className += `__${element}`;
9
+ if (modifier) className += `--${modifier}`;
10
+ return className;
11
+ };
12
+ const useNamespace = (block, namespace = defaultNamespace) => {
13
+ const b = (blockSuffix = "") => buildBemName(namespace, block, blockSuffix);
14
+ const e = (element) => element ? buildBemName(namespace, block, "", element) : "";
15
+ const m = (modifier) => modifier ? buildBemName(namespace, block, "", "", modifier) : "";
16
+ const be = (blockSuffix, element) => {
17
+ if (!blockSuffix || !element) return "";
18
+ return buildBemName(namespace, block, blockSuffix, element);
19
+ };
20
+ const em = (element, modifier) => {
21
+ if (!element || !modifier) return "";
22
+ return buildBemName(namespace, block, "", element, modifier);
23
+ };
24
+ const bm = (blockSuffix, modifier) => {
25
+ if (!blockSuffix || !modifier) return "";
26
+ return buildBemName(namespace, block, blockSuffix, "", modifier);
27
+ };
28
+ const bem = (blockSuffix, element, modifier) => {
29
+ if (!blockSuffix && !element && !modifier) return b();
30
+ return buildBemName(namespace, block, blockSuffix, element, modifier);
31
+ };
32
+ const is = (name, state = true) => state ? `${statePrefix}${name}` : "";
33
+ return {
34
+ namespace,
35
+ b,
36
+ e,
37
+ m,
38
+ be,
39
+ em,
40
+ bm,
41
+ bem,
42
+ is
43
+ };
44
+ };
45
+ const mergeComponentExpose = (vm, exposed, extras = {}) => {
46
+ if (!vm?.exposed || !exposed || typeof exposed !== "object" && typeof exposed !== "function") return;
47
+ Object.assign(vm.exposed, extras, exposed);
48
+ };
49
+ const invokeListener = (listener, ...args) => {
50
+ if (typeof listener === "function") {
51
+ listener(...args);
52
+ return;
53
+ }
54
+ if (!Array.isArray(listener)) return;
55
+ for (const item of listener) if (typeof item === "function") item(...args);
56
+ };
57
+ const withInstall = (component) => {
58
+ const installable = component;
59
+ installable.install = (app) => {
60
+ if (!component.name) return;
61
+ app.component(component.name, component);
62
+ };
63
+ return installable;
64
+ };
65
+ const useMergedAttrs = ({ attrs, block, listenerName, onListener }) => {
66
+ const className = useNamespace(block).b();
67
+ return { mergedAttrs: computed(() => {
68
+ const next = { ...attrs };
69
+ const originalListener = next[listenerName];
70
+ next.class = [className, next.class];
71
+ next[listenerName] = (...args) => {
72
+ onListener?.(...args);
73
+ invokeListener(originalListener, ...args);
74
+ };
75
+ return next;
76
+ }) };
77
+ };
78
+ const useMergedExpose = (extras) => {
79
+ const vm = getCurrentInstance();
80
+ const changeRef = (exposed) => {
81
+ mergeComponentExpose(vm, exposed, extras);
82
+ };
83
+ return { changeRef };
84
+ };
85
+ const FlDatePicker = withInstall(/* @__PURE__ */ defineComponent({
86
+ name: "FlDatePicker",
87
+ inheritAttrs: false,
88
+ __name: "date-picker",
89
+ props: {
90
+ modelValue: {
91
+ type: [
92
+ String,
93
+ Number,
94
+ Date,
95
+ Array
96
+ ],
97
+ default: null
98
+ },
99
+ isError: {
100
+ type: Boolean,
101
+ default: false
102
+ },
103
+ isTable: {
104
+ type: Boolean,
105
+ default: false
106
+ }
107
+ },
108
+ emits: { "update:modelValue": (_value) => true },
109
+ setup(__props, { expose: __expose, emit: __emit }) {
110
+ const props = __props;
111
+ const emit = __emit;
112
+ const attrs = useAttrs();
113
+ const slots = useSlots();
114
+ const rawAttrs = attrs;
115
+ const { changeRef } = useMergedExpose({});
116
+ const { mergedAttrs } = useMergedAttrs({
117
+ attrs: rawAttrs,
118
+ block: "date-picker",
119
+ listenerName: "onChange"
120
+ });
121
+ const updateModelValue = (value) => {
122
+ if (props.isError) {
123
+ emit("update:modelValue", null);
124
+ return;
125
+ }
126
+ emit("update:modelValue", value);
127
+ };
128
+ const mergedDatePickerAttrs = computed(() => ({
129
+ ...mergedAttrs.value,
130
+ modelValue: props.modelValue,
131
+ "onUpdate:modelValue": updateModelValue,
132
+ class: [mergedAttrs.value.class, {
133
+ "is-error": props.isError,
134
+ "is-table": props.isTable
135
+ }]
136
+ }));
137
+ const clearModelValue = () => {
138
+ emit("update:modelValue", null);
139
+ };
140
+ watch(() => props.isError, (isError, previousIsError) => {
141
+ if (isError && previousIsError !== true) clearModelValue();
142
+ }, { immediate: true });
143
+ __expose({});
144
+ return (_ctx, _cache) => {
145
+ return openBlock(), createBlock(resolveDynamicComponent(h(unref(ElDatePicker), {
146
+ ...mergedDatePickerAttrs.value,
147
+ ref: unref(changeRef)
148
+ }, unref(slots))));
149
+ };
150
+ }
151
+ }));
152
+ var date_picker_default = FlDatePicker;
153
+ export { FlDatePicker, date_picker_default as default };
154
+
155
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/utils/src/bem.ts","../../../../../packages/utils/src/component.ts","../../../../../packages/utils/src/install.ts","../../../../../packages/hooks/src/use-component.ts","../../../../../packages/components/date-picker/src/date-picker.ts","../../../../../packages/components/date-picker/src/date-picker.vue","../../../../../packages/components/date-picker/src/date-picker.vue","../../../../../packages/components/date-picker/index.ts"],"sourcesContent":["const defaultNamespace = 'fl'\r\nconst statePrefix = 'is-'\r\n\r\nconst buildBemName = (\r\n namespace: string,\r\n block: string,\r\n blockSuffix = '',\r\n element = '',\r\n modifier = ''\r\n) => {\r\n let className = `${namespace}-${block}`\r\n\r\n if (blockSuffix) {\r\n className += `-${blockSuffix}`\r\n }\r\n\r\n if (element) {\r\n className += `__${element}`\r\n }\r\n\r\n if (modifier) {\r\n className += `--${modifier}`\r\n }\r\n\r\n return className\r\n}\r\n\r\nexport const useNamespace = (block: string, namespace = defaultNamespace) => {\r\n const b = (blockSuffix = '') => buildBemName(namespace, block, blockSuffix)\r\n\r\n const e = (element?: string) => (element ? buildBemName(namespace, block, '', element) : '')\r\n\r\n const m = (modifier?: string) =>\r\n modifier ? buildBemName(namespace, block, '', '', modifier) : ''\r\n\r\n const be = (blockSuffix?: string, element?: string) => {\r\n if (!blockSuffix || !element) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, element)\r\n }\r\n\r\n const em = (element?: string, modifier?: string) => {\r\n if (!element || !modifier) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, '', element, modifier)\r\n }\r\n\r\n const bm = (blockSuffix?: string, modifier?: string) => {\r\n if (!blockSuffix || !modifier) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, '', modifier)\r\n }\r\n\r\n const bem = (blockSuffix?: string, element?: string, modifier?: string) => {\r\n if (!blockSuffix && !element && !modifier) {\r\n return b()\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, element, modifier)\r\n }\r\n\r\n const is = (name: string, state = true) => (state ? `${statePrefix}${name}` : '')\r\n\r\n return {\r\n namespace,\r\n b,\r\n e,\r\n m,\r\n be,\r\n em,\r\n bm,\r\n bem,\r\n is\r\n }\r\n}\r\n","type ExposedTarget = {\r\n exposed?: Record<string, unknown> | null\r\n} | null\r\n\r\nexport const mergeComponentExpose = (\r\n vm: ExposedTarget,\r\n exposed: unknown,\r\n extras: Record<string, unknown> = {}\r\n) => {\r\n if (!vm?.exposed || !exposed || (typeof exposed !== 'object' && typeof exposed !== 'function')) {\r\n return\r\n }\r\n\r\n Object.assign(vm.exposed, extras, exposed)\r\n}\r\n\r\nexport const invokeListener = (listener: unknown, ...args: unknown[]) => {\r\n if (typeof listener === 'function') {\r\n listener(...args)\r\n return\r\n }\r\n\r\n if (!Array.isArray(listener)) {\r\n return\r\n }\r\n\r\n for (const item of listener) {\r\n if (typeof item === 'function') {\r\n item(...args)\r\n }\r\n }\r\n}\r\n","import type { App, Plugin } from 'vue'\r\n\r\nexport type SFCWithInstall<T> = T & Plugin\r\n\r\nexport const withInstall = <T extends { name?: string }>(component: T): SFCWithInstall<T> => {\r\n const installable = component as SFCWithInstall<T>\r\n\r\n installable.install = (app: App) => {\r\n if (!component.name) {\r\n return\r\n }\r\n\r\n app.component(component.name, component as unknown as object)\r\n }\r\n\r\n return installable\r\n}\r\n","import { computed, getCurrentInstance } from 'vue'\r\nimport { invokeListener, mergeComponentExpose, useNamespace } from '@falcon-ui/utils'\r\n\r\ntype UseMergedAttrsOptions = {\r\n attrs: Record<string, unknown>\r\n block: string\r\n listenerName: string\r\n onListener?: (...args: unknown[]) => void\r\n}\r\n\r\nexport const useMergedAttrs = ({\r\n attrs,\r\n block,\r\n listenerName,\r\n onListener\r\n}: UseMergedAttrsOptions) => {\r\n const ns = useNamespace(block)\r\n const className = ns.b()\r\n\r\n const mergedAttrs = computed(() => {\r\n const next = { ...attrs }\r\n const originalListener = next[listenerName]\r\n next.class = [className, next.class]\r\n\r\n next[listenerName] = (...args: unknown[]) => {\r\n onListener?.(...args)\r\n invokeListener(originalListener, ...args)\r\n }\r\n\r\n return next\r\n })\r\n\r\n return {\r\n mergedAttrs\r\n }\r\n}\r\n\r\nexport const useMergedExpose = <TExpose extends Record<string, unknown>>(extras: TExpose) => {\r\n const vm = getCurrentInstance()\r\n\r\n const changeRef = (exposed: unknown) => {\r\n mergeComponentExpose(vm, exposed, extras)\r\n }\r\n\r\n return {\r\n changeRef\r\n }\r\n}\r\n","import type { ExtractPublicPropTypes, PropType } from 'vue'\r\n\r\nexport type FlDatePickerValue = string | number | Date | string[] | number[] | Date[] | null\r\n\r\nexport const flDatePickerProps = {\r\n /**\r\n * Bound value. Keeps the wrapper on explicit v-model contract.\r\n */\r\n modelValue: {\r\n type: [String, Number, Date, Array] as PropType<FlDatePickerValue>,\r\n default: null\r\n },\r\n /**\r\n * Whether the component is in error state.\r\n */\r\n isError: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * Whether the component is used in a table-cell context.\r\n */\r\n isTable: {\r\n type: Boolean,\r\n default: false\r\n }\r\n} as const\r\n\r\nexport const flDatePickerEmits = {\r\n /**\r\n * Model value update event.\r\n */\r\n 'update:modelValue': (_value: FlDatePickerValue) => true\r\n} as const\r\n\r\nexport type FlDatePickerProps = ExtractPublicPropTypes<typeof flDatePickerProps>\r\nexport type FlDatePickerEmits = typeof flDatePickerEmits\r\n\r\nexport type DatePickerProps = FlDatePickerProps\r\nexport type DatePickerEmits = FlDatePickerEmits\r\n","<template>\r\n <component :is=\"h(ElDatePicker, { ...mergedDatePickerAttrs, ref: changeRef }, slots)\" />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ElDatePicker } from 'element-plus'\r\nimport type { ComponentInstance } from 'vue'\r\nimport { computed, h, useAttrs, useSlots, watch } from 'vue'\r\nimport { useMergedAttrs, useMergedExpose } from '@falcon-ui/hooks'\r\nimport { flDatePickerEmits, flDatePickerProps } from './date-picker'\r\nimport type { FlDatePickerValue } from './date-picker'\r\n\r\ndefineOptions({\r\n name: 'FlDatePicker',\r\n inheritAttrs: false\r\n})\r\n\r\nconst props = defineProps(flDatePickerProps)\r\nconst emit = defineEmits(flDatePickerEmits)\r\nconst attrs = useAttrs()\r\nconst slots = useSlots()\r\nconst rawAttrs = attrs as Record<string, unknown>\r\n\r\nconst { changeRef } = useMergedExpose({})\r\nconst { mergedAttrs } = useMergedAttrs({\r\n attrs: rawAttrs,\r\n block: 'date-picker',\r\n listenerName: 'onChange'\r\n})\r\n\r\nconst updateModelValue = (value: FlDatePickerValue) => {\r\n if (props.isError) {\r\n emit('update:modelValue', null)\r\n return\r\n }\r\n\r\n emit('update:modelValue', value)\r\n}\r\n\r\nconst mergedDatePickerAttrs = computed(() => ({\r\n ...mergedAttrs.value,\r\n modelValue: props.modelValue,\r\n 'onUpdate:modelValue': updateModelValue,\r\n class: [mergedAttrs.value.class, { 'is-error': props.isError, 'is-table': props.isTable }]\r\n}))\r\n\r\nconst clearModelValue = () => {\r\n emit('update:modelValue', null)\r\n}\r\n\r\nwatch(\r\n () => props.isError,\r\n (isError, previousIsError) => {\r\n if (isError && previousIsError !== true) {\r\n clearModelValue()\r\n }\r\n },\r\n { immediate: true }\r\n)\r\n\r\ndefineExpose({} as ComponentInstance<typeof ElDatePicker>)\r\n</script>\r\n","<template>\r\n <component :is=\"h(ElDatePicker, { ...mergedDatePickerAttrs, ref: changeRef }, slots)\" />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ElDatePicker } from 'element-plus'\r\nimport type { ComponentInstance } from 'vue'\r\nimport { computed, h, useAttrs, useSlots, watch } from 'vue'\r\nimport { useMergedAttrs, useMergedExpose } from '@falcon-ui/hooks'\r\nimport { flDatePickerEmits, flDatePickerProps } from './date-picker'\r\nimport type { FlDatePickerValue } from './date-picker'\r\n\r\ndefineOptions({\r\n name: 'FlDatePicker',\r\n inheritAttrs: false\r\n})\r\n\r\nconst props = defineProps(flDatePickerProps)\r\nconst emit = defineEmits(flDatePickerEmits)\r\nconst attrs = useAttrs()\r\nconst slots = useSlots()\r\nconst rawAttrs = attrs as Record<string, unknown>\r\n\r\nconst { changeRef } = useMergedExpose({})\r\nconst { mergedAttrs } = useMergedAttrs({\r\n attrs: rawAttrs,\r\n block: 'date-picker',\r\n listenerName: 'onChange'\r\n})\r\n\r\nconst updateModelValue = (value: FlDatePickerValue) => {\r\n if (props.isError) {\r\n emit('update:modelValue', null)\r\n return\r\n }\r\n\r\n emit('update:modelValue', value)\r\n}\r\n\r\nconst mergedDatePickerAttrs = computed(() => ({\r\n ...mergedAttrs.value,\r\n modelValue: props.modelValue,\r\n 'onUpdate:modelValue': updateModelValue,\r\n class: [mergedAttrs.value.class, { 'is-error': props.isError, 'is-table': props.isTable }]\r\n}))\r\n\r\nconst clearModelValue = () => {\r\n emit('update:modelValue', null)\r\n}\r\n\r\nwatch(\r\n () => props.isError,\r\n (isError, previousIsError) => {\r\n if (isError && previousIsError !== true) {\r\n clearModelValue()\r\n }\r\n },\r\n { immediate: true }\r\n)\r\n\r\ndefineExpose({} as ComponentInstance<typeof ElDatePicker>)\r\n</script>\r\n","import DatePicker from './src/date-picker.vue'\r\nimport { withInstall } from '@falcon-ui/utils'\r\n\r\nexport const FlDatePicker = withInstall(DatePicker)\r\n\r\nexport default FlDatePicker\r\n\r\nexport type {\r\n DatePickerEmits,\r\n DatePickerProps,\r\n FlDatePickerEmits,\r\n FlDatePickerProps\r\n} from './src/date-picker'\r\n"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ const flDatePickerProps = {
2
+ modelValue: {
3
+ type: [
4
+ String,
5
+ Number,
6
+ Date,
7
+ Array
8
+ ],
9
+ default: null
10
+ },
11
+ isError: {
12
+ type: Boolean,
13
+ default: false
14
+ },
15
+ isTable: {
16
+ type: Boolean,
17
+ default: false
18
+ }
19
+ };
20
+ const flDatePickerEmits = { "update:modelValue": (_value) => true };
21
+ export { flDatePickerEmits, flDatePickerProps };
22
+
23
+ //# sourceMappingURL=date-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.mjs","names":[],"sources":["../../../../../../packages/components/date-picker/src/date-picker.ts"],"sourcesContent":["import type { ExtractPublicPropTypes, PropType } from 'vue'\r\n\r\nexport type FlDatePickerValue = string | number | Date | string[] | number[] | Date[] | null\r\n\r\nexport const flDatePickerProps = {\r\n /**\r\n * Bound value. Keeps the wrapper on explicit v-model contract.\r\n */\r\n modelValue: {\r\n type: [String, Number, Date, Array] as PropType<FlDatePickerValue>,\r\n default: null\r\n },\r\n /**\r\n * Whether the component is in error state.\r\n */\r\n isError: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * Whether the component is used in a table-cell context.\r\n */\r\n isTable: {\r\n type: Boolean,\r\n default: false\r\n }\r\n} as const\r\n\r\nexport const flDatePickerEmits = {\r\n /**\r\n * Model value update event.\r\n */\r\n 'update:modelValue': (_value: FlDatePickerValue) => true\r\n} as const\r\n\r\nexport type FlDatePickerProps = ExtractPublicPropTypes<typeof flDatePickerProps>\r\nexport type FlDatePickerEmits = typeof flDatePickerEmits\r\n\r\nexport type DatePickerProps = FlDatePickerProps\r\nexport type DatePickerEmits = FlDatePickerEmits\r\n"],"mappings":"AAIA,MAAa,oBAAoB;CAI/B,YAAY;EACV,MAAM;GAAC;GAAQ;GAAQ;GAAM;GAAM;EACnC,SAAS;EACV;CAID,SAAS;EACP,MAAM;EACN,SAAS;EACV;CAID,SAAS;EACP,MAAM;EACN,SAAS;EACV;CACF;AAED,MAAa,oBAAoB,EAI/B,sBAAsB,WAA8B,MACrD"}
@@ -0,0 +1,146 @@
1
+ import { computed, createBlock, defineComponent, getCurrentInstance, h, openBlock, resolveDynamicComponent, unref, useAttrs, useSlots, watch } from "vue";
2
+ import { ElDatePicker } from "element-plus";
3
+ var defaultNamespace = "fl";
4
+ var statePrefix = "is-";
5
+ var buildBemName = (namespace, block, blockSuffix = "", element = "", modifier = "") => {
6
+ let className = `${namespace}-${block}`;
7
+ if (blockSuffix) className += `-${blockSuffix}`;
8
+ if (element) className += `__${element}`;
9
+ if (modifier) className += `--${modifier}`;
10
+ return className;
11
+ };
12
+ const useNamespace = (block, namespace = defaultNamespace) => {
13
+ const b = (blockSuffix = "") => buildBemName(namespace, block, blockSuffix);
14
+ const e = (element) => element ? buildBemName(namespace, block, "", element) : "";
15
+ const m = (modifier) => modifier ? buildBemName(namespace, block, "", "", modifier) : "";
16
+ const be = (blockSuffix, element) => {
17
+ if (!blockSuffix || !element) return "";
18
+ return buildBemName(namespace, block, blockSuffix, element);
19
+ };
20
+ const em = (element, modifier) => {
21
+ if (!element || !modifier) return "";
22
+ return buildBemName(namespace, block, "", element, modifier);
23
+ };
24
+ const bm = (blockSuffix, modifier) => {
25
+ if (!blockSuffix || !modifier) return "";
26
+ return buildBemName(namespace, block, blockSuffix, "", modifier);
27
+ };
28
+ const bem = (blockSuffix, element, modifier) => {
29
+ if (!blockSuffix && !element && !modifier) return b();
30
+ return buildBemName(namespace, block, blockSuffix, element, modifier);
31
+ };
32
+ const is = (name, state = true) => state ? `${statePrefix}${name}` : "";
33
+ return {
34
+ namespace,
35
+ b,
36
+ e,
37
+ m,
38
+ be,
39
+ em,
40
+ bm,
41
+ bem,
42
+ is
43
+ };
44
+ };
45
+ const mergeComponentExpose = (vm, exposed, extras = {}) => {
46
+ if (!vm?.exposed || !exposed || typeof exposed !== "object" && typeof exposed !== "function") return;
47
+ Object.assign(vm.exposed, extras, exposed);
48
+ };
49
+ const invokeListener = (listener, ...args) => {
50
+ if (typeof listener === "function") {
51
+ listener(...args);
52
+ return;
53
+ }
54
+ if (!Array.isArray(listener)) return;
55
+ for (const item of listener) if (typeof item === "function") item(...args);
56
+ };
57
+ const useMergedAttrs = ({ attrs, block, listenerName, onListener }) => {
58
+ const className = useNamespace(block).b();
59
+ return { mergedAttrs: computed(() => {
60
+ const next = { ...attrs };
61
+ const originalListener = next[listenerName];
62
+ next.class = [className, next.class];
63
+ next[listenerName] = (...args) => {
64
+ onListener?.(...args);
65
+ invokeListener(originalListener, ...args);
66
+ };
67
+ return next;
68
+ }) };
69
+ };
70
+ const useMergedExpose = (extras) => {
71
+ const vm = getCurrentInstance();
72
+ const changeRef = (exposed) => {
73
+ mergeComponentExpose(vm, exposed, extras);
74
+ };
75
+ return { changeRef };
76
+ };
77
+ var date_picker_default = /* @__PURE__ */ defineComponent({
78
+ name: "FlDatePicker",
79
+ inheritAttrs: false,
80
+ __name: "date-picker",
81
+ props: {
82
+ modelValue: {
83
+ type: [
84
+ String,
85
+ Number,
86
+ Date,
87
+ Array
88
+ ],
89
+ default: null
90
+ },
91
+ isError: {
92
+ type: Boolean,
93
+ default: false
94
+ },
95
+ isTable: {
96
+ type: Boolean,
97
+ default: false
98
+ }
99
+ },
100
+ emits: { "update:modelValue": (_value) => true },
101
+ setup(__props, { expose: __expose, emit: __emit }) {
102
+ const props = __props;
103
+ const emit = __emit;
104
+ const attrs = useAttrs();
105
+ const slots = useSlots();
106
+ const rawAttrs = attrs;
107
+ const { changeRef } = useMergedExpose({});
108
+ const { mergedAttrs } = useMergedAttrs({
109
+ attrs: rawAttrs,
110
+ block: "date-picker",
111
+ listenerName: "onChange"
112
+ });
113
+ const updateModelValue = (value) => {
114
+ if (props.isError) {
115
+ emit("update:modelValue", null);
116
+ return;
117
+ }
118
+ emit("update:modelValue", value);
119
+ };
120
+ const mergedDatePickerAttrs = computed(() => ({
121
+ ...mergedAttrs.value,
122
+ modelValue: props.modelValue,
123
+ "onUpdate:modelValue": updateModelValue,
124
+ class: [mergedAttrs.value.class, {
125
+ "is-error": props.isError,
126
+ "is-table": props.isTable
127
+ }]
128
+ }));
129
+ const clearModelValue = () => {
130
+ emit("update:modelValue", null);
131
+ };
132
+ watch(() => props.isError, (isError, previousIsError) => {
133
+ if (isError && previousIsError !== true) clearModelValue();
134
+ }, { immediate: true });
135
+ __expose({});
136
+ return (_ctx, _cache) => {
137
+ return openBlock(), createBlock(resolveDynamicComponent(h(unref(ElDatePicker), {
138
+ ...mergedDatePickerAttrs.value,
139
+ ref: unref(changeRef)
140
+ }, unref(slots))));
141
+ };
142
+ }
143
+ });
144
+ export { date_picker_default as default };
145
+
146
+ //# sourceMappingURL=date-picker.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.vue.mjs","names":[],"sources":["../../../../../../packages/utils/src/bem.ts","../../../../../../packages/utils/src/component.ts","../../../../../../packages/hooks/src/use-component.ts","../../../../../../packages/components/date-picker/src/date-picker.ts","../../../../../../packages/components/date-picker/src/date-picker.vue","../../../../../../packages/components/date-picker/src/date-picker.vue"],"sourcesContent":["const defaultNamespace = 'fl'\r\nconst statePrefix = 'is-'\r\n\r\nconst buildBemName = (\r\n namespace: string,\r\n block: string,\r\n blockSuffix = '',\r\n element = '',\r\n modifier = ''\r\n) => {\r\n let className = `${namespace}-${block}`\r\n\r\n if (blockSuffix) {\r\n className += `-${blockSuffix}`\r\n }\r\n\r\n if (element) {\r\n className += `__${element}`\r\n }\r\n\r\n if (modifier) {\r\n className += `--${modifier}`\r\n }\r\n\r\n return className\r\n}\r\n\r\nexport const useNamespace = (block: string, namespace = defaultNamespace) => {\r\n const b = (blockSuffix = '') => buildBemName(namespace, block, blockSuffix)\r\n\r\n const e = (element?: string) => (element ? buildBemName(namespace, block, '', element) : '')\r\n\r\n const m = (modifier?: string) =>\r\n modifier ? buildBemName(namespace, block, '', '', modifier) : ''\r\n\r\n const be = (blockSuffix?: string, element?: string) => {\r\n if (!blockSuffix || !element) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, element)\r\n }\r\n\r\n const em = (element?: string, modifier?: string) => {\r\n if (!element || !modifier) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, '', element, modifier)\r\n }\r\n\r\n const bm = (blockSuffix?: string, modifier?: string) => {\r\n if (!blockSuffix || !modifier) {\r\n return ''\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, '', modifier)\r\n }\r\n\r\n const bem = (blockSuffix?: string, element?: string, modifier?: string) => {\r\n if (!blockSuffix && !element && !modifier) {\r\n return b()\r\n }\r\n\r\n return buildBemName(namespace, block, blockSuffix, element, modifier)\r\n }\r\n\r\n const is = (name: string, state = true) => (state ? `${statePrefix}${name}` : '')\r\n\r\n return {\r\n namespace,\r\n b,\r\n e,\r\n m,\r\n be,\r\n em,\r\n bm,\r\n bem,\r\n is\r\n }\r\n}\r\n","type ExposedTarget = {\r\n exposed?: Record<string, unknown> | null\r\n} | null\r\n\r\nexport const mergeComponentExpose = (\r\n vm: ExposedTarget,\r\n exposed: unknown,\r\n extras: Record<string, unknown> = {}\r\n) => {\r\n if (!vm?.exposed || !exposed || (typeof exposed !== 'object' && typeof exposed !== 'function')) {\r\n return\r\n }\r\n\r\n Object.assign(vm.exposed, extras, exposed)\r\n}\r\n\r\nexport const invokeListener = (listener: unknown, ...args: unknown[]) => {\r\n if (typeof listener === 'function') {\r\n listener(...args)\r\n return\r\n }\r\n\r\n if (!Array.isArray(listener)) {\r\n return\r\n }\r\n\r\n for (const item of listener) {\r\n if (typeof item === 'function') {\r\n item(...args)\r\n }\r\n }\r\n}\r\n","import { computed, getCurrentInstance } from 'vue'\r\nimport { invokeListener, mergeComponentExpose, useNamespace } from '@falcon-ui/utils'\r\n\r\ntype UseMergedAttrsOptions = {\r\n attrs: Record<string, unknown>\r\n block: string\r\n listenerName: string\r\n onListener?: (...args: unknown[]) => void\r\n}\r\n\r\nexport const useMergedAttrs = ({\r\n attrs,\r\n block,\r\n listenerName,\r\n onListener\r\n}: UseMergedAttrsOptions) => {\r\n const ns = useNamespace(block)\r\n const className = ns.b()\r\n\r\n const mergedAttrs = computed(() => {\r\n const next = { ...attrs }\r\n const originalListener = next[listenerName]\r\n next.class = [className, next.class]\r\n\r\n next[listenerName] = (...args: unknown[]) => {\r\n onListener?.(...args)\r\n invokeListener(originalListener, ...args)\r\n }\r\n\r\n return next\r\n })\r\n\r\n return {\r\n mergedAttrs\r\n }\r\n}\r\n\r\nexport const useMergedExpose = <TExpose extends Record<string, unknown>>(extras: TExpose) => {\r\n const vm = getCurrentInstance()\r\n\r\n const changeRef = (exposed: unknown) => {\r\n mergeComponentExpose(vm, exposed, extras)\r\n }\r\n\r\n return {\r\n changeRef\r\n }\r\n}\r\n","import type { ExtractPublicPropTypes, PropType } from 'vue'\r\n\r\nexport type FlDatePickerValue = string | number | Date | string[] | number[] | Date[] | null\r\n\r\nexport const flDatePickerProps = {\r\n /**\r\n * Bound value. Keeps the wrapper on explicit v-model contract.\r\n */\r\n modelValue: {\r\n type: [String, Number, Date, Array] as PropType<FlDatePickerValue>,\r\n default: null\r\n },\r\n /**\r\n * Whether the component is in error state.\r\n */\r\n isError: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * Whether the component is used in a table-cell context.\r\n */\r\n isTable: {\r\n type: Boolean,\r\n default: false\r\n }\r\n} as const\r\n\r\nexport const flDatePickerEmits = {\r\n /**\r\n * Model value update event.\r\n */\r\n 'update:modelValue': (_value: FlDatePickerValue) => true\r\n} as const\r\n\r\nexport type FlDatePickerProps = ExtractPublicPropTypes<typeof flDatePickerProps>\r\nexport type FlDatePickerEmits = typeof flDatePickerEmits\r\n\r\nexport type DatePickerProps = FlDatePickerProps\r\nexport type DatePickerEmits = FlDatePickerEmits\r\n","<template>\r\n <component :is=\"h(ElDatePicker, { ...mergedDatePickerAttrs, ref: changeRef }, slots)\" />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ElDatePicker } from 'element-plus'\r\nimport type { ComponentInstance } from 'vue'\r\nimport { computed, h, useAttrs, useSlots, watch } from 'vue'\r\nimport { useMergedAttrs, useMergedExpose } from '@falcon-ui/hooks'\r\nimport { flDatePickerEmits, flDatePickerProps } from './date-picker'\r\nimport type { FlDatePickerValue } from './date-picker'\r\n\r\ndefineOptions({\r\n name: 'FlDatePicker',\r\n inheritAttrs: false\r\n})\r\n\r\nconst props = defineProps(flDatePickerProps)\r\nconst emit = defineEmits(flDatePickerEmits)\r\nconst attrs = useAttrs()\r\nconst slots = useSlots()\r\nconst rawAttrs = attrs as Record<string, unknown>\r\n\r\nconst { changeRef } = useMergedExpose({})\r\nconst { mergedAttrs } = useMergedAttrs({\r\n attrs: rawAttrs,\r\n block: 'date-picker',\r\n listenerName: 'onChange'\r\n})\r\n\r\nconst updateModelValue = (value: FlDatePickerValue) => {\r\n if (props.isError) {\r\n emit('update:modelValue', null)\r\n return\r\n }\r\n\r\n emit('update:modelValue', value)\r\n}\r\n\r\nconst mergedDatePickerAttrs = computed(() => ({\r\n ...mergedAttrs.value,\r\n modelValue: props.modelValue,\r\n 'onUpdate:modelValue': updateModelValue,\r\n class: [mergedAttrs.value.class, { 'is-error': props.isError, 'is-table': props.isTable }]\r\n}))\r\n\r\nconst clearModelValue = () => {\r\n emit('update:modelValue', null)\r\n}\r\n\r\nwatch(\r\n () => props.isError,\r\n (isError, previousIsError) => {\r\n if (isError && previousIsError !== true) {\r\n clearModelValue()\r\n }\r\n },\r\n { immediate: true }\r\n)\r\n\r\ndefineExpose({} as ComponentInstance<typeof ElDatePicker>)\r\n</script>\r\n","<template>\r\n <component :is=\"h(ElDatePicker, { ...mergedDatePickerAttrs, ref: changeRef }, slots)\" />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ElDatePicker } from 'element-plus'\r\nimport type { ComponentInstance } from 'vue'\r\nimport { computed, h, useAttrs, useSlots, watch } from 'vue'\r\nimport { useMergedAttrs, useMergedExpose } from '@falcon-ui/hooks'\r\nimport { flDatePickerEmits, flDatePickerProps } from './date-picker'\r\nimport type { FlDatePickerValue } from './date-picker'\r\n\r\ndefineOptions({\r\n name: 'FlDatePicker',\r\n inheritAttrs: false\r\n})\r\n\r\nconst props = defineProps(flDatePickerProps)\r\nconst emit = defineEmits(flDatePickerEmits)\r\nconst attrs = useAttrs()\r\nconst slots = useSlots()\r\nconst rawAttrs = attrs as Record<string, unknown>\r\n\r\nconst { changeRef } = useMergedExpose({})\r\nconst { mergedAttrs } = useMergedAttrs({\r\n attrs: rawAttrs,\r\n block: 'date-picker',\r\n listenerName: 'onChange'\r\n})\r\n\r\nconst updateModelValue = (value: FlDatePickerValue) => {\r\n if (props.isError) {\r\n emit('update:modelValue', null)\r\n return\r\n }\r\n\r\n emit('update:modelValue', value)\r\n}\r\n\r\nconst mergedDatePickerAttrs = computed(() => ({\r\n ...mergedAttrs.value,\r\n modelValue: props.modelValue,\r\n 'onUpdate:modelValue': updateModelValue,\r\n class: [mergedAttrs.value.class, { 'is-error': props.isError, 'is-table': props.isTable }]\r\n}))\r\n\r\nconst clearModelValue = () => {\r\n emit('update:modelValue', null)\r\n}\r\n\r\nwatch(\r\n () => props.isError,\r\n (isError, previousIsError) => {\r\n if (isError && previousIsError !== true) {\r\n clearModelValue()\r\n }\r\n },\r\n { immediate: true }\r\n)\r\n\r\ndefineExpose({} as ComponentInstance<typeof ElDatePicker>)\r\n</script>\r\n"],"mappings":"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"}