neko-ui 2.7.0 → 2.7.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 (217) hide show
  1. package/CHANGELOG.md +17 -5
  2. package/es/@moneko/coverage/index.js.map +1 -1
  3. package/es/@moneko/info/index.js.map +1 -1
  4. package/es/@moneko/locales/index.js.map +1 -1
  5. package/es/@moneko/routes/index.js.map +1 -1
  6. package/es/avatar/group.js.map +1 -1
  7. package/es/avatar/index.js.map +1 -1
  8. package/es/avatar/style.js.map +1 -1
  9. package/es/back-top/index.js.map +1 -1
  10. package/es/back-top/style.js.map +1 -1
  11. package/es/basic-config/index.js.map +1 -1
  12. package/es/button/index.js.map +1 -1
  13. package/es/button/style.js.map +1 -1
  14. package/es/capture-screen/index.js.map +1 -1
  15. package/es/capture-screen/style.js.map +1 -1
  16. package/es/carousel/index.js.map +1 -1
  17. package/es/carousel/style.js.map +1 -1
  18. package/es/checkbox/index.js.map +1 -1
  19. package/es/checkbox/style.js.map +1 -1
  20. package/es/code/index.js +1 -1
  21. package/es/code/index.js.map +1 -1
  22. package/es/code/style.js.map +1 -1
  23. package/es/code/worker.js +1 -1
  24. package/es/code/worker.js.map +1 -1
  25. package/es/color-palette/index.js.map +1 -1
  26. package/es/color-palette/style.js.map +1 -1
  27. package/es/color-picker/index.js.map +1 -1
  28. package/es/color-picker/style.js.map +1 -1
  29. package/es/cron/begin-interval.js.map +1 -1
  30. package/es/cron/day.js.map +1 -1
  31. package/es/cron/hour.js.map +1 -1
  32. package/es/cron/index.js.map +1 -1
  33. package/es/cron/item.js.map +1 -1
  34. package/es/cron/minute.js.map +1 -1
  35. package/es/cron/month.js.map +1 -1
  36. package/es/cron/period.js.map +1 -1
  37. package/es/cron/second.js.map +1 -1
  38. package/es/cron/some.js.map +1 -1
  39. package/es/cron/style.js.map +1 -1
  40. package/es/cron/week.js.map +1 -1
  41. package/es/cron/year.js.map +1 -1
  42. package/es/date-picker/date.js.map +1 -1
  43. package/es/date-picker/dayjs.js.map +1 -1
  44. package/es/date-picker/index.js.map +1 -1
  45. package/es/date-picker/month.js.map +1 -1
  46. package/es/date-picker/panel.js.map +1 -1
  47. package/es/date-picker/style.js.map +1 -1
  48. package/es/date-picker/time.js.map +1 -1
  49. package/es/date-picker/year.js.map +1 -1
  50. package/es/dropdown/index.js.map +1 -1
  51. package/es/empty/index.js.map +1 -1
  52. package/es/from-schema/index.js.map +1 -1
  53. package/es/get-options/index.js.map +1 -1
  54. package/es/highlight-text/index.js.map +1 -1
  55. package/es/img/index.js.map +1 -1
  56. package/es/img/style.js.map +1 -1
  57. package/es/index.js.map +1 -1
  58. package/es/input/index.js.map +1 -1
  59. package/es/input/style.js.map +1 -1
  60. package/es/input-number/index.js.map +1 -1
  61. package/es/katex/index.js.map +1 -1
  62. package/es/md/index.js +1 -1
  63. package/es/md/index.js.map +1 -1
  64. package/es/md/worker.js.map +1 -1
  65. package/es/md-style/index.js.map +1 -1
  66. package/es/menu/index.js.map +1 -1
  67. package/es/menu/style.js.map +1 -1
  68. package/es/modal/hooks.js.map +1 -1
  69. package/es/modal/index.js.map +1 -1
  70. package/es/modal/store.js.map +1 -1
  71. package/es/modal/style.js.map +1 -1
  72. package/es/notification/index.js.map +1 -1
  73. package/es/notification/notification.js.map +1 -1
  74. package/es/notification/queque.js.map +1 -1
  75. package/es/notification/styles.js.map +1 -1
  76. package/es/pagination/index.js.map +1 -1
  77. package/es/pagination/styles.js.map +1 -1
  78. package/es/popover/index.js.map +1 -1
  79. package/es/popover/style.js.map +1 -1
  80. package/es/prism/css.js.map +1 -1
  81. package/es/prism/prism.js +1 -1
  82. package/es/prism/prism.js.map +1 -1
  83. package/es/provider/index.js.map +1 -1
  84. package/es/radio/index.js.map +1 -1
  85. package/es/radio/style.js.map +1 -1
  86. package/es/segmented/index.js.map +1 -1
  87. package/es/segmented/style.js.map +1 -1
  88. package/es/select/index.js.map +1 -1
  89. package/es/select/style.js.map +1 -1
  90. package/es/skeleton/index.js.map +1 -1
  91. package/es/spin/index.js.map +1 -1
  92. package/es/switch/index.js.map +1 -1
  93. package/es/switch/style.js.map +1 -1
  94. package/es/table/index.js.map +1 -1
  95. package/es/table/styles.js.map +1 -1
  96. package/es/tabs/index.js.map +1 -1
  97. package/es/tabs/style.js.map +1 -1
  98. package/es/tag/index.js.map +1 -1
  99. package/es/tag/style.js.map +1 -1
  100. package/es/theme/index.js.map +1 -1
  101. package/es/tree/index.js.map +1 -1
  102. package/es/tree/register.js.map +1 -1
  103. package/es/tree/style.js.map +1 -1
  104. package/es/tree/type.js.map +1 -1
  105. package/es/typography/index.js.map +1 -1
  106. package/lib/@moneko/coverage/index.js.map +1 -1
  107. package/lib/@moneko/info/index.js.map +1 -1
  108. package/lib/@moneko/locales/index.js.map +1 -1
  109. package/lib/@moneko/routes/index.js.map +1 -1
  110. package/lib/avatar/group.js.map +1 -1
  111. package/lib/avatar/index.js.map +1 -1
  112. package/lib/avatar/style.js.map +1 -1
  113. package/lib/back-top/index.js.map +1 -1
  114. package/lib/back-top/style.js.map +1 -1
  115. package/lib/basic-config/index.js.map +1 -1
  116. package/lib/button/index.js.map +1 -1
  117. package/lib/button/style.js.map +1 -1
  118. package/lib/capture-screen/index.js.map +1 -1
  119. package/lib/capture-screen/style.js.map +1 -1
  120. package/lib/carousel/index.js.map +1 -1
  121. package/lib/carousel/style.js.map +1 -1
  122. package/lib/checkbox/index.js.map +1 -1
  123. package/lib/checkbox/style.js.map +1 -1
  124. package/lib/code/index.js +1 -1
  125. package/lib/code/index.js.map +1 -1
  126. package/lib/code/style.js.map +1 -1
  127. package/lib/code/worker.js +1 -1
  128. package/lib/code/worker.js.map +1 -1
  129. package/lib/color-palette/index.js.map +1 -1
  130. package/lib/color-palette/style.js.map +1 -1
  131. package/lib/color-picker/index.js +1 -1
  132. package/lib/color-picker/index.js.map +1 -1
  133. package/lib/color-picker/style.js.map +1 -1
  134. package/lib/cron/begin-interval.js.map +1 -1
  135. package/lib/cron/day.js.map +1 -1
  136. package/lib/cron/hour.js.map +1 -1
  137. package/lib/cron/index.js.map +1 -1
  138. package/lib/cron/item.js.map +1 -1
  139. package/lib/cron/minute.js.map +1 -1
  140. package/lib/cron/month.js.map +1 -1
  141. package/lib/cron/period.js.map +1 -1
  142. package/lib/cron/second.js.map +1 -1
  143. package/lib/cron/some.js.map +1 -1
  144. package/lib/cron/style.js.map +1 -1
  145. package/lib/cron/week.js.map +1 -1
  146. package/lib/cron/year.js.map +1 -1
  147. package/lib/date-picker/date.js.map +1 -1
  148. package/lib/date-picker/dayjs.js.map +1 -1
  149. package/lib/date-picker/index.js +1 -1
  150. package/lib/date-picker/index.js.map +1 -1
  151. package/lib/date-picker/month.js.map +1 -1
  152. package/lib/date-picker/panel.js.map +1 -1
  153. package/lib/date-picker/style.js.map +1 -1
  154. package/lib/date-picker/time.js.map +1 -1
  155. package/lib/date-picker/year.js.map +1 -1
  156. package/lib/dropdown/index.js +1 -1
  157. package/lib/dropdown/index.js.map +1 -1
  158. package/lib/empty/index.js.map +1 -1
  159. package/lib/from-schema/index.js.map +1 -1
  160. package/lib/get-options/index.js.map +1 -1
  161. package/lib/highlight-text/index.js.map +1 -1
  162. package/lib/img/index.js.map +1 -1
  163. package/lib/img/style.js.map +1 -1
  164. package/lib/index.js.map +1 -1
  165. package/lib/input/index.js.map +1 -1
  166. package/lib/input/style.js.map +1 -1
  167. package/lib/input-number/index.js +1 -1
  168. package/lib/input-number/index.js.map +1 -1
  169. package/lib/katex/index.js.map +1 -1
  170. package/lib/md/index.js +1 -1
  171. package/lib/md/index.js.map +1 -1
  172. package/lib/md/worker.js.map +1 -1
  173. package/lib/md-style/index.js.map +1 -1
  174. package/lib/menu/index.js.map +1 -1
  175. package/lib/menu/style.js.map +1 -1
  176. package/lib/modal/hooks.js.map +1 -1
  177. package/lib/modal/index.js.map +1 -1
  178. package/lib/modal/store.js.map +1 -1
  179. package/lib/modal/style.js.map +1 -1
  180. package/lib/notification/index.js.map +1 -1
  181. package/lib/notification/notification.js.map +1 -1
  182. package/lib/notification/queque.js.map +1 -1
  183. package/lib/notification/styles.js.map +1 -1
  184. package/lib/pagination/index.js.map +1 -1
  185. package/lib/pagination/styles.js.map +1 -1
  186. package/lib/popover/index.js.map +1 -1
  187. package/lib/popover/style.js.map +1 -1
  188. package/lib/prism/css.js.map +1 -1
  189. package/lib/prism/prism.js +1 -1
  190. package/lib/prism/prism.js.map +1 -1
  191. package/lib/provider/index.js.map +1 -1
  192. package/lib/radio/index.js.map +1 -1
  193. package/lib/radio/style.js.map +1 -1
  194. package/lib/segmented/index.js.map +1 -1
  195. package/lib/segmented/style.js.map +1 -1
  196. package/lib/select/index.js +1 -1
  197. package/lib/select/index.js.map +1 -1
  198. package/lib/select/style.js.map +1 -1
  199. package/lib/skeleton/index.js.map +1 -1
  200. package/lib/spin/index.js.map +1 -1
  201. package/lib/switch/index.js.map +1 -1
  202. package/lib/switch/style.js.map +1 -1
  203. package/lib/table/index.js.map +1 -1
  204. package/lib/table/styles.js.map +1 -1
  205. package/lib/tabs/index.js.map +1 -1
  206. package/lib/tabs/style.js.map +1 -1
  207. package/lib/tag/index.js +2 -2
  208. package/lib/tag/index.js.map +1 -1
  209. package/lib/tag/style.js.map +1 -1
  210. package/lib/theme/index.js.map +1 -1
  211. package/lib/tree/index.js.map +1 -1
  212. package/lib/tree/register.js.map +1 -1
  213. package/lib/tree/style.js.map +1 -1
  214. package/lib/tree/type.js.map +1 -1
  215. package/lib/typography/index.js.map +1 -1
  216. package/package.json +22 -22
  217. package/umd/index.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import { Show, createComponent, createEffect, createSignal, mergeProps, untrack } from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport prismCss from '../prism/css';\nimport '../prism/prism.js';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言 */\n lang?: string;\n /** 显示代码行号 */\n lineNumber?: boolean;\n /** 支持编辑 */\n edit?: boolean;\n /** 开启代码块工具条 */\n toolbar?: boolean;\n /** 编辑修改时的回调 */\n onChange?: (code: string) => void;\n children?: JSX.Element;\n}\n\nexport type CodeElement = CustomElement<CodeProps>;\n\nfunction Code(props: CodeProps) {\n const { baseStyle } = theme;\n let codeEl: HTMLPreElement;\n const [code, setCode] = createSignal<string>('');\n const [hei, setHei] = createSignal(20);\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n function pre() {\n return (\n <pre\n class={cx(\n `language-${props.lang}`,\n props.lineNumber && 'line-numbers',\n !props.toolbar && 'not-toolbar',\n !props.edit && props.class,\n )}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-lang={props.lang?.split(' ')[0]}>\n <button class=\"toolbar-copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl} class={`language-${props.lang}`} />\n </pre>\n );\n }\n function change({ target }: { target: HTMLTextAreaElement }) {\n const c = `${target.value}${/\\n$/.test(target.value) ? '\\u200b' : ''}`;\n\n setCode(c);\n if (isFunction(props.onChange)) {\n props.onChange(c);\n }\n }\n function update(e: { data: string }) {\n codeEl.innerHTML = e.data;\n setHei(codeEl.getBoundingClientRect().height - (props.toolbar ? 40 : 16));\n }\n function postMessage(opt: { lang?: string; code?: string }) {\n if (!opt.code) return;\n const _lang = opt.lang || 'markup';\n\n if (/^diff-([\\w-]+)/i.test(_lang)) {\n window.Prism.languages[_lang] = window.Prism.languages.diff;\n }\n update({\n data: window.Prism.highlight(opt.code, window.Prism.languages[_lang], _lang),\n });\n }\n\n // const work = new Worker(new URL(\"./worker.ts\", import.meta.url), {\n // name: \"wastedTime\",\n // /* webpackEntryOptions: { filename: \"workers/[name].js\" } */\n // });\n // work.addEventListener('message', update);\n\n // work.postMessage({\n // lang: props.lang,\n // code: code(),\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n if (props.code) {\n const _code = props.code.replace(/^\\n/, '');\n\n try {\n setCode(decodeURIComponent(_code));\n } catch (error) {\n setCode(_code);\n }\n } else {\n setCode('');\n }\n });\n createEffect(() => {\n postMessage({\n lang: props.lang,\n code: code(),\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {prismCss()}\n {style}\n {css(props.css)}\n </style>\n <Show when={props.edit} fallback={pre()}>\n <div class={cx('n-editor', props.class)}>\n <textarea\n value={code()}\n class={cx(props.lineNumber && 'line-numbers', !props.toolbar && 'not-toolbar')}\n style={{ height: `${hei()}px` }}\n onInput={change}\n />\n {pre()}\n </div>\n </Show>\n </>\n );\n}\n\ncustomElement<CodeProps>(\n 'n-code',\n {\n class: void 0,\n code: void 0,\n lang: void 0,\n children: void 0,\n edit: void 0,\n toolbar: void 0,\n css: void 0,\n lineNumber: void 0,\n onChange: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n code: el.textContent,\n css: el.css,\n onChange(val: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.replaceChildren();\n el.removeAttribute('css');\n });\n\n return createComponent(Code, props);\n },\n);\nexport default Code;\n"],"names":["Show","createComponent","createEffect","createSignal","mergeProps","untrack","isFunction","setClipboard","css","cx","customElement","style","prismCss","theme","Code","props","codeEl","baseStyle","code","setCode","hei","setHei","copy","pre","toolbar","lang","split","lineNumber","edit","class","change","target","c","value","test","onChange","_code","replace","decodeURIComponent","error","postMessage","opt","e","_lang","window","Prism","languages","diff","data","highlight","innerHTML","getBoundingClientRect","height","children","_","el","element","textContent","val","dispatchEvent","CustomEvent","detail","replaceChildren","removeAttribute"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import { Show, createComponent, createEffect, createSignal, mergeProps, untrack } from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport prismCss from '../prism/css';\nimport '../prism/prism.js';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言 */\n lang?: string;\n /** 显示代码行号 */\n lineNumber?: boolean;\n /** 支持编辑 */\n edit?: boolean;\n /** 开启代码块工具条 */\n toolbar?: boolean;\n /** 编辑修改时的回调 */\n onChange?: (code: string) => void;\n children?: JSX.Element;\n}\n\nexport type CodeElement = CustomElement<CodeProps>;\n\nfunction Code(props: CodeProps) {\n const { baseStyle } = theme;\n let codeEl: HTMLPreElement;\n const [code, setCode] = createSignal<string>('');\n const [hei, setHei] = createSignal(20);\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n function pre() {\n return (\n <pre\n class={cx(\n `language-${props.lang}`,\n props.lineNumber && 'line-numbers',\n !props.toolbar && 'not-toolbar',\n !props.edit && props.class,\n )}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-lang={props.lang?.split(' ')[0]}>\n <button class=\"toolbar-copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl} class={`language-${props.lang}`} />\n </pre>\n );\n }\n function change({ target }: { target: HTMLTextAreaElement }) {\n const c = `${target.value}${/\\n$/.test(target.value) ? '\\u200b' : ''}`;\n\n setCode(c);\n if (isFunction(props.onChange)) {\n props.onChange(c);\n }\n }\n function update(e: { data: string }) {\n codeEl.innerHTML = e.data;\n setHei(codeEl.getBoundingClientRect().height - (props.toolbar ? 40 : 16));\n }\n function postMessage(opt: { lang?: string; code?: string }) {\n if (!opt.code) return;\n const _lang = opt.lang || 'markup';\n\n if (/^diff-([\\w-]+)/i.test(_lang)) {\n window.Prism.languages[_lang] = window.Prism.languages.diff;\n }\n const language = window.Prism.languages[_lang] || window.Prism.languages.markup;\n\n update({\n data: window.Prism.highlight(opt.code, language, _lang),\n });\n }\n\n // const work = new Worker(new URL(\"./worker.ts\", import.meta.url), {\n // name: \"wastedTime\",\n // /* webpackEntryOptions: { filename: \"workers/[name].js\" } */\n // });\n // work.addEventListener('message', update);\n\n // work.postMessage({\n // lang: props.lang,\n // code: code(),\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n if (props.code) {\n const _code = props.code.replace(/^\\n/, '');\n\n try {\n setCode(decodeURIComponent(_code));\n } catch (error) {\n setCode(_code);\n }\n } else {\n setCode('');\n }\n });\n createEffect(() => {\n postMessage({\n lang: props.lang,\n code: code(),\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {prismCss()}\n {style}\n {css(props.css)}\n </style>\n <Show when={props.edit} fallback={pre()}>\n <div class={cx('n-editor', props.class)}>\n <textarea\n value={code()}\n class={cx(props.lineNumber && 'line-numbers', !props.toolbar && 'not-toolbar')}\n style={{ height: `${hei()}px` }}\n onInput={change}\n />\n {pre()}\n </div>\n </Show>\n </>\n );\n}\n\ncustomElement<CodeProps>(\n 'n-code',\n {\n class: void 0,\n code: void 0,\n lang: void 0,\n children: void 0,\n edit: void 0,\n toolbar: void 0,\n css: void 0,\n lineNumber: void 0,\n onChange: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n code: el.textContent,\n css: el.css,\n onChange(val: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.replaceChildren();\n el.removeAttribute('css');\n });\n\n return createComponent(Code, props);\n },\n);\nexport default Code;\n"],"names":["Show","createComponent","createEffect","createSignal","mergeProps","untrack","isFunction","setClipboard","css","cx","customElement","style","prismCss","theme","Code","props","codeEl","baseStyle","code","setCode","hei","setHei","copy","pre","toolbar","lang","split","lineNumber","edit","class","change","target","c","value","test","onChange","_code","replace","decodeURIComponent","error","postMessage","opt","e","_lang","window","Prism","languages","diff","language","markup","data","highlight","innerHTML","getBoundingClientRect","height","children","_","el","element","textContent","val","dispatchEvent","CustomEvent","detail","replaceChildren","removeAttribute"],"rangeMappings":"","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/code/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .not-toolbar code {\n padding-block-start: 8px !important;\n\n .line-numbers-rows {\n padding-block-start: 8px !important;\n }\n }\n\n .n-editor {\n --font-size: 13px;\n\n margin-block-start: 0;\n position: relative;\n\n textarea {\n position: absolute;\n z-index: 1;\n margin: 0;\n border: none;\n padding: 0;\n font-size: var(--font-size);\n white-space: inherit;\n color: transparent;\n background-color: transparent;\n outline: none;\n resize: none;\n box-sizing: border-box;\n inset-block: 32px 8px;\n inset-inline: 16px 16px;\n min-block-size: 64px;\n caret-color: var(--text-color);\n block-size: fit-content;\n line-height: inherit !important;\n\n &.line-numbers {\n inset-inline: 54px 10px;\n }\n\n &.not-toolbar {\n inset-block-start: 8px;\n min-block-size: 20px;\n }\n }\n\n pre {\n margin-block-start: 0 !important;\n pointer-events: none;\n inline-size: 100%;\n block-size: 100%;\n min-block-size: 65px;\n line-height: inherit !important;\n\n &.not-toolbar {\n min-block-size: 36px;\n }\n\n .toolbar {\n pointer-events: all;\n }\n\n code {\n line-height: inherit !important;\n }\n }\n }\n`;\n"],"names":["css","style"],"mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEzB,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../components/code/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .not-toolbar code {\n padding-block-start: 8px !important;\n\n .line-numbers-rows {\n padding-block-start: 8px !important;\n }\n }\n\n .n-editor {\n --font-size: 13px;\n\n margin-block-start: 0;\n position: relative;\n\n textarea {\n position: absolute;\n z-index: 1;\n margin: 0;\n border: none;\n padding: 0;\n font-size: var(--font-size);\n white-space: inherit;\n color: transparent;\n background-color: transparent;\n outline: none;\n resize: none;\n box-sizing: border-box;\n inset-block: 32px 8px;\n inset-inline: 16px 16px;\n min-block-size: 64px;\n caret-color: var(--text-color);\n block-size: fit-content;\n line-height: inherit !important;\n\n &.line-numbers {\n inset-inline: 54px 10px;\n }\n\n &.not-toolbar {\n inset-block-start: 8px;\n min-block-size: 20px;\n }\n }\n\n pre {\n margin-block-start: 0 !important;\n pointer-events: none;\n inline-size: 100%;\n block-size: 100%;\n min-block-size: 65px;\n line-height: inherit !important;\n\n &.not-toolbar {\n min-block-size: 36px;\n }\n\n .toolbar {\n pointer-events: all;\n }\n\n code {\n line-height: inherit !important;\n }\n }\n }\n`;\n"],"names":["css","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEzB,CAAC,AAAC"}
package/es/code/worker.js CHANGED
@@ -1,2 +1,2 @@
1
- self.Prism={disableWorkerMessageHandler:!0,languages:{},highlight:s=>s},self.importScripts(new URL("../prism/prism.js",import.meta.url).toString()),self.addEventListener("message",function(s){let e;try{let{code:i,lang:l}=s.data;e=self.Prism.highlight&&self.Prism.languages?self.Prism.highlight(i,self.Prism.languages[l],l):i}catch(s){e=s}self.postMessage(e)},!1);
1
+ self.Prism={disableWorkerMessageHandler:!0,languages:{},highlight:s=>s},self.importScripts(new URL("../prism/prism.js",import.meta.url).toString()),self.addEventListener("message",function(s){let e;try{let{code:i,lang:l}=s.data;self.Prism.highlight&&self.Prism.languages?e=self.Prism.highlight(i,self.Prism.languages[l],l):e=i}catch(s){e=s}self.postMessage(e)},!1);
2
2
  //# sourceMappingURL=worker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/code/worker.ts"],"sourcesContent":["self.Prism = {\n disableWorkerMessageHandler: true,\n languages: {},\n highlight(code) {\n return code;\n },\n};\nself.importScripts(new URL('../prism/prism.js', import.meta.url).toString());\nself.addEventListener(\n 'message',\n function (e) {\n let result;\n\n try {\n const { code, lang } = e.data;\n\n if (self.Prism.highlight && self.Prism.languages) {\n result = self.Prism.highlight(code, self.Prism.languages[lang], lang);\n } else {\n result = code;\n }\n } catch (error) {\n result = error;\n }\n self.postMessage(result); // 向主线程发送消息\n },\n false,\n);\n"],"names":["self","Prism","disableWorkerMessageHandler","languages","highlight","code","importScripts","URL","url","toString","addEventListener","e","result","lang","data","error","postMessage"],"mappings":"AAAAA,KAAKC,KAAK,CAAG,CACXC,4BAA6B,CAAA,EAC7BC,UAAW,CAAC,EACZC,UAAAA,AAAUC,GACDA,CAEX,EACAL,KAAKM,aAAa,CAAC,IAAIC,IAAI,oBAAqB,YAAYC,GAAG,EAAEC,QAAQ,IACzET,KAAKU,gBAAgB,CACnB,UACA,SAAUC,CAAC,EACT,IAAIC,EAEJ,GAAI,CACF,GAAM,CAAEP,KAAAA,CAAI,CAAEQ,KAAAA,CAAI,CAAE,CAAGF,EAAEG,IAAI,CAG3BF,EADEZ,KAAKC,KAAK,CAACG,SAAS,EAAIJ,KAAKC,KAAK,CAACE,SAAS,CACrCH,KAAKC,KAAK,CAACG,SAAS,CAACC,EAAML,KAAKC,KAAK,CAACE,SAAS,CAACU,EAAK,CAAEA,GAEvDR,CAEb,CAAE,MAAOU,EAAO,CACdH,EAASG,CACX,CACAf,KAAKgB,WAAW,CAACJ,EACnB,EACA,CAAA"}
1
+ {"version":3,"sources":["../../components/code/worker.ts"],"sourcesContent":["self.Prism = {\n disableWorkerMessageHandler: true,\n languages: {},\n highlight(code) {\n return code;\n },\n};\nself.importScripts(new URL('../prism/prism.js', import.meta.url).toString());\nself.addEventListener(\n 'message',\n function (e) {\n let result;\n\n try {\n const { code, lang } = e.data;\n\n if (self.Prism.highlight && self.Prism.languages) {\n result = self.Prism.highlight(code, self.Prism.languages[lang], lang);\n } else {\n result = code;\n }\n } catch (error) {\n result = error;\n }\n self.postMessage(result); // 向主线程发送消息\n },\n false,\n);\n"],"names":["self","Prism","disableWorkerMessageHandler","languages","highlight","code","importScripts","URL","url","toString","addEventListener","e","result","lang","data","error","postMessage"],"rangeMappings":"","mappings":"AAAAA,KAAKC,KAAK,CAAG,CACXC,4BAA6B,CAAA,EAC7BC,UAAW,CAAC,EACZC,UAAAA,AAAUC,GACDA,CAEX,EACAL,KAAKM,aAAa,CAAC,IAAIC,IAAI,oBAAqB,YAAYC,GAAG,EAAEC,QAAQ,IACzET,KAAKU,gBAAgB,CACnB,UACA,SAAUC,CAAC,EACT,IAAIC,EAEJ,GAAI,CACF,GAAM,CAAEP,KAAAA,CAAI,CAAEQ,KAAAA,CAAI,CAAE,CAAGF,EAAEG,IAAI,AAEzBd,CAAAA,KAAKC,KAAK,CAACG,SAAS,EAAIJ,KAAKC,KAAK,CAACE,SAAS,CAC9CS,EAASZ,KAAKC,KAAK,CAACG,SAAS,CAACC,EAAML,KAAKC,KAAK,CAACE,SAAS,CAACU,EAAK,CAAEA,GAEhED,EAASP,CAEb,CAAE,MAAOU,EAAO,CACdH,EAASG,CACX,CACAf,KAAKgB,WAAW,CAACJ,EACnB,EACA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/color-palette/index.tsx"],"sourcesContent":["import {\n For,\n Index,\n Show,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n untrack,\n} from 'solid-js';\nimport {\n type ColorParse,\n type ColorType,\n type HSVA,\n colorParse,\n isFunction,\n passiveSupported,\n setClipboard,\n throttle,\n} from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style, switchCss } from './style';\nimport '../dropdown';\nimport '../input';\nimport '../input-number';\nimport theme from '../theme';\nimport type { CustomElement, InputNumberProps } from '..';\n\nexport interface ColorPaletteProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 颜色值 */\n value?: string;\n /** 默认值\n * @default '#5794ff'\n */\n defaultValue?: string;\n /** 变更时触发的方法 */\n onChange?: (color: string) => void;\n}\nexport type ColorPaletteElement = CustomElement<ColorPaletteProps>;\n\nfunction ColorPalette(_: ColorPaletteProps) {\n const { baseStyle } = theme;\n const props = mergeProps({ defaultValue: '#5794ff' }, _);\n let picker: HTMLDivElement | undefined;\n const types = [\n { label: 'RGBA', value: 'rgba', handleClosed: false },\n { label: 'HSLA', value: 'hsla', handleClosed: false },\n { label: 'HEXA', value: 'hexa', handleClosed: false },\n ];\n const material = [\n '#f44336',\n '#E91E63',\n '#9C27B0',\n '#673AB7',\n '#3F51B5',\n '#2196F3',\n '#00BCD4',\n '#009688',\n '#4CAF50',\n '#CDDC39',\n '#FF9800',\n '#795548',\n '#607D8B',\n ];\n const inputProps: InputNumberProps = {\n class: 'input',\n size: 'small',\n css: '.input{text-align:center;font-size:12px;}',\n };\n const [hsva, setHsva] = createSignal<ColorParse<HSVA>>(\n // eslint-disable-next-line solid/reactivity\n colorParse(props.value || props.defaultValue),\n );\n const [drag, setDrag] = createSignal(false);\n\n type HsvaToColorVoid = 'toHexa' | 'toRgba' | 'toHsla' | 'toCmyk' | 'toHsva';\n\n function formatterOpacity(v?: number | string) {\n return v ? Number(((v as number) * 100).toFixed()) : v;\n }\n function parseOpacity(v?: string | number) {\n let _val = v;\n\n if (typeof v === 'string') {\n _val = v.replace(/[^\\d]/g, '');\n }\n return (_val as number) / 100;\n }\n function capFirst(str: string) {\n return `to${str[0].toUpperCase() + str.slice(1)}` as HsvaToColorVoid;\n }\n const color = createMemo(() => {\n const s = hsva();\n const c = s[capFirst(s.type)]();\n\n if (isFunction(props.onChange) && c.toString() !== props.value) {\n props.onChange(c.toString());\n }\n return c;\n });\n\n function setColor(c = props.defaultValue) {\n if (untrack(color).toString() !== c) {\n setHsva(colorParse(c as string));\n }\n }\n function handleHexa(e: CustomEvent) {\n if (e.target) {\n (e.target as HTMLInputElement).value = e.detail;\n }\n }\n function handleHexaBlur(e: FocusEvent & { target: { value: string } }) {\n if (e.target?.value) {\n setColor(e.target.value);\n }\n }\n function handleHexaEnter(e: KeyboardEvent & { target: { value: string } }) {\n if (e.key === 'Enter' && typeof e.target?.value === 'string') {\n setColor(e.target.value);\n }\n }\n function changeColor(ev: MouseEvent) {\n if (picker) {\n const { x, y, width, height } = picker.getBoundingClientRect();\n const prev = untrack(hsva);\n const next = prev.value;\n\n next[1] = Math.floor(Math.min(Math.max(0, ((ev.clientX - x) / width) * 100), 100));\n next[2] = Math.floor(100 - Math.min(Math.max(0, ((ev.clientY - y) / height) * 100), 100));\n\n setHsva({ ...prev, value: next });\n }\n }\n\n function handleChange(i: number, v?: number, t?: ColorType) {\n if (typeof v === 'number') {\n const prev = untrack(hsva);\n const changeHsv = i === 3 || t === 'hsva';\n const next = changeHsv ? prev.value : (untrack(color) as HSVA);\n\n next[i] = v || 0;\n if (changeHsv) {\n setHsva({\n ...prev,\n value: next,\n });\n } else {\n setHsva(colorParse(next.toString()));\n }\n }\n }\n function mouseDown(e: MouseEvent) {\n setDrag(true);\n changeColor(e);\n }\n function mouseUp() {\n setDrag(false);\n }\n function handleSwitch(e: CustomEvent) {\n setHsva((prev) => ({\n ...prev,\n type: e.detail[0],\n }));\n }\n\n function copy(e: MouseEvent) {\n setClipboard(untrack(color).toString(), e.target as HTMLElement);\n }\n async function eyeDropper() {\n if (window.EyeDropper) {\n const res = await new window.EyeDropper().open();\n\n if (res.sRGBHex) {\n setColor(res.sRGBHex);\n }\n return;\n }\n }\n const colorVar = createMemo(() => {\n const h = hsva(),\n value = h.value;\n\n return `.palette {--c:${h.toRgbaString()};--h:${value[0]};--s:${value[1]};--v:${value[2]};--a:${\n value[3]\n };}`;\n });\n\n createEffect(() => {\n throttle(setColor, 8)(props.value);\n });\n\n createEffect(() => {\n if (drag()) {\n document.body.addEventListener('mousemove', changeColor, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n document.body.removeEventListener('mousemove', changeColor, false);\n });\n });\n onMount(() => {\n document.body.addEventListener('mouseup', mouseUp, {\n passive: passiveSupported,\n });\n });\n onCleanup(() => {\n document.body.removeEventListener('mouseup', mouseUp, false);\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {colorVar()}\n {css(props.css)}\n </style>\n <div class={cx('palette', props.class)}>\n <div ref={picker} class=\"picker\" onMouseDown={mouseDown} />\n <div class=\"chooser\">\n <div class=\"range\">\n <input\n class=\"slider hue\"\n min=\"0\"\n max=\"360\"\n type=\"range\"\n value={hsva().value[0]}\n onInput={(e) => handleChange(0, Number(e.target.value), 'hsva')}\n />\n <input\n class=\"slider opacity\"\n min=\"0\"\n max=\"1\"\n step=\"0.01\"\n type=\"range\"\n value={hsva().value[3]}\n onInput={(e) => handleChange(3, Number(e.target.value))}\n />\n </div>\n <div class=\"preview\" onClick={copy} />\n </div>\n <div class=\"form\">\n <Show\n when={hsva().type === 'hexa'}\n fallback={\n <>\n <Index each={color()}>\n {(n, i) => {\n const inp = Object.assign(\n {},\n inputProps,\n i === 3 && {\n step: 0.01,\n formatter: formatterOpacity,\n parse: parseOpacity,\n },\n );\n\n return (\n <n-input-number\n {...inp}\n value={n() as number}\n max={\n (\n untrack(color) as HSVA & {\n max: [360, 100, 100, 1];\n }\n ).max[i]\n }\n min={0}\n onChange={(e) => {\n handleChange(i, e.detail);\n }}\n />\n );\n }}\n </Index>\n </>\n }\n >\n <n-input\n {...inputProps}\n value={hsva().toHexaString()}\n onChange={handleHexa}\n onBlur={handleHexaBlur}\n onKeyUp={handleHexaEnter}\n />\n </Show>\n <n-dropdown\n css={switchCss}\n value={hsva().type}\n items={types}\n placement=\"right\"\n trigger=\"click\"\n onChange={handleSwitch}\n >\n <span class=\"switch\">{hsva().type}</span>\n </n-dropdown>\n </div>\n <div class=\"color\">\n <Show\n when={window.EyeDropper}\n fallback={\n <i\n style={{ '--c': 'rgba(168,16,16,0.15)' }}\n onClick={setColor.bind(null, 'rgba(168,16,16,0.15)')}\n />\n }\n >\n <i class=\"eye-dropper\" style={{ '--c': 'transparent' }} onClick={eyeDropper} />\n </Show>\n <For each={material}>\n {(c) => <i style={{ '--c': c }} onClick={setColor.bind(null, c)} />}\n </For>\n </div>\n </div>\n </>\n );\n}\n\nexport const defaultColorPaletteProps = {\n class: void 0,\n style: void 0,\n css: void 0,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n};\n\ncustomElement<ColorPaletteProps>('n-color-palette', defaultColorPaletteProps, (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(ColorPalette, props);\n});\n\nexport default ColorPalette;\n"],"names":["For","Index","Show","createComponent","createEffect","createMemo","createSignal","mergeProps","onCleanup","onMount","untrack","colorParse","isFunction","passiveSupported","setClipboard","throttle","css","cx","customElement","style","switchCss","theme","ColorPalette","_","picker","baseStyle","props","defaultValue","types","label","value","handleClosed","material","inputProps","class","size","hsva","setHsva","drag","setDrag","formatterOpacity","v","Number","toFixed","parseOpacity","_val","replace","color","str","s","c","type","toUpperCase","slice","onChange","toString","setColor","handleHexa","e","target","detail","handleHexaBlur","handleHexaEnter","key","changeColor","ev","x","y","width","height","getBoundingClientRect","prev","next","Math","floor","min","max","clientX","clientY","handleChange","i","t","changeHsv","mouseDown","mouseUp","handleSwitch","copy","eyeDropper","window","EyeDropper","res","open","sRGBHex","colorVar","h","toRgbaString","document","body","addEventListener","passive","removeEventListener","n","inp","Object","assign","step","formatter","parse","toHexaString","bind","defaultColorPaletteProps","opts","el","element","val","dispatchEvent","CustomEvent"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/color-palette/index.tsx"],"sourcesContent":["import {\n For,\n Index,\n Show,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n untrack,\n} from 'solid-js';\nimport {\n type ColorParse,\n type ColorType,\n type HSVA,\n colorParse,\n isFunction,\n passiveSupported,\n setClipboard,\n throttle,\n} from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style, switchCss } from './style';\nimport '../dropdown';\nimport '../input';\nimport '../input-number';\nimport theme from '../theme';\nimport type { CustomElement, InputNumberProps } from '..';\n\nexport interface ColorPaletteProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 颜色值 */\n value?: string;\n /** 默认值\n * @default '#5794ff'\n */\n defaultValue?: string;\n /** 变更时触发的方法 */\n onChange?: (color: string) => void;\n}\nexport type ColorPaletteElement = CustomElement<ColorPaletteProps>;\n\nfunction ColorPalette(_: ColorPaletteProps) {\n const { baseStyle } = theme;\n const props = mergeProps({ defaultValue: '#5794ff' }, _);\n let picker: HTMLDivElement | undefined;\n const types = [\n { label: 'RGBA', value: 'rgba', handleClosed: false },\n { label: 'HSLA', value: 'hsla', handleClosed: false },\n { label: 'HEXA', value: 'hexa', handleClosed: false },\n ];\n const material = [\n '#f44336',\n '#E91E63',\n '#9C27B0',\n '#673AB7',\n '#3F51B5',\n '#2196F3',\n '#00BCD4',\n '#009688',\n '#4CAF50',\n '#CDDC39',\n '#FF9800',\n '#795548',\n '#607D8B',\n ];\n const inputProps: InputNumberProps = {\n class: 'input',\n size: 'small',\n css: '.input{text-align:center;font-size:12px;}',\n };\n const [hsva, setHsva] = createSignal<ColorParse<HSVA>>(\n // eslint-disable-next-line solid/reactivity\n colorParse(props.value || props.defaultValue),\n );\n const [drag, setDrag] = createSignal(false);\n\n type HsvaToColorVoid = 'toHexa' | 'toRgba' | 'toHsla' | 'toCmyk' | 'toHsva';\n\n function formatterOpacity(v?: number | string) {\n return v ? Number(((v as number) * 100).toFixed()) : v;\n }\n function parseOpacity(v?: string | number) {\n let _val = v;\n\n if (typeof v === 'string') {\n _val = v.replace(/[^\\d]/g, '');\n }\n return (_val as number) / 100;\n }\n function capFirst(str: string) {\n return `to${str[0].toUpperCase() + str.slice(1)}` as HsvaToColorVoid;\n }\n const color = createMemo(() => {\n const s = hsva();\n const c = s[capFirst(s.type)]();\n\n if (isFunction(props.onChange) && c.toString() !== props.value) {\n props.onChange(c.toString());\n }\n return c;\n });\n\n function setColor(c = props.defaultValue) {\n if (untrack(color).toString() !== c) {\n setHsva(colorParse(c as string));\n }\n }\n function handleHexa(e: CustomEvent) {\n if (e.target) {\n (e.target as HTMLInputElement).value = e.detail;\n }\n }\n function handleHexaBlur(e: FocusEvent & { target: { value: string } }) {\n if (e.target?.value) {\n setColor(e.target.value);\n }\n }\n function handleHexaEnter(e: KeyboardEvent & { target: { value: string } }) {\n if (e.key === 'Enter' && typeof e.target?.value === 'string') {\n setColor(e.target.value);\n }\n }\n function changeColor(ev: MouseEvent) {\n if (picker) {\n const { x, y, width, height } = picker.getBoundingClientRect();\n const prev = untrack(hsva);\n const next = prev.value;\n\n next[1] = Math.floor(Math.min(Math.max(0, ((ev.clientX - x) / width) * 100), 100));\n next[2] = Math.floor(100 - Math.min(Math.max(0, ((ev.clientY - y) / height) * 100), 100));\n\n setHsva({ ...prev, value: next });\n }\n }\n\n function handleChange(i: number, v?: number, t?: ColorType) {\n if (typeof v === 'number') {\n const prev = untrack(hsva);\n const changeHsv = i === 3 || t === 'hsva';\n const next = changeHsv ? prev.value : (untrack(color) as HSVA);\n\n next[i] = v || 0;\n if (changeHsv) {\n setHsva({\n ...prev,\n value: next,\n });\n } else {\n setHsva(colorParse(next.toString()));\n }\n }\n }\n function mouseDown(e: MouseEvent) {\n setDrag(true);\n changeColor(e);\n }\n function mouseUp() {\n setDrag(false);\n }\n function handleSwitch(e: CustomEvent) {\n setHsva((prev) => ({\n ...prev,\n type: e.detail[0],\n }));\n }\n\n function copy(e: MouseEvent) {\n setClipboard(untrack(color).toString(), e.target as HTMLElement);\n }\n async function eyeDropper() {\n if (window.EyeDropper) {\n const res = await new window.EyeDropper().open();\n\n if (res.sRGBHex) {\n setColor(res.sRGBHex);\n }\n return;\n }\n }\n const colorVar = createMemo(() => {\n const h = hsva(),\n value = h.value;\n\n return `.palette {--c:${h.toRgbaString()};--h:${value[0]};--s:${value[1]};--v:${value[2]};--a:${\n value[3]\n };}`;\n });\n\n createEffect(() => {\n throttle(setColor, 8)(props.value);\n });\n\n createEffect(() => {\n if (drag()) {\n document.body.addEventListener('mousemove', changeColor, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n document.body.removeEventListener('mousemove', changeColor, false);\n });\n });\n onMount(() => {\n document.body.addEventListener('mouseup', mouseUp, {\n passive: passiveSupported,\n });\n });\n onCleanup(() => {\n document.body.removeEventListener('mouseup', mouseUp, false);\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {colorVar()}\n {css(props.css)}\n </style>\n <div class={cx('palette', props.class)}>\n <div ref={picker} class=\"picker\" onMouseDown={mouseDown} />\n <div class=\"chooser\">\n <div class=\"range\">\n <input\n class=\"slider hue\"\n min=\"0\"\n max=\"360\"\n type=\"range\"\n value={hsva().value[0]}\n onInput={(e) => handleChange(0, Number(e.target.value), 'hsva')}\n />\n <input\n class=\"slider opacity\"\n min=\"0\"\n max=\"1\"\n step=\"0.01\"\n type=\"range\"\n value={hsva().value[3]}\n onInput={(e) => handleChange(3, Number(e.target.value))}\n />\n </div>\n <div class=\"preview\" onClick={copy} />\n </div>\n <div class=\"form\">\n <Show\n when={hsva().type === 'hexa'}\n fallback={\n <>\n <Index each={color()}>\n {(n, i) => {\n const inp = Object.assign(\n {},\n inputProps,\n i === 3 && {\n step: 0.01,\n formatter: formatterOpacity,\n parse: parseOpacity,\n },\n );\n\n return (\n <n-input-number\n {...inp}\n value={n() as number}\n max={\n (\n untrack(color) as HSVA & {\n max: [360, 100, 100, 1];\n }\n ).max[i]\n }\n min={0}\n onChange={(e) => {\n handleChange(i, e.detail);\n }}\n />\n );\n }}\n </Index>\n </>\n }\n >\n <n-input\n {...inputProps}\n value={hsva().toHexaString()}\n onChange={handleHexa}\n onBlur={handleHexaBlur}\n onKeyUp={handleHexaEnter}\n />\n </Show>\n <n-dropdown\n css={switchCss}\n value={hsva().type}\n items={types}\n placement=\"right\"\n trigger=\"click\"\n onChange={handleSwitch}\n >\n <span class=\"switch\">{hsva().type}</span>\n </n-dropdown>\n </div>\n <div class=\"color\">\n <Show\n when={window.EyeDropper}\n fallback={\n <i\n style={{ '--c': 'rgba(168,16,16,0.15)' }}\n onClick={setColor.bind(null, 'rgba(168,16,16,0.15)')}\n />\n }\n >\n <i class=\"eye-dropper\" style={{ '--c': 'transparent' }} onClick={eyeDropper} />\n </Show>\n <For each={material}>\n {(c) => <i style={{ '--c': c }} onClick={setColor.bind(null, c)} />}\n </For>\n </div>\n </div>\n </>\n );\n}\n\nexport const defaultColorPaletteProps = {\n class: void 0,\n style: void 0,\n css: void 0,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n};\n\ncustomElement<ColorPaletteProps>('n-color-palette', defaultColorPaletteProps, (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(ColorPalette, props);\n});\n\nexport default ColorPalette;\n"],"names":["For","Index","Show","createComponent","createEffect","createMemo","createSignal","mergeProps","onCleanup","onMount","untrack","colorParse","isFunction","passiveSupported","setClipboard","throttle","css","cx","customElement","style","switchCss","theme","ColorPalette","_","picker","baseStyle","props","defaultValue","types","label","value","handleClosed","material","inputProps","class","size","hsva","setHsva","drag","setDrag","formatterOpacity","v","Number","toFixed","parseOpacity","_val","replace","color","str","s","c","type","toUpperCase","slice","onChange","toString","setColor","handleHexa","e","target","detail","handleHexaBlur","handleHexaEnter","key","changeColor","ev","x","y","width","height","getBoundingClientRect","prev","next","Math","floor","min","max","clientX","clientY","handleChange","i","t","changeHsv","mouseDown","mouseUp","handleSwitch","copy","eyeDropper","window","EyeDropper","res","open","sRGBHex","colorVar","h","toRgbaString","document","body","addEventListener","passive","removeEventListener","n","inp","Object","assign","step","formatter","parse","toHexaString","bind","defaultColorPaletteProps","opts","el","element","val","dispatchEvent","CustomEvent"],"rangeMappings":"","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/color-palette/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .palette {\n --alpha-gradient: repeating-conic-gradient(#eee 0 25%, transparent 0 50%) 0 / 10px 10px;\n\n inline-size: 100%;\n box-sizing: border-box;\n user-select: none;\n }\n\n .preview,\n .preview::after,\n .color i,\n .color i::before {\n border-radius: var(--border-radius);\n }\n\n .preview {\n margin-inline-start: 6px;\n inline-size: 46px;\n min-block-size: 26px;\n line-height: 1;\n font-family: sans-serif;\n text-align: center;\n color: #fff;\n cursor: pointer;\n background: var(--alpha-gradient);\n\n &::after {\n display: block;\n inline-size: 100%;\n block-size: 100%;\n background-color: var(--c);\n box-shadow:\n rgb(0 0 0 / 10%) 0 0 0 1px inset,\n rgb(0 0 0 / 10%) 0 0 4px inset;\n text-shadow: var(--text-shadow);\n content: '';\n }\n\n &:hover::after {\n font-size: 24px;\n content: '⎘';\n }\n\n &[data-copy='success']::after {\n font-size: 16px;\n line-height: 26px;\n content: '✓';\n }\n }\n\n .form {\n display: flex;\n gap: 6px;\n }\n\n .input {\n flex: 1;\n }\n\n .picker {\n position: relative;\n border-radius: 4px;\n block-size: 150px;\n background:\n linear-gradient(to top, hsl(0deg 0% 0% / calc(var(--a))), transparent) 0 / 100%,\n linear-gradient(\n to left,\n hsl(calc(var(--h)) 100% 50% / calc(var(--a))),\n hsl(0deg 0% 100% / calc(var(--a)))\n )\n 0 / 100%,\n var(--alpha-gradient);\n opacity: 1;\n transition: opacity var(--transition-duration);\n user-select: none;\n cursor: crosshair;\n\n &:active {\n opacity: 0.99;\n }\n\n &::after {\n position: absolute;\n inset-block-start: calc((100 - var(--v)) * 1%);\n inset-inline-start: calc(var(--s) * 1%);\n border-radius: 3px;\n inline-size: 6px;\n block-size: 6px;\n pointer-events: none;\n content: '';\n transform: translate(-50%, -50%);\n box-shadow:\n inset 0 0 0 1px #fff,\n 0 0 1px rgb(0 0 0 / 20%),\n inset 0 0 2.5px 0 rgb(0 0 0 / 20%);\n }\n }\n\n .chooser {\n display: flex;\n padding: 8px 0;\n }\n\n .range {\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n }\n\n .hue {\n background-image: linear-gradient(to right, red, yellow, lime, cyan, blue, magenta, red);\n }\n\n .opacity {\n background: linear-gradient(\n to right,\n hsl(calc(var(--h)) 100% 50% / 0%),\n hsl(calc(var(--h)) 100% 50% / 100%)\n ),\n var(--alpha-gradient);\n }\n\n .slider {\n flex: 1;\n display: block;\n margin: 0;\n border-radius: 5px;\n inline-size: 100%;\n block-size: 10px;\n outline: 0;\n cursor: pointer;\n pointer-events: all;\n appearance: none;\n\n &::-webkit-slider-runnable-track {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n &::-webkit-slider-thumb {\n appearance: none;\n position: relative;\n border-radius: 50%;\n inline-size: 10px;\n block-size: 10px;\n background: #fff;\n box-shadow: 0 0 10px rgb(0 0 0 / 10%);\n transition: 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n transform: scale(1.2);\n }\n\n &::-moz-range-thumb {\n position: relative;\n border: 0;\n border-radius: 50%;\n background: #fff;\n box-shadow: 0 0 10px rgb(0 0 0 / 10%);\n transition: 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n inline-size: 10px;\n block-size: 10px;\n transform: scale(1.2);\n box-sizing: border-box;\n pointer-events: none;\n }\n\n &::-webkit-slider-thumb:active,\n &:focus::-webkit-slider-thumb {\n transform: scale(1.5);\n }\n\n &::-moz-range-thumb:active,\n &:focus::-moz-range-thumb {\n transform: scale(1.5);\n }\n }\n\n .color {\n display: flex;\n padding-block-start: 8px;\n gap: 5px 9px;\n flex-wrap: wrap;\n\n i {\n position: relative;\n border: 0;\n font-size: 28px;\n text-align: center;\n background-color: var(--c, transparent);\n outline: 0;\n cursor: pointer;\n inline-size: 20px;\n block-size: 20px;\n font-style: normal;\n line-height: 17px;\n\n &::before,\n &::after {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 100%;\n content: '';\n }\n\n &::before {\n z-index: -1;\n background: var(--alpha-gradient);\n }\n\n &.eye-dropper::before {\n content: '⍝';\n }\n\n &::after {\n border-radius: inherit;\n background-color: var(--c, transparent);\n opacity: 0;\n transition:\n var(--transition-duration) transform var(--transition-timing-function),\n var(--transition-duration) opacity var(--transition-timing-function);\n }\n\n &:hover::after {\n transform: translate3d(2px, 2px, 0);\n opacity: 0.3;\n }\n }\n }\n`;\n\nexport const switchCss = css`\n .switch {\n block-size: 25px;\n line-height: 25px;\n float: inline-start;\n border-radius: var(--border-radius);\n cursor: pointer;\n inline-size: 46px;\n font-size: 12px;\n text-align: center;\n color: var(--on-primary-selection);\n background-color: var(--primary-selection);\n text-transform: uppercase;\n outline-color: var(--primary-outline);\n transition-property: background-color, color, outline-color, border-radius, transform;\n transition-timing-function: var(--transition-timing-function);\n transition-duration: var(--transition-duration);\n\n &:hover {\n color: var(--primary-hover);\n }\n\n &:active {\n color: var(--primary-active);\n transform: scale(0.98);\n }\n }\n`;\n"],"names":["css","style","switchCss"],"mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwOzB,CAAC,AAAC,AAEF,QAAO,MAAME,UAAYF,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2B7B,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../components/color-palette/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .palette {\n --alpha-gradient: repeating-conic-gradient(#eee 0 25%, transparent 0 50%) 0 / 10px 10px;\n\n inline-size: 100%;\n box-sizing: border-box;\n user-select: none;\n }\n\n .preview,\n .preview::after,\n .color i,\n .color i::before {\n border-radius: var(--border-radius);\n }\n\n .preview {\n margin-inline-start: 6px;\n inline-size: 46px;\n min-block-size: 26px;\n line-height: 1;\n font-family: sans-serif;\n text-align: center;\n color: #fff;\n cursor: pointer;\n background: var(--alpha-gradient);\n\n &::after {\n display: block;\n inline-size: 100%;\n block-size: 100%;\n background-color: var(--c);\n box-shadow:\n rgb(0 0 0 / 10%) 0 0 0 1px inset,\n rgb(0 0 0 / 10%) 0 0 4px inset;\n text-shadow: var(--text-shadow);\n content: '';\n }\n\n &:hover::after {\n font-size: 24px;\n content: '⎘';\n }\n\n &[data-copy='success']::after {\n font-size: 16px;\n line-height: 26px;\n content: '✓';\n }\n }\n\n .form {\n display: flex;\n gap: 6px;\n }\n\n .input {\n flex: 1;\n }\n\n .picker {\n position: relative;\n border-radius: 4px;\n block-size: 150px;\n background:\n linear-gradient(to top, hsl(0deg 0% 0% / calc(var(--a))), transparent) 0 / 100%,\n linear-gradient(\n to left,\n hsl(calc(var(--h)) 100% 50% / calc(var(--a))),\n hsl(0deg 0% 100% / calc(var(--a)))\n )\n 0 / 100%,\n var(--alpha-gradient);\n opacity: 1;\n transition: opacity var(--transition-duration);\n user-select: none;\n cursor: crosshair;\n\n &:active {\n opacity: 0.99;\n }\n\n &::after {\n position: absolute;\n inset-block-start: calc((100 - var(--v)) * 1%);\n inset-inline-start: calc(var(--s) * 1%);\n border-radius: 3px;\n inline-size: 6px;\n block-size: 6px;\n pointer-events: none;\n content: '';\n transform: translate(-50%, -50%);\n box-shadow:\n inset 0 0 0 1px #fff,\n 0 0 1px rgb(0 0 0 / 20%),\n inset 0 0 2.5px 0 rgb(0 0 0 / 20%);\n }\n }\n\n .chooser {\n display: flex;\n padding: 8px 0;\n }\n\n .range {\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n }\n\n .hue {\n background-image: linear-gradient(to right, red, yellow, lime, cyan, blue, magenta, red);\n }\n\n .opacity {\n background: linear-gradient(\n to right,\n hsl(calc(var(--h)) 100% 50% / 0%),\n hsl(calc(var(--h)) 100% 50% / 100%)\n ),\n var(--alpha-gradient);\n }\n\n .slider {\n flex: 1;\n display: block;\n margin: 0;\n border-radius: 5px;\n inline-size: 100%;\n block-size: 10px;\n outline: 0;\n cursor: pointer;\n pointer-events: all;\n appearance: none;\n\n &::-webkit-slider-runnable-track {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n &::-webkit-slider-thumb {\n appearance: none;\n position: relative;\n border-radius: 50%;\n inline-size: 10px;\n block-size: 10px;\n background: #fff;\n box-shadow: 0 0 10px rgb(0 0 0 / 10%);\n transition: 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n transform: scale(1.2);\n }\n\n &::-moz-range-thumb {\n position: relative;\n border: 0;\n border-radius: 50%;\n background: #fff;\n box-shadow: 0 0 10px rgb(0 0 0 / 10%);\n transition: 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n inline-size: 10px;\n block-size: 10px;\n transform: scale(1.2);\n box-sizing: border-box;\n pointer-events: none;\n }\n\n &::-webkit-slider-thumb:active,\n &:focus::-webkit-slider-thumb {\n transform: scale(1.5);\n }\n\n &::-moz-range-thumb:active,\n &:focus::-moz-range-thumb {\n transform: scale(1.5);\n }\n }\n\n .color {\n display: flex;\n padding-block-start: 8px;\n gap: 5px 9px;\n flex-wrap: wrap;\n\n i {\n position: relative;\n border: 0;\n font-size: 28px;\n text-align: center;\n background-color: var(--c, transparent);\n outline: 0;\n cursor: pointer;\n inline-size: 20px;\n block-size: 20px;\n font-style: normal;\n line-height: 17px;\n\n &::before,\n &::after {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 100%;\n content: '';\n }\n\n &::before {\n z-index: -1;\n background: var(--alpha-gradient);\n }\n\n &.eye-dropper::before {\n content: '⍝';\n }\n\n &::after {\n border-radius: inherit;\n background-color: var(--c, transparent);\n opacity: 0;\n transition:\n var(--transition-duration) transform var(--transition-timing-function),\n var(--transition-duration) opacity var(--transition-timing-function);\n }\n\n &:hover::after {\n transform: translate3d(2px, 2px, 0);\n opacity: 0.3;\n }\n }\n }\n`;\n\nexport const switchCss = css`\n .switch {\n block-size: 25px;\n line-height: 25px;\n float: inline-start;\n border-radius: var(--border-radius);\n cursor: pointer;\n inline-size: 46px;\n font-size: 12px;\n text-align: center;\n color: var(--on-primary-selection);\n background-color: var(--primary-selection);\n text-transform: uppercase;\n outline-color: var(--primary-outline);\n transition-property: background-color, color, outline-color, border-radius, transform;\n transition-timing-function: var(--transition-timing-function);\n transition-duration: var(--transition-duration);\n\n &:hover {\n color: var(--primary-hover);\n }\n\n &:active {\n color: var(--primary-active);\n transform: scale(0.98);\n }\n }\n`;\n"],"names":["css","style","switchCss"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwOzB,CAAC,AAAC,AAEF,QAAO,MAAME,UAAYF,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2B7B,CAAC,AAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/color-picker/index.tsx"],"sourcesContent":["import {\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onMount,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport '../color-palette';\nimport Popover, { defaultProps } from '../popover';\nimport type { BasicConfig, ColorPaletteProps, CustomElement, PopoverProps } from '..';\n\n/** 颜色选择器\n * @since 2.0.0\n */\nexport interface ColorPickerProps\n extends ColorPaletteProps,\n Omit<PopoverProps, 'children' | 'content'> {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 关闭后是否销毁 */\n destroyInactive?: boolean;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 默认值 */\n defaultValue?: string;\n}\nexport type ColorPickerElement = CustomElement<ColorPickerProps>;\n\nfunction ColorPicker(props: ColorPickerProps) {\n const [local, others] = splitProps(props, [\n 'css',\n 'value',\n 'defaultValue',\n 'onChange',\n 'popupClass',\n 'popupCss',\n 'size',\n ]);\n const [color, setColor] = createSignal<string | undefined>(local.defaultValue);\n\n function handleChange(e: CustomEvent<string>) {\n if (local.value === void 0) {\n setColor(e.detail);\n }\n local.onChange?.(e.detail);\n }\n\n onMount(() => {\n if (local.value === void 0 && local.defaultValue) {\n setColor(local.defaultValue);\n }\n });\n createEffect(() => {\n if (local.value !== void 0 && local.value !== untrack(color)) {\n setColor(local.value);\n }\n });\n const popupCss = createMemo(\n () => `.color-picker {padding: 10px;inline-size: 216px;}${local.popupCss || ''}`,\n );\n const css = createMemo(() => `${style + (local.css || '')}.trigger {--c: ${color()};}`);\n\n return (\n <Popover\n {...others}\n arrow={true}\n trigger=\"click\"\n content={<n-color-palette value={color()} onChange={handleChange} />}\n popupClass={cx('color-picker', local.popupClass)}\n popupCss={popupCss()}\n css={css()}\n >\n <span class={cx('trigger', local.size)} />\n </Popover>\n );\n}\n\ncustomElement<ColorPickerProps>(\n 'n-color-picker',\n {\n ...defaultProps,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n size: void 0,\n },\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n children: el.children,\n },\n _,\n );\n\n return createComponent(ColorPicker, props);\n },\n);\n\nexport default ColorPicker;\n"],"names":["createComponent","createEffect","createMemo","createSignal","mergeProps","onMount","splitProps","untrack","cx","customElement","style","Popover","defaultProps","ColorPicker","props","local","others","color","setColor","defaultValue","handleChange","e","value","detail","onChange","popupCss","css","popupClass","size","_","opts","el","element","val","dispatchEvent","CustomEvent","children"],"mappings":"uiBAAA,QACEA,mBAAAA,CAAe,CACfC,gBAAAA,CAAY,CACZC,cAAAA,CAAU,CACVC,gBAAAA,CAAY,CACZC,cAAAA,CAAU,CACVC,WAAAA,CAAO,CACPC,cAAAA,CAAU,CACVC,WAAAA,CAAO,KACF,UAAW,AAClB,QAASC,MAAAA,CAAE,KAAQ,aAAc,AACjC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAASC,SAAAA,CAAK,KAAQ,SAAU,AAChC,OAAO,kBAAmB,AAC1B,QAAOC,GAAWC,gBAAAA,CAAY,KAAQ,YAAa,CAwBnD,SAASC,EAAYC,CAAuB,EAC1C,GAAM,CAACC,EAAOC,EAAO,CAAGV,EAAWQ,EAAO,CACxC,MACA,QACA,eACA,WACA,aACA,WACA,OACD,EACK,CAACG,EAAOC,EAAS,CAAGf,EAAiCY,EAAMI,YAAY,EAE7E,SAASC,EAAaC,CAAsB,EACtB,KAAK,IAArBN,EAAMO,KAAK,EACbJ,EAASG,EAAEE,MAAM,QAEnBR,EAAMS,QAAQ,EAAdT,EAAMS,QAAQ,MAAdT,EAAiBM,EAAEE,MAAM,CAC3B,CAEAlB,EAAQ,KACc,KAAK,IAArBU,EAAMO,KAAK,EAAeP,EAAMI,YAAY,EAC9CD,EAASH,EAAMI,YAAY,CAE/B,GACAlB,EAAa,KACS,KAAK,IAArBc,EAAMO,KAAK,EAAeP,EAAMO,KAAK,GAAKf,EAAQU,IACpDC,EAASH,EAAMO,KAAK,CAExB,GACA,IAAMG,EAAWvB,EACf,IAAM,CAAC,iDAAiD,EAAEa,EAAMU,QAAQ,EAAI,GAAG,CAAC,EAE5EC,EAAMxB,EAAW,IAAM,CAAC,EAAEQ,EAASK,CAAAA,EAAMW,GAAG,EAAI,EAAC,EAAG,eAAe,EAAET,IAAQ,EAAE,CAAC,EAEtF,SACGN,IACKK,SACG,CAAA,0EAE6CI,+BAAnBH,oCACrBT,EAAG,eAAgBO,EAAMY,UAAU,yBACrCF,sBACLC,+CAEQlB,EAAG,UAAWO,EAAMa,IAAI,SAG3C,CAEAnB,EACE,iBACA,KACKG,GACHU,MAAO,KAAK,EACZH,aAAc,KAAK,EACnBK,SAAU,KAAK,EACfI,KAAM,KAAK,IAEb,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAKE,OAAO,CAevB,OAAOhC,EAAgBa,EAdTT,EACZ,CACEoB,SAASS,CAAY,EACnBF,EAAGG,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBZ,OAAQU,CACV,GAEJ,EACAG,SAAUL,EAAGK,QAAQ,AACvB,EACAP,GAIJ,EAGF,gBAAehB,CAAY"}
1
+ {"version":3,"sources":["../../components/color-picker/index.tsx"],"sourcesContent":["import {\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onMount,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport '../color-palette';\nimport Popover, { defaultProps } from '../popover';\nimport type { BasicConfig, ColorPaletteProps, CustomElement, PopoverProps } from '..';\n\n/** 颜色选择器\n * @since 2.0.0\n */\nexport interface ColorPickerProps\n extends ColorPaletteProps,\n Omit<PopoverProps, 'children' | 'content'> {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 关闭后是否销毁 */\n destroyInactive?: boolean;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 默认值 */\n defaultValue?: string;\n}\nexport type ColorPickerElement = CustomElement<ColorPickerProps>;\n\nfunction ColorPicker(props: ColorPickerProps) {\n const [local, others] = splitProps(props, [\n 'css',\n 'value',\n 'defaultValue',\n 'onChange',\n 'popupClass',\n 'popupCss',\n 'size',\n ]);\n const [color, setColor] = createSignal<string | undefined>(local.defaultValue);\n\n function handleChange(e: CustomEvent<string>) {\n if (local.value === void 0) {\n setColor(e.detail);\n }\n local.onChange?.(e.detail);\n }\n\n onMount(() => {\n if (local.value === void 0 && local.defaultValue) {\n setColor(local.defaultValue);\n }\n });\n createEffect(() => {\n if (local.value !== void 0 && local.value !== untrack(color)) {\n setColor(local.value);\n }\n });\n const popupCss = createMemo(\n () => `.color-picker {padding: 10px;inline-size: 216px;}${local.popupCss || ''}`,\n );\n const css = createMemo(() => `${style + (local.css || '')}.trigger {--c: ${color()};}`);\n\n return (\n <Popover\n {...others}\n arrow={true}\n trigger=\"click\"\n content={<n-color-palette value={color()} onChange={handleChange} />}\n popupClass={cx('color-picker', local.popupClass)}\n popupCss={popupCss()}\n css={css()}\n >\n <span class={cx('trigger', local.size)} />\n </Popover>\n );\n}\n\ncustomElement<ColorPickerProps>(\n 'n-color-picker',\n {\n ...defaultProps,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n size: void 0,\n },\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n children: el.children,\n },\n _,\n );\n\n return createComponent(ColorPicker, props);\n },\n);\n\nexport default ColorPicker;\n"],"names":["createComponent","createEffect","createMemo","createSignal","mergeProps","onMount","splitProps","untrack","cx","customElement","style","Popover","defaultProps","ColorPicker","props","local","others","color","setColor","defaultValue","handleChange","e","value","detail","onChange","popupCss","css","popupClass","size","_","opts","el","element","val","dispatchEvent","CustomEvent","children"],"rangeMappings":"","mappings":"uiBAAA,QACEA,mBAAAA,CAAe,CACfC,gBAAAA,CAAY,CACZC,cAAAA,CAAU,CACVC,gBAAAA,CAAY,CACZC,cAAAA,CAAU,CACVC,WAAAA,CAAO,CACPC,cAAAA,CAAU,CACVC,WAAAA,CAAO,KACF,UAAW,AAClB,QAASC,MAAAA,CAAE,KAAQ,aAAc,AACjC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAASC,SAAAA,CAAK,KAAQ,SAAU,AAChC,OAAO,kBAAmB,AAC1B,QAAOC,GAAWC,gBAAAA,CAAY,KAAQ,YAAa,CAwBnD,SAASC,EAAYC,CAAuB,EAC1C,GAAM,CAACC,EAAOC,EAAO,CAAGV,EAAWQ,EAAO,CACxC,MACA,QACA,eACA,WACA,aACA,WACA,OACD,EACK,CAACG,EAAOC,EAAS,CAAGf,EAAiCY,EAAMI,YAAY,EAE7E,SAASC,EAAaC,CAAsB,EACtB,KAAK,IAArBN,EAAMO,KAAK,EACbJ,EAASG,EAAEE,MAAM,QAEnBR,EAAMS,QAAQ,EAAdT,EAAMS,QAAQ,MAAdT,EAAiBM,EAAEE,MAAM,CAC3B,CAEAlB,EAAQ,KACc,KAAK,IAArBU,EAAMO,KAAK,EAAeP,EAAMI,YAAY,EAC9CD,EAASH,EAAMI,YAAY,CAE/B,GACAlB,EAAa,KACS,KAAK,IAArBc,EAAMO,KAAK,EAAeP,EAAMO,KAAK,GAAKf,EAAQU,IACpDC,EAASH,EAAMO,KAAK,CAExB,GACA,IAAMG,EAAWvB,EACf,IAAM,CAAC,iDAAiD,EAAEa,EAAMU,QAAQ,EAAI,GAAG,CAAC,EAE5EC,EAAMxB,EAAW,IAAM,CAAC,EAAEQ,EAASK,CAAAA,EAAMW,GAAG,EAAI,EAAC,EAAG,eAAe,EAAET,IAAQ,EAAE,CAAC,EAEtF,SACGN,IACKK,SACG,CAAA,0EAE6CI,+BAAnBH,oCACrBT,EAAG,eAAgBO,EAAMY,UAAU,yBACrCF,sBACLC,+CAEQlB,EAAG,UAAWO,EAAMa,IAAI,SAG3C,CAEAnB,EACE,iBACA,KACKG,GACHU,MAAO,KAAK,EACZH,aAAc,KAAK,EACnBK,SAAU,KAAK,EACfI,KAAM,KAAK,IAEb,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAKE,OAAO,CAevB,OAAOhC,EAAgBa,EAdTT,EACZ,CACEoB,SAASS,CAAY,EACnBF,EAAGG,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBZ,OAAQU,CACV,GAEJ,EACAG,SAAUL,EAAGK,QAAQ,AACvB,EACAP,GAIJ,EAGF,gBAAehB,CAAY"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/color-picker/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .trigger {\n --alpha-gradient: repeating-conic-gradient(#eee 0 25%, transparent 0 50%) 0 / 10px 10px;\n\n display: inline-block;\n border-radius: var(--border-radius);\n inline-size: 25px;\n block-size: 25px;\n background: var(--alpha-gradient);\n\n &::after {\n display: block;\n border-radius: var(--border-radius);\n inline-size: 100%;\n block-size: 100%;\n background: var(--c, #fff);\n opacity: var(--a, 1);\n box-shadow:\n rgb(0 0 0 / 10%) 0 0 0 1px inset,\n rgb(0 0 0 / 10%) 0 0 4px inset;\n content: '';\n cursor: pointer;\n }\n }\n\n .trigger.large {\n inline-size: 45px;\n block-size: 25px;\n }\n\n .trigger.small {\n inline-size: 15px;\n block-size: 15px;\n }\n\n .trigger.normal {\n inline-size: 25px;\n block-size: 25px;\n }\n`;\n"],"names":["css","style"],"mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCzB,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../components/color-picker/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .trigger {\n --alpha-gradient: repeating-conic-gradient(#eee 0 25%, transparent 0 50%) 0 / 10px 10px;\n\n display: inline-block;\n border-radius: var(--border-radius);\n inline-size: 25px;\n block-size: 25px;\n background: var(--alpha-gradient);\n\n &::after {\n display: block;\n border-radius: var(--border-radius);\n inline-size: 100%;\n block-size: 100%;\n background: var(--c, #fff);\n opacity: var(--a, 1);\n box-shadow:\n rgb(0 0 0 / 10%) 0 0 0 1px inset,\n rgb(0 0 0 / 10%) 0 0 4px inset;\n content: '';\n cursor: pointer;\n }\n }\n\n .trigger.large {\n inline-size: 45px;\n block-size: 25px;\n }\n\n .trigger.small {\n inline-size: 15px;\n block-size: 15px;\n }\n\n .trigger.normal {\n inline-size: 25px;\n block-size: 25px;\n }\n`;\n"],"names":["css","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCzB,CAAC,AAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/begin-interval.tsx"],"sourcesContent":["import { selectCss, selectPortalCss } from './style';\nimport type { CronData } from '.';\nimport type { BaseOption } from 'neko-ui';\n\ntype BeginIntervalProps = {\n begin: CronData['begin'];\n beginEvery: CronData['beginEvery'];\n label: [JSX.Element, JSX.Element, JSX.Element];\n beginOption: (string | number | BaseOption)[];\n beginEveryOption: (string | number | BaseOption)[];\n onChange(type: 'begin' | 'beginEvery', value: number): void;\n validate(type: 'begin' | 'beginEvery', value: number): boolean;\n disabled: boolean;\n};\n\nfunction BeginInterval(props: BeginIntervalProps) {\n function onChange(\n type: 'begin' | 'beginEvery',\n e: CustomEvent<[val: number | string, item: BaseOption]>,\n ) {\n const [value] = e.detail;\n const v = Number(value);\n\n if (props.validate(type, v)) {\n props.onChange(type, v);\n }\n }\n return (\n <>\n {props.label[0]}\n <n-select\n value={props.begin}\n onChange={onChange.bind(null, 'begin')}\n options={props.beginOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[1]}\n <n-select\n value={props.beginEvery}\n onChange={onChange.bind(null, 'beginEvery')}\n options={props.beginEveryOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[2]}\n </>\n );\n}\n\nexport default BeginInterval;\n"],"names":["selectCss","selectPortalCss","props","onChange","type","e","value","detail","v","Number","validate","label","bind","beginOption","disabled","begin","beginEveryOption","beginEvery"],"mappings":"qOAAA,QAASA,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAwDrD,gBAzCA,SAAuBC,CAAyB,EAC9C,SAASC,EACPC,CAA4B,CAC5BC,CAAwD,EAExD,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,CAClBC,EAAIC,OAAOH,GAEbJ,EAAMQ,QAAQ,CAACN,EAAMI,IACvBN,EAAMC,QAAQ,CAACC,EAAMI,EAEzB,CACA,aAEKN,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,gBAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMW,WAAW,GAChBX,EAAMY,QAAQ,oHAHjBZ,EAAMa,KAAK,cASnBb,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,qBAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMc,gBAAgB,GACrBd,EAAMY,QAAQ,uHAHjBZ,EAAMe,UAAU,cASxBf,EAAMS,KAAK,CAAC,EAAE,EAGrB"}
1
+ {"version":3,"sources":["../../components/cron/begin-interval.tsx"],"sourcesContent":["import { selectCss, selectPortalCss } from './style';\nimport type { CronData } from '.';\nimport type { BaseOption } from 'neko-ui';\n\ntype BeginIntervalProps = {\n begin: CronData['begin'];\n beginEvery: CronData['beginEvery'];\n label: [JSX.Element, JSX.Element, JSX.Element];\n beginOption: (string | number | BaseOption)[];\n beginEveryOption: (string | number | BaseOption)[];\n onChange(type: 'begin' | 'beginEvery', value: number): void;\n validate(type: 'begin' | 'beginEvery', value: number): boolean;\n disabled: boolean;\n};\n\nfunction BeginInterval(props: BeginIntervalProps) {\n function onChange(\n type: 'begin' | 'beginEvery',\n e: CustomEvent<[val: number | string, item: BaseOption]>,\n ) {\n const [value] = e.detail;\n const v = Number(value);\n\n if (props.validate(type, v)) {\n props.onChange(type, v);\n }\n }\n return (\n <>\n {props.label[0]}\n <n-select\n value={props.begin}\n onChange={onChange.bind(null, 'begin')}\n options={props.beginOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[1]}\n <n-select\n value={props.beginEvery}\n onChange={onChange.bind(null, 'beginEvery')}\n options={props.beginEveryOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[2]}\n </>\n );\n}\n\nexport default BeginInterval;\n"],"names":["selectCss","selectPortalCss","props","onChange","type","e","value","detail","v","Number","validate","label","bind","beginOption","disabled","begin","beginEveryOption","beginEvery"],"rangeMappings":"","mappings":"qOAAA,QAASA,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAwDrD,gBAzCA,SAAuBC,CAAyB,EAC9C,SAASC,EACPC,CAA4B,CAC5BC,CAAwD,EAExD,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,CAClBC,EAAIC,OAAOH,GAEbJ,EAAMQ,QAAQ,CAACN,EAAMI,IACvBN,EAAMC,QAAQ,CAACC,EAAMI,EAEzB,CACA,aAEKN,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,gBAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMW,WAAW,GAChBX,EAAMY,QAAQ,oHAHjBZ,EAAMa,KAAK,cASnBb,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,qBAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMc,gBAAgB,GACrBd,EAAMY,QAAQ,uHAHjBZ,EAAMe,UAAU,cASxBf,EAAMS,KAAK,CAAC,EAAE,EAGrB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/day.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { selectCss, selectPortalCss } from './style';\nimport type { BaseOption } from 'neko-ui';\n\nfunction Day(props: Required<Omit<CronItemProps<'day'>, 'options'>>) {\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n\n const options = [\n { value: '*', label: '每日' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={days}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => v >= 1 && v < 31}\n label={['周期从', '到', '日']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={days}\n beginEveryOption={daysBeginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => v >= 1 && v <= 31}\n label={['从', '日开始, 每', '天执行一次']}\n />\n ),\n },\n {\n value: 'closeWorkDay',\n label: (\n <>\n 每月离\n <n-select\n value={props.state.closeWorkDay}\n onChange={(e) => {\n const [value] = e.detail;\n const v = Number(value);\n\n if (v >= 1 && v <= 31) {\n props.onChange('closeWorkDay', v);\n }\n }}\n options={days}\n disabled={props.state.type !== 'closeWorkDay'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n 日最近的那个工作日\n </>\n ),\n },\n { value: 'last', label: '本月最后1天' },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体天数(至少选择一项)\"\n value={props.state.some}\n options={days}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item state={props.state} options={options} onChange={props.onChange} />;\n}\n\nexport default Day;\n"],"names":["BeginInterval","Item","Period","Some","selectCss","selectPortalCss","props","days","daysBeginEvery","x","push","label","value","options","state","start","end","type","onChange","_","v","begin","beginEvery","e","detail","Number","closeWorkDay","some"],"mappings":"qNAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AA2FrD,gBAxFA,SAAaC,CAAsD,EACjE,IAAMC,EAAqB,EAAE,CACvBC,EAA2B,EAAE,CAEnC,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBF,EAAKG,IAAI,CAAC,CACRC,MAAOF,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAG,CAAC,EAAEA,EAAE,CAAC,CAChCG,MAAOH,CACT,GACAD,EAAeE,IAAI,CAACD,GAGtB,IAAMI,EAAU,CACd,CAAED,MAAO,IAAKD,MAAO,IAAK,EAC1B,CAAEC,MAAO,IAAKD,MAAO,KAAM,EAC3B,CACEC,MAAO,SACPD,KAAK,GACFT,sBACQI,EAAMQ,KAAK,CAACC,KAAK,mBACnBT,EAAMQ,KAAK,CAACE,GAAG,UACXT,uBACCD,AAAqB,WAArBA,EAAMQ,KAAK,CAACG,IAAI,wBAChBX,EAAMY,QAAQ,WACd,CAACC,EAAGC,IAAMA,GAAK,GAAKA,EAAI,SAC3B,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPD,KAAK,GACFX,sBACQM,EAAMQ,KAAK,CAACO,KAAK,0BACZf,EAAMQ,KAAK,CAACQ,UAAU,wBACxBhB,EAAMY,QAAQ,cACXX,mBACKC,uBACRF,AAAqB,kBAArBA,EAAMQ,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAMA,GAAK,GAAKA,GAAK,SAC5B,CAAC,IAAK,SAAU,QAAQ,EAGrC,EACA,CACER,MAAO,eACPD,KAAK,2DAKW,AAACY,IACT,GAAM,CAACX,EAAM,CAAGW,EAAEC,MAAM,CAClBJ,EAAIK,OAAOb,GAEbQ,GAAK,GAAKA,GAAK,IACjBd,EAAMY,QAAQ,CAAC,eAAgBE,EAEnC,aACSb,QAEJH,aACMC,6BACkB,CAAA,UACtB,CAAA,iCAJGC,AAAqB,iBAArBA,EAAMQ,KAAK,CAACG,IAAI,gBAVnBX,EAAMQ,KAAK,CAACY,YAAY,oBAmBvC,EACA,CAAEd,MAAO,OAAQD,MAAO,QAAS,EACjC,CACEC,MAAO,OACPD,KAAK,GACFR,2CAEQG,EAAMQ,KAAK,CAACa,IAAI,UACdpB,oBACHD,EAAMQ,KAAK,CAACG,IAAI,wBACZX,EAAMY,QAAQ,GAG9B,EACD,CAED,SAAQjB,sBAAYK,EAAMQ,KAAK,UAAWD,wBAAmBP,EAAMY,QAAQ,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/day.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { selectCss, selectPortalCss } from './style';\nimport type { BaseOption } from 'neko-ui';\n\nfunction Day(props: Required<Omit<CronItemProps<'day'>, 'options'>>) {\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n\n const options = [\n { value: '*', label: '每日' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={days}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => v >= 1 && v < 31}\n label={['周期从', '到', '日']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={days}\n beginEveryOption={daysBeginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => v >= 1 && v <= 31}\n label={['从', '日开始, 每', '天执行一次']}\n />\n ),\n },\n {\n value: 'closeWorkDay',\n label: (\n <>\n 每月离\n <n-select\n value={props.state.closeWorkDay}\n onChange={(e) => {\n const [value] = e.detail;\n const v = Number(value);\n\n if (v >= 1 && v <= 31) {\n props.onChange('closeWorkDay', v);\n }\n }}\n options={days}\n disabled={props.state.type !== 'closeWorkDay'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n 日最近的那个工作日\n </>\n ),\n },\n { value: 'last', label: '本月最后1天' },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体天数(至少选择一项)\"\n value={props.state.some}\n options={days}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item state={props.state} options={options} onChange={props.onChange} />;\n}\n\nexport default Day;\n"],"names":["BeginInterval","Item","Period","Some","selectCss","selectPortalCss","props","days","daysBeginEvery","x","push","label","value","options","state","start","end","type","onChange","_","v","begin","beginEvery","e","detail","Number","closeWorkDay","some"],"rangeMappings":"","mappings":"qNAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AA2FrD,gBAxFA,SAAaC,CAAsD,EACjE,IAAMC,EAAqB,EAAE,CACvBC,EAA2B,EAAE,CAEnC,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBF,EAAKG,IAAI,CAAC,CACRC,MAAOF,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAG,CAAC,EAAEA,EAAE,CAAC,CAChCG,MAAOH,CACT,GACAD,EAAeE,IAAI,CAACD,GAGtB,IAAMI,EAAU,CACd,CAAED,MAAO,IAAKD,MAAO,IAAK,EAC1B,CAAEC,MAAO,IAAKD,MAAO,KAAM,EAC3B,CACEC,MAAO,SACPD,KAAK,GACFT,sBACQI,EAAMQ,KAAK,CAACC,KAAK,mBACnBT,EAAMQ,KAAK,CAACE,GAAG,UACXT,uBACCD,AAAqB,WAArBA,EAAMQ,KAAK,CAACG,IAAI,wBAChBX,EAAMY,QAAQ,WACd,CAACC,EAAGC,IAAMA,GAAK,GAAKA,EAAI,SAC3B,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPD,KAAK,GACFX,sBACQM,EAAMQ,KAAK,CAACO,KAAK,0BACZf,EAAMQ,KAAK,CAACQ,UAAU,wBACxBhB,EAAMY,QAAQ,cACXX,mBACKC,uBACRF,AAAqB,kBAArBA,EAAMQ,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAMA,GAAK,GAAKA,GAAK,SAC5B,CAAC,IAAK,SAAU,QAAQ,EAGrC,EACA,CACER,MAAO,eACPD,KAAK,2DAKW,AAACY,IACT,GAAM,CAACX,EAAM,CAAGW,EAAEC,MAAM,CAClBJ,EAAIK,OAAOb,GAEbQ,GAAK,GAAKA,GAAK,IACjBd,EAAMY,QAAQ,CAAC,eAAgBE,EAEnC,aACSb,QAEJH,aACMC,6BACkB,CAAA,UACtB,CAAA,iCAJGC,AAAqB,iBAArBA,EAAMQ,KAAK,CAACG,IAAI,gBAVnBX,EAAMQ,KAAK,CAACY,YAAY,oBAmBvC,EACA,CAAEd,MAAO,OAAQD,MAAO,QAAS,EACjC,CACEC,MAAO,OACPD,KAAK,GACFR,2CAEQG,EAAMQ,KAAK,CAACa,IAAI,UACdpB,oBACHD,EAAMQ,KAAK,CAACG,IAAI,wBACZX,EAAMY,QAAQ,GAG9B,EACD,CAED,SAAQjB,sBAAYK,EAAMQ,KAAK,UAAWD,wBAAmBP,EAAMY,QAAQ,GAC7E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/hour.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { hours } from '../date-picker/time';\n\nfunction Hour(props: Required<Omit<CronItemProps<'hour'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 24; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每小时' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={hours}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 23 : v > 0 && v <= 23)}\n label={['周期从', '到', '时']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={hours}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 23 : v >= 1 && v <= 24)}\n label={['从', '时开始, 每', '小时执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体小时数(至少选择一项)\"\n value={props.state.some}\n options={hours}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Hour;\n"],"names":["BeginInterval","Item","Period","Some","hours","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,SAAAA,CAAK,KAAQ,qBAAsB,AAyD5C,gBAvDA,SAAcC,CAAuD,EACnE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,GACFT,sBACQG,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXV,uBACCC,AAAqB,WAArBA,EAAMO,KAAK,CAACG,IAAI,wBAChBV,EAAMW,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPC,KAAK,GACFX,sBACQK,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXZ,mBACKE,uBACRD,AAAqB,kBAArBA,EAAMO,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,SAAS,EAGtC,EACA,CACER,MAAO,OACPC,KAAK,GACFR,4CAEQE,EAAMO,KAAK,CAACQ,IAAI,UACdhB,oBACHC,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQf,WAAcQ,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/hour.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { hours } from '../date-picker/time';\n\nfunction Hour(props: Required<Omit<CronItemProps<'hour'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 24; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每小时' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={hours}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 23 : v > 0 && v <= 23)}\n label={['周期从', '到', '时']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={hours}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 23 : v >= 1 && v <= 24)}\n label={['从', '时开始, 每', '小时执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体小时数(至少选择一项)\"\n value={props.state.some}\n options={hours}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Hour;\n"],"names":["BeginInterval","Item","Period","Some","hours","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"rangeMappings":"","mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,SAAAA,CAAK,KAAQ,qBAAsB,AAyD5C,gBAvDA,SAAcC,CAAuD,EACnE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,GACFT,sBACQG,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXV,uBACCC,AAAqB,WAArBA,EAAMO,KAAK,CAACG,IAAI,wBAChBV,EAAMW,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPC,KAAK,GACFX,sBACQK,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXZ,mBACKE,uBACRD,AAAqB,kBAArBA,EAAMO,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,SAAS,EAGtC,EACA,CACER,MAAO,OACPC,KAAK,GACFR,4CAEQE,EAAMO,KAAK,CAACQ,IAAI,UACdhB,oBACHC,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQf,WAAcQ,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/index.tsx"],"sourcesContent":["import {\n Show,\n batch,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport Day from './day';\nimport Hour from './hour';\nimport Minute from './minute';\nimport Month from './month';\nimport Second from './second';\nimport Week from './week';\nimport Year from './year';\nimport '../button';\nimport '../input-number';\nimport '../radio';\nimport '../select';\nimport '../tabs';\nimport type { BaseOption, CustomElement, TabOption } from '..';\n\nexport interface CronProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 隐藏域 */\n exclude?: string[];\n /** 显示表达式\n * @default true\n */\n showCron?: boolean;\n /** 标签页类型\n * @default 'line'\n */\n type?: 'line' | 'card';\n /** 值 */\n value?: string;\n /** 默认值\n * @default 0 0 0 * * ? *\n */\n defaultValue?: string;\n /** 值改变触发a */\n onChange?(val?: string): void;\n}\n\nexport type CronElement = CustomElement<CronProps>;\nexport type SecondType = '*' | 'period' | 'beginInterval' | 'some';\nexport type MinuteType = SecondType;\nexport type HourType = SecondType;\nexport type DayType = SecondType | 'closeWorkDay' | '?' | 'last';\nexport type WeekType = SecondType | 'last' | '?';\nexport type MonthType = SecondType;\nexport type YearType = SecondType | '';\nexport type CronData<T extends string = string> = {\n start: number;\n end: number;\n begin: number;\n beginEvery: number;\n type: T;\n some: number[];\n value: string;\n};\n\nexport type ActiveTab = keyof CronType;\nexport type CronType = {\n second: CronData<SecondType>;\n minute: CronData<MinuteType>;\n hour: CronData<HourType>;\n day: CronData<DayType> & { last: number; closeWorkDay: number };\n week: CronData<WeekType> & { last: number };\n month: CronData<MonthType>;\n year: CronData<YearType>;\n};\n\nfunction Cron(props: CronProps) {\n const [local] = splitProps(props, [\n 'value',\n 'defaultValue',\n 'exclude',\n 'onChange',\n 'type',\n 'showCron',\n 'css',\n 'class',\n ]);\n const [value, setValue] = createSignal(local.defaultValue);\n const date = new Date();\n const fullYear = date.getFullYear();\n const defaultState = {\n hms: {\n start: 0,\n end: 1,\n begin: 0,\n beginEvery: 1,\n some: [0],\n value: '',\n },\n mwd: {\n start: 1,\n end: 2,\n begin: 1,\n beginEvery: 1,\n some: [1],\n value: '',\n },\n year: {\n start: fullYear,\n end: fullYear + 1,\n begin: fullYear,\n beginEvery: 1,\n some: [fullYear],\n value: '',\n },\n };\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n const [active, setActive] = createSignal<ActiveTab>('second');\n const [state, setState] = createSignal<CronType>({\n second: { type: '*', ...defaultState.hms },\n minute: { type: '*', ...defaultState.hms },\n hour: { type: '*', ...defaultState.hms },\n day: {\n type: '*',\n last: 1,\n closeWorkDay: 1,\n ...defaultState.mwd,\n },\n month: {\n type: '*',\n ...defaultState.mwd,\n },\n week: {\n last: 1,\n type: '?',\n ...defaultState.mwd,\n },\n year: {\n type: '',\n ...defaultState.year,\n },\n });\n\n function prefixWeekDay() {\n const store = untrack(state);\n const isDay = active() === 'day';\n\n if (isDay || active() === 'week') {\n const key = isDay ? 'week' : 'day';\n const next = store[key].type === '?' && store[active()].type === '?' ? '*' : '?';\n\n if (next !== store[key].type) {\n setState((prev) => {\n return {\n ...prev,\n [key]: {\n ...prev[key],\n type: next,\n },\n };\n });\n }\n }\n }\n\n function onChange<T extends CronType[ActiveTab]>(type: keyof T, val: T[keyof T]) {\n batch(() => {\n prefixWeekDay();\n setState((prev) => {\n const next = {\n ...prev[active()],\n [type]: val,\n };\n\n if (type === 'start' || type === 'end') {\n if (next.end - next.start <= 1) {\n if (type === 'end') {\n next.start = (val as number) - 1;\n } else {\n next.end = (val as number) + 1;\n }\n }\n }\n\n return {\n ...prev,\n [active()]: next,\n };\n });\n });\n }\n function changeActiveKey(e: CustomEvent<[string, TabOption, Event]>) {\n setActive(e.detail[0] as ActiveTab);\n }\n function parseVal<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n if (item.value.includes('-')) {\n item.type = 'period';\n const period = item.value.split('-');\n\n item.start = Number(period[0]);\n item.end = Number(period[1]);\n } else if (item.value.includes('W')) {\n item.type = 'closeWorkDay';\n (item as CronType['day']).closeWorkDay = Number(item.value.split('W')[0]) || 1;\n } else if (item.value.includes('L')) {\n item.type = 'last';\n (item as CronType['day']).last = Number(item.value.split('L')[0]) || 1;\n } else if (item.value.includes(isWeek ? '#' : '/')) {\n item.type = 'beginInterval';\n const beginInterval = item.value.split(isWeek ? '#' : '/');\n\n if (isWeek) {\n item.begin = Number(beginInterval[1]);\n item.beginEvery = Number(beginInterval[0]);\n } else {\n item.begin = Number(beginInterval[0]);\n item.beginEvery = Number(beginInterval[1]);\n }\n } else if (item.value.includes(',') || /^[0-9]+$/.test(item.value)) {\n item.type = 'some';\n item.some = item.value.split(',').map(Number);\n } else {\n item.type = item.value as CronType[T]['type'];\n }\n return item;\n }\n\n function nts(num?: string | number) {\n if (typeof num === 'number' && !isNaN(num)) {\n return `${num}`;\n }\n return num;\n }\n\n function fmt<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n switch (item.type) {\n case 'period':\n return `${nts(item.start)}-${nts(item.end)}`;\n case 'beginInterval':\n if (isWeek) return `${nts(item.beginEvery)}#${nts(item.begin)}`;\n return `${nts(item.begin)}/${nts(item.beginEvery)}`;\n case 'closeWorkDay':\n return `${nts(item.closeWorkDay || 1)}W`;\n case 'last':\n return isWeek ? `${nts(item.last)}L` : 'L';\n case 'some':\n return item.some.join(',');\n default:\n return item.type;\n }\n }\n\n createEffect(() => {\n if (local.value !== void 0 && untrack(value) !== local.value) {\n setValue(local.value);\n }\n });\n\n createEffect(() => {\n const val = value();\n\n if (val) {\n const valuesArray = val.toUpperCase().split(' ');\n\n batch(() => {\n setState((prev) => {\n return {\n second: parseVal<'second'>({ ...prev.second, value: valuesArray[0] || '?' }),\n minute: parseVal<'minute'>({ ...prev.minute, value: valuesArray[1] || '?' }),\n hour: parseVal<'hour'>({ ...prev.hour, value: valuesArray[2] || '?' }),\n day: parseVal<'day'>({ ...prev.day, value: valuesArray[3] || '' }),\n month: parseVal<'month'>({ ...prev.month, value: valuesArray[4] || '' }),\n week: parseVal<'week'>({ ...prev.week, value: valuesArray[5] || '' }, true),\n year: parseVal<'year'>({ ...prev.year, value: valuesArray[6] || '' }),\n };\n });\n });\n }\n });\n createEffect(() => {\n const { second, minute, hour, day, month, week, year } = state();\n const next = `${fmt(second)} ${fmt(minute)} ${fmt(hour)} ${fmt(day)} ${fmt(month)} ${fmt(\n week,\n true,\n )} ${fmt(year)}`;\n\n setValue((prev) => {\n if (prev === next) return prev;\n props.onChange?.(next);\n return next;\n });\n });\n\n const items = [\n {\n value: 'second',\n label: '秒',\n content: <Second state={state().second} onChange={onChange} />,\n },\n {\n value: 'minute',\n label: '分钟',\n content: <Minute state={state().minute} onChange={onChange} />,\n },\n {\n value: 'hour',\n label: '小时',\n content: <Hour state={state().hour} onChange={onChange} />,\n },\n {\n value: 'day',\n label: '日',\n content: <Day state={state().day} onChange={onChange} />,\n },\n {\n value: 'week',\n label: '周',\n content: <Week state={state().week} onChange={onChange} />,\n },\n {\n value: 'month',\n label: '月',\n content: <Month state={state().month} onChange={onChange} />,\n },\n {\n value: 'year',\n label: '年',\n content: <Year state={state().year} onChange={onChange} />,\n },\n ];\n\n return (\n <>\n <style>{css(local.css)}</style>\n <n-tabs type={local.type} items={items} value={active()} onChange={changeActiveKey} />\n <Show when={local.showCron}>\n <code\n style={{\n width: '100%',\n display: 'block',\n background: 'var(--component-bg)',\n 'border-radius': 'var(--border-radius)',\n 'text-align': 'center',\n }}\n >\n {value()}\n </code>\n </Show>\n </>\n );\n}\n\ncustomElement<CronProps>(\n 'n-cron',\n {\n value: void 0,\n defaultValue: '0 0 0 * * ? *',\n onChange: void 0,\n type: 'line',\n exclude: [],\n showCron: true,\n } as CronProps,\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(Cron, props);\n },\n);\nexport default Cron;\n"],"names":["Show","batch","createComponent","createEffect","createSignal","mergeProps","splitProps","untrack","css","customElement","Day","Hour","Minute","Month","Second","Week","Year","Cron","props","local","value","setValue","defaultValue","fullYear","date","Date","getFullYear","defaultState","hms","start","end","begin","beginEvery","some","mwd","year","days","daysBeginEvery","x","push","label","active","setActive","state","setState","second","type","minute","hour","day","last","closeWorkDay","month","week","onChange","val","prefixWeekDay","store","isDay","key","next","prev","changeActiveKey","e","detail","parseVal","item","isWeek","includes","period","split","Number","beginInterval","test","map","nts","num","isNaN","fmt","join","valuesArray","toUpperCase","items","content","showCron","exclude","_","opts","el","element","dispatchEvent","CustomEvent"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/cron/index.tsx"],"sourcesContent":["import {\n Show,\n batch,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport Day from './day';\nimport Hour from './hour';\nimport Minute from './minute';\nimport Month from './month';\nimport Second from './second';\nimport Week from './week';\nimport Year from './year';\nimport '../button';\nimport '../input-number';\nimport '../radio';\nimport '../select';\nimport '../tabs';\nimport type { BaseOption, CustomElement, TabOption } from '..';\n\nexport interface CronProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 隐藏域 */\n exclude?: string[];\n /** 显示表达式\n * @default true\n */\n showCron?: boolean;\n /** 标签页类型\n * @default 'line'\n */\n type?: 'line' | 'card';\n /** 值 */\n value?: string;\n /** 默认值\n * @default 0 0 0 * * ? *\n */\n defaultValue?: string;\n /** 值改变触发a */\n onChange?(val?: string): void;\n}\n\nexport type CronElement = CustomElement<CronProps>;\nexport type SecondType = '*' | 'period' | 'beginInterval' | 'some';\nexport type MinuteType = SecondType;\nexport type HourType = SecondType;\nexport type DayType = SecondType | 'closeWorkDay' | '?' | 'last';\nexport type WeekType = SecondType | 'last' | '?';\nexport type MonthType = SecondType;\nexport type YearType = SecondType | '';\nexport type CronData<T extends string = string> = {\n start: number;\n end: number;\n begin: number;\n beginEvery: number;\n type: T;\n some: number[];\n value: string;\n};\n\nexport type ActiveTab = keyof CronType;\nexport type CronType = {\n second: CronData<SecondType>;\n minute: CronData<MinuteType>;\n hour: CronData<HourType>;\n day: CronData<DayType> & { last: number; closeWorkDay: number };\n week: CronData<WeekType> & { last: number };\n month: CronData<MonthType>;\n year: CronData<YearType>;\n};\n\nfunction Cron(props: CronProps) {\n const [local] = splitProps(props, [\n 'value',\n 'defaultValue',\n 'exclude',\n 'onChange',\n 'type',\n 'showCron',\n 'css',\n 'class',\n ]);\n const [value, setValue] = createSignal(local.defaultValue);\n const date = new Date();\n const fullYear = date.getFullYear();\n const defaultState = {\n hms: {\n start: 0,\n end: 1,\n begin: 0,\n beginEvery: 1,\n some: [0],\n value: '',\n },\n mwd: {\n start: 1,\n end: 2,\n begin: 1,\n beginEvery: 1,\n some: [1],\n value: '',\n },\n year: {\n start: fullYear,\n end: fullYear + 1,\n begin: fullYear,\n beginEvery: 1,\n some: [fullYear],\n value: '',\n },\n };\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n const [active, setActive] = createSignal<ActiveTab>('second');\n const [state, setState] = createSignal<CronType>({\n second: { type: '*', ...defaultState.hms },\n minute: { type: '*', ...defaultState.hms },\n hour: { type: '*', ...defaultState.hms },\n day: {\n type: '*',\n last: 1,\n closeWorkDay: 1,\n ...defaultState.mwd,\n },\n month: {\n type: '*',\n ...defaultState.mwd,\n },\n week: {\n last: 1,\n type: '?',\n ...defaultState.mwd,\n },\n year: {\n type: '',\n ...defaultState.year,\n },\n });\n\n function prefixWeekDay() {\n const store = untrack(state);\n const isDay = active() === 'day';\n\n if (isDay || active() === 'week') {\n const key = isDay ? 'week' : 'day';\n const next = store[key].type === '?' && store[active()].type === '?' ? '*' : '?';\n\n if (next !== store[key].type) {\n setState((prev) => {\n return {\n ...prev,\n [key]: {\n ...prev[key],\n type: next,\n },\n };\n });\n }\n }\n }\n\n function onChange<T extends CronType[ActiveTab]>(type: keyof T, val: T[keyof T]) {\n batch(() => {\n prefixWeekDay();\n setState((prev) => {\n const next = {\n ...prev[active()],\n [type]: val,\n };\n\n if (type === 'start' || type === 'end') {\n if (next.end - next.start <= 1) {\n if (type === 'end') {\n next.start = (val as number) - 1;\n } else {\n next.end = (val as number) + 1;\n }\n }\n }\n\n return {\n ...prev,\n [active()]: next,\n };\n });\n });\n }\n function changeActiveKey(e: CustomEvent<[string, TabOption, Event]>) {\n setActive(e.detail[0] as ActiveTab);\n }\n function parseVal<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n if (item.value.includes('-')) {\n item.type = 'period';\n const period = item.value.split('-');\n\n item.start = Number(period[0]);\n item.end = Number(period[1]);\n } else if (item.value.includes('W')) {\n item.type = 'closeWorkDay';\n (item as CronType['day']).closeWorkDay = Number(item.value.split('W')[0]) || 1;\n } else if (item.value.includes('L')) {\n item.type = 'last';\n (item as CronType['day']).last = Number(item.value.split('L')[0]) || 1;\n } else if (item.value.includes(isWeek ? '#' : '/')) {\n item.type = 'beginInterval';\n const beginInterval = item.value.split(isWeek ? '#' : '/');\n\n if (isWeek) {\n item.begin = Number(beginInterval[1]);\n item.beginEvery = Number(beginInterval[0]);\n } else {\n item.begin = Number(beginInterval[0]);\n item.beginEvery = Number(beginInterval[1]);\n }\n } else if (item.value.includes(',') || /^[0-9]+$/.test(item.value)) {\n item.type = 'some';\n item.some = item.value.split(',').map(Number);\n } else {\n item.type = item.value as CronType[T]['type'];\n }\n return item;\n }\n\n function nts(num?: string | number) {\n if (typeof num === 'number' && !isNaN(num)) {\n return `${num}`;\n }\n return num;\n }\n\n function fmt<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n switch (item.type) {\n case 'period':\n return `${nts(item.start)}-${nts(item.end)}`;\n case 'beginInterval':\n if (isWeek) return `${nts(item.beginEvery)}#${nts(item.begin)}`;\n return `${nts(item.begin)}/${nts(item.beginEvery)}`;\n case 'closeWorkDay':\n return `${nts(item.closeWorkDay || 1)}W`;\n case 'last':\n return isWeek ? `${nts(item.last)}L` : 'L';\n case 'some':\n return item.some.join(',');\n default:\n return item.type;\n }\n }\n\n createEffect(() => {\n if (local.value !== void 0 && untrack(value) !== local.value) {\n setValue(local.value);\n }\n });\n\n createEffect(() => {\n const val = value();\n\n if (val) {\n const valuesArray = val.toUpperCase().split(' ');\n\n batch(() => {\n setState((prev) => {\n return {\n second: parseVal<'second'>({ ...prev.second, value: valuesArray[0] || '?' }),\n minute: parseVal<'minute'>({ ...prev.minute, value: valuesArray[1] || '?' }),\n hour: parseVal<'hour'>({ ...prev.hour, value: valuesArray[2] || '?' }),\n day: parseVal<'day'>({ ...prev.day, value: valuesArray[3] || '' }),\n month: parseVal<'month'>({ ...prev.month, value: valuesArray[4] || '' }),\n week: parseVal<'week'>({ ...prev.week, value: valuesArray[5] || '' }, true),\n year: parseVal<'year'>({ ...prev.year, value: valuesArray[6] || '' }),\n };\n });\n });\n }\n });\n createEffect(() => {\n const { second, minute, hour, day, month, week, year } = state();\n const next = `${fmt(second)} ${fmt(minute)} ${fmt(hour)} ${fmt(day)} ${fmt(month)} ${fmt(\n week,\n true,\n )} ${fmt(year)}`;\n\n setValue((prev) => {\n if (prev === next) return prev;\n props.onChange?.(next);\n return next;\n });\n });\n\n const items = [\n {\n value: 'second',\n label: '秒',\n content: <Second state={state().second} onChange={onChange} />,\n },\n {\n value: 'minute',\n label: '分钟',\n content: <Minute state={state().minute} onChange={onChange} />,\n },\n {\n value: 'hour',\n label: '小时',\n content: <Hour state={state().hour} onChange={onChange} />,\n },\n {\n value: 'day',\n label: '日',\n content: <Day state={state().day} onChange={onChange} />,\n },\n {\n value: 'week',\n label: '周',\n content: <Week state={state().week} onChange={onChange} />,\n },\n {\n value: 'month',\n label: '月',\n content: <Month state={state().month} onChange={onChange} />,\n },\n {\n value: 'year',\n label: '年',\n content: <Year state={state().year} onChange={onChange} />,\n },\n ];\n\n return (\n <>\n <style>{css(local.css)}</style>\n <n-tabs type={local.type} items={items} value={active()} onChange={changeActiveKey} />\n <Show when={local.showCron}>\n <code\n style={{\n width: '100%',\n display: 'block',\n background: 'var(--component-bg)',\n 'border-radius': 'var(--border-radius)',\n 'text-align': 'center',\n }}\n >\n {value()}\n </code>\n </Show>\n </>\n );\n}\n\ncustomElement<CronProps>(\n 'n-cron',\n {\n value: void 0,\n defaultValue: '0 0 0 * * ? *',\n onChange: void 0,\n type: 'line',\n exclude: [],\n showCron: true,\n } as CronProps,\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(Cron, props);\n },\n);\nexport default Cron;\n"],"names":["Show","batch","createComponent","createEffect","createSignal","mergeProps","splitProps","untrack","css","customElement","Day","Hour","Minute","Month","Second","Week","Year","Cron","props","local","value","setValue","defaultValue","fullYear","date","Date","getFullYear","defaultState","hms","start","end","begin","beginEvery","some","mwd","year","days","daysBeginEvery","x","push","label","active","setActive","state","setState","second","type","minute","hour","day","last","closeWorkDay","month","week","onChange","val","prefixWeekDay","store","isDay","key","next","prev","changeActiveKey","e","detail","parseVal","item","isWeek","includes","period","split","Number","beginInterval","test","map","nts","num","isNaN","fmt","join","valuesArray","toUpperCase","items","content","showCron","exclude","_","opts","el","element","dispatchEvent","CustomEvent"],"rangeMappings":"","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/item.tsx"],"sourcesContent":["import type { ActiveTab, CronType } from '.';\nimport type { RadioOption } from 'neko-ui';\n\nexport type CronItemProps<T extends ActiveTab = 'second'> = {\n state: CronType[T];\n onChange<V extends Exclude<keyof CronType[T], 'value' | 'type'> | 'type'>(\n type: V,\n value: CronType[T][V],\n ): void;\n options: RadioOption[];\n};\n\nfunction Item<T extends ActiveTab>(props: CronItemProps<T>) {\n function handleType(e: CustomEvent<string>) {\n props.onChange?.('type', e.detail as CronType[T]['type']);\n }\n\n return (\n <n-radio\n layout=\"vertical\"\n value={props.state.type}\n options={props.options}\n onChange={handleType}\n />\n );\n}\n\nexport default Item;\n"],"names":["props","handleType","e","onChange","detail","options","state","type"],"mappings":"kNA2BA,gBAfA,SAAmCA,CAAuB,EACxD,SAASC,EAAWC,CAAsB,QACxCF,EAAMG,QAAQ,EAAdH,EAAMG,QAAQ,MAAdH,EAAiB,OAAQE,EAAEE,MAAM,CACnC,CAEA,0CAKcH,iCADDD,EAAMK,OAAO,gBADfL,EAAMM,KAAK,CAACC,IAAI,OAK7B"}
1
+ {"version":3,"sources":["../../components/cron/item.tsx"],"sourcesContent":["import type { ActiveTab, CronType } from '.';\nimport type { RadioOption } from 'neko-ui';\n\nexport type CronItemProps<T extends ActiveTab = 'second'> = {\n state: CronType[T];\n onChange<V extends Exclude<keyof CronType[T], 'value' | 'type'> | 'type'>(\n type: V,\n value: CronType[T][V],\n ): void;\n options: RadioOption[];\n};\n\nfunction Item<T extends ActiveTab>(props: CronItemProps<T>) {\n function handleType(e: CustomEvent<string>) {\n props.onChange?.('type', e.detail as CronType[T]['type']);\n }\n\n return (\n <n-radio\n layout=\"vertical\"\n value={props.state.type}\n options={props.options}\n onChange={handleType}\n />\n );\n}\n\nexport default Item;\n"],"names":["props","handleType","e","onChange","detail","options","state","type"],"rangeMappings":"","mappings":"kNA2BA,gBAfA,SAAmCA,CAAuB,EACxD,SAASC,EAAWC,CAAsB,QACxCF,EAAMG,QAAQ,EAAdH,EAAMG,QAAQ,MAAdH,EAAiB,OAAQE,EAAEE,MAAM,CACnC,CAEA,0CAKcH,iCADDD,EAAMK,OAAO,gBADfL,EAAMM,KAAK,CAACC,IAAI,OAK7B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/minute.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { minutes } from '../date-picker/time';\n\nfunction Minute(props: Required<Omit<CronItemProps<'minute'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 60; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每分钟' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={minutes}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 59 : v > 0 && v <= 59)}\n label={['周期从', '到', '分钟']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={minutes}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 59 : v >= 1 && v <= 60)}\n label={['从', '分开始, 每', '分钟执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体分钟数(至少选择一项)\"\n value={props.state.some}\n options={minutes}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Minute;\n"],"names":["BeginInterval","Item","Period","Some","minutes","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,WAAAA,CAAO,KAAQ,qBAAsB,AAyD9C,gBAvDA,SAAgBC,CAAyD,EACvE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,GACFT,sBACQG,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXV,uBACCC,AAAqB,WAArBA,EAAMO,KAAK,CAACG,IAAI,wBAChBV,EAAMW,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,KAAK,EAG/B,EACA,CACER,MAAO,gBACPC,KAAK,GACFX,sBACQK,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXZ,mBACKE,uBACRD,AAAqB,kBAArBA,EAAMO,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,SAAS,EAGtC,EACA,CACER,MAAO,OACPC,KAAK,GACFR,4CAEQE,EAAMO,KAAK,CAACQ,IAAI,UACdhB,oBACHC,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQf,WAAcQ,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/minute.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { minutes } from '../date-picker/time';\n\nfunction Minute(props: Required<Omit<CronItemProps<'minute'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 60; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每分钟' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={minutes}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 59 : v > 0 && v <= 59)}\n label={['周期从', '到', '分钟']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={minutes}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 59 : v >= 1 && v <= 60)}\n label={['从', '分开始, 每', '分钟执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体分钟数(至少选择一项)\"\n value={props.state.some}\n options={minutes}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Minute;\n"],"names":["BeginInterval","Item","Period","Some","minutes","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"rangeMappings":"","mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,WAAAA,CAAO,KAAQ,qBAAsB,AAyD9C,gBAvDA,SAAgBC,CAAyD,EACvE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,GACFT,sBACQG,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXV,uBACCC,AAAqB,WAArBA,EAAMO,KAAK,CAACG,IAAI,wBAChBV,EAAMW,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,KAAK,EAG/B,EACA,CACER,MAAO,gBACPC,KAAK,GACFX,sBACQK,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXZ,mBACKE,uBACRD,AAAqB,kBAArBA,EAAMO,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,SAAS,EAGtC,EACA,CACER,MAAO,OACPC,KAAK,GACFR,4CAEQE,EAAMO,KAAK,CAACQ,IAAI,UACdhB,oBACHC,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQf,WAAcQ,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/month.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { months as month } from '../date-picker/month';\n\nconst months = month.map((m, i) => ({ label: m, value: i }));\n\nfunction Month(props: Required<Omit<CronItemProps<'month'>, 'options'>>) {\n const beginEvery: number[] = [];\n\n for (let x = 1; x < 13; x++) {\n beginEvery.push(x);\n }\n\n const options = [\n { value: '*', label: '每月' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={months}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 1 && v < 12 : v > 1 && v <= 12)}\n label={['周期从', '到', '月']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={months}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => v >= 1 && v <= 12}\n label={['从', '开始, 每', '个月执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体月数(至少选择一项)\"\n value={props.state.some}\n options={months}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Month;\n"],"names":["BeginInterval","Item","Period","Some","months","month","map","m","i","label","value","props","beginEvery","x","push","options","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,UAAUC,CAAK,KAAQ,sBAAuB,CAEvD,IAAMD,EAASC,EAAMC,GAAG,CAAC,CAACC,EAAGC,IAAO,CAAA,CAAEC,MAAOF,EAAGG,MAAOF,CAAE,CAAA,EAyDzD,gBAvDA,SAAeG,CAAwD,EACrE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAACD,GAGlB,IAAME,EAAU,CACd,CAAEL,MAAO,IAAKD,MAAO,IAAK,EAC1B,CACEC,MAAO,SACPD,KAAK,GACFP,sBACQS,EAAMK,KAAK,CAACC,KAAK,mBACnBN,EAAMK,KAAK,CAACE,GAAG,UACXd,uBACCO,AAAqB,WAArBA,EAAMK,KAAK,CAACG,IAAI,wBAChBR,EAAMS,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACEZ,MAAO,gBACPD,KAAK,GACFT,sBACQW,EAAMK,KAAK,CAACO,KAAK,0BACZZ,EAAMK,KAAK,CAACJ,UAAU,wBACxBD,EAAMS,QAAQ,cACXhB,mBACKQ,uBACRD,AAAqB,kBAArBA,EAAMK,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAMA,GAAK,GAAKA,GAAK,SAC5B,CAAC,IAAK,QAAS,SAAS,EAGrC,EACA,CACEZ,MAAO,OACPD,KAAK,GACFN,2CAEQQ,EAAMK,KAAK,CAACQ,IAAI,UACdpB,oBACHO,EAAMK,KAAK,CAACG,IAAI,wBACZR,EAAMS,QAAQ,GAG9B,EACD,CAED,SAAQnB,WAAcc,wBAAmBJ,EAAMS,QAAQ,qBAAST,EAAMK,KAAK,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/month.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { months as month } from '../date-picker/month';\n\nconst months = month.map((m, i) => ({ label: m, value: i }));\n\nfunction Month(props: Required<Omit<CronItemProps<'month'>, 'options'>>) {\n const beginEvery: number[] = [];\n\n for (let x = 1; x < 13; x++) {\n beginEvery.push(x);\n }\n\n const options = [\n { value: '*', label: '每月' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={months}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 1 && v < 12 : v > 1 && v <= 12)}\n label={['周期从', '到', '月']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={months}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => v >= 1 && v <= 12}\n label={['从', '开始, 每', '个月执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体月数(至少选择一项)\"\n value={props.state.some}\n options={months}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Month;\n"],"names":["BeginInterval","Item","Period","Some","months","month","map","m","i","label","value","props","beginEvery","x","push","options","state","start","end","type","onChange","_","v","begin","some"],"rangeMappings":"","mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,UAAUC,CAAK,KAAQ,sBAAuB,CAEvD,IAAMD,EAASC,EAAMC,GAAG,CAAC,CAACC,EAAGC,IAAO,CAAA,CAAEC,MAAOF,EAAGG,MAAOF,CAAE,CAAA,EAyDzD,gBAvDA,SAAeG,CAAwD,EACrE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAACD,GAGlB,IAAME,EAAU,CACd,CAAEL,MAAO,IAAKD,MAAO,IAAK,EAC1B,CACEC,MAAO,SACPD,KAAK,GACFP,sBACQS,EAAMK,KAAK,CAACC,KAAK,mBACnBN,EAAMK,KAAK,CAACE,GAAG,UACXd,uBACCO,AAAqB,WAArBA,EAAMK,KAAK,CAACG,IAAI,wBAChBR,EAAMS,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACEZ,MAAO,gBACPD,KAAK,GACFT,sBACQW,EAAMK,KAAK,CAACO,KAAK,0BACZZ,EAAMK,KAAK,CAACJ,UAAU,wBACxBD,EAAMS,QAAQ,cACXhB,mBACKQ,uBACRD,AAAqB,kBAArBA,EAAMK,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAMA,GAAK,GAAKA,GAAK,SAC5B,CAAC,IAAK,QAAS,SAAS,EAGrC,EACA,CACEZ,MAAO,OACPD,KAAK,GACFN,2CAEQQ,EAAMK,KAAK,CAACQ,IAAI,UACdpB,oBACHO,EAAMK,KAAK,CAACG,IAAI,wBACZR,EAAMS,QAAQ,GAG9B,EACD,CAED,SAAQnB,WAAcc,wBAAmBJ,EAAMS,QAAQ,qBAAST,EAAMK,KAAK,GAC7E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/period.tsx"],"sourcesContent":["import { selectCss, selectPortalCss } from './style';\nimport type { CronData } from '.';\nimport type { BaseOption } from 'neko-ui';\n\ntype PeriodProps = {\n start: CronData['start'];\n end: CronData['end'];\n label: [JSX.Element, JSX.Element, JSX.Element];\n options: (string | number | BaseOption)[];\n onChange(type: 'start' | 'end', value: number): void;\n validate(type: 'start' | 'end', v: number): boolean;\n disabled: boolean;\n};\n\nfunction Period(props: PeriodProps) {\n function onChange(\n type: 'start' | 'end',\n e: CustomEvent<[val: number | string, item: BaseOption]>,\n ) {\n const [value] = e.detail;\n const v = Number(value);\n\n if (props.validate(type, v)) {\n props.onChange(type, v);\n }\n }\n\n return (\n <>\n {props.label[0]}\n <n-select\n value={props.start}\n onChange={onChange.bind(null, 'start')}\n options={props.options.slice(0, -1)}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[1]}\n <n-select\n value={props.end}\n onChange={onChange.bind(null, 'end')}\n options={props.options.slice(1)}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[2]}\n </>\n );\n}\n\nexport default Period;\n"],"names":["selectCss","selectPortalCss","props","onChange","type","e","value","detail","v","Number","validate","label","bind","options","slice","disabled","start","end"],"mappings":"qOAAA,QAASA,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAwDrD,gBA1CA,SAAgBC,CAAkB,EAChC,SAASC,EACPC,CAAqB,CACrBC,CAAwD,EAExD,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,CAClBC,EAAIC,OAAOH,GAEbJ,EAAMQ,QAAQ,CAACN,EAAMI,IACvBN,EAAMC,QAAQ,CAACC,EAAMI,EAEzB,CAEA,aAEKN,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,gBAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMW,OAAO,CAACC,KAAK,CAAC,EAAG,MACtBZ,EAAMa,QAAQ,oHAHjBb,EAAMc,KAAK,cASnBd,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,cAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMW,OAAO,CAACC,KAAK,CAAC,KACnBZ,EAAMa,QAAQ,uHAHjBb,EAAMe,GAAG,cASjBf,EAAMS,KAAK,CAAC,EAAE,EAGrB"}
1
+ {"version":3,"sources":["../../components/cron/period.tsx"],"sourcesContent":["import { selectCss, selectPortalCss } from './style';\nimport type { CronData } from '.';\nimport type { BaseOption } from 'neko-ui';\n\ntype PeriodProps = {\n start: CronData['start'];\n end: CronData['end'];\n label: [JSX.Element, JSX.Element, JSX.Element];\n options: (string | number | BaseOption)[];\n onChange(type: 'start' | 'end', value: number): void;\n validate(type: 'start' | 'end', v: number): boolean;\n disabled: boolean;\n};\n\nfunction Period(props: PeriodProps) {\n function onChange(\n type: 'start' | 'end',\n e: CustomEvent<[val: number | string, item: BaseOption]>,\n ) {\n const [value] = e.detail;\n const v = Number(value);\n\n if (props.validate(type, v)) {\n props.onChange(type, v);\n }\n }\n\n return (\n <>\n {props.label[0]}\n <n-select\n value={props.start}\n onChange={onChange.bind(null, 'start')}\n options={props.options.slice(0, -1)}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[1]}\n <n-select\n value={props.end}\n onChange={onChange.bind(null, 'end')}\n options={props.options.slice(1)}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[2]}\n </>\n );\n}\n\nexport default Period;\n"],"names":["selectCss","selectPortalCss","props","onChange","type","e","value","detail","v","Number","validate","label","bind","options","slice","disabled","start","end"],"rangeMappings":"","mappings":"qOAAA,QAASA,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAwDrD,gBA1CA,SAAgBC,CAAkB,EAChC,SAASC,EACPC,CAAqB,CACrBC,CAAwD,EAExD,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,CAClBC,EAAIC,OAAOH,GAEbJ,EAAMQ,QAAQ,CAACN,EAAMI,IACvBN,EAAMC,QAAQ,CAACC,EAAMI,EAEzB,CAEA,aAEKN,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,gBAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMW,OAAO,CAACC,KAAK,CAAC,EAAG,MACtBZ,EAAMa,QAAQ,oHAHjBb,EAAMc,KAAK,cASnBd,EAAMS,KAAK,CAAC,EAAE,sCAGHR,EAASS,IAAI,CAAC,KAAM,cAGzBZ,aACMC,6BACkB,CAAA,UACtB,CAAA,4BALEC,EAAMW,OAAO,CAACC,KAAK,CAAC,KACnBZ,EAAMa,QAAQ,uHAHjBb,EAAMe,GAAG,cASjBf,EAAMS,KAAK,CAAC,EAAE,EAGrB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/second.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { minutes as seconds } from '../date-picker/time';\n\nfunction Second(props: Required<Omit<CronItemProps<'month'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 60; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每秒' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={seconds}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 59 : v > 0 && v <= 59)}\n label={['周期从', '到', '秒']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={seconds}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 59 : v >= 0 && v <= 60)}\n label={['从', '秒开始, 每', '秒执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体秒数(至少选择一项)\"\n value={props.state.some}\n options={seconds}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Second;\n"],"names":["BeginInterval","Item","Period","Some","minutes","seconds","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,WAAWC,CAAO,KAAQ,qBAAsB,AAyDzD,gBAvDA,SAAgBC,CAAwD,EACtE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,IAAK,EAC1B,CACED,MAAO,SACPC,KAAK,GACFV,sBACQI,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXV,uBACCC,AAAqB,WAArBA,EAAMO,KAAK,CAACG,IAAI,wBAChBV,EAAMW,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPC,KAAK,GACFZ,sBACQM,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXZ,mBACKE,uBACRD,AAAqB,kBAArBA,EAAMO,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,QAAQ,EAGrC,EACA,CACER,MAAO,OACPC,KAAK,GACFT,2CAEQG,EAAMO,KAAK,CAACQ,IAAI,UACdhB,oBACHC,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQhB,WAAcS,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/second.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { minutes as seconds } from '../date-picker/time';\n\nfunction Second(props: Required<Omit<CronItemProps<'month'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 60; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每秒' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={seconds}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 59 : v > 0 && v <= 59)}\n label={['周期从', '到', '秒']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={seconds}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 59 : v >= 0 && v <= 60)}\n label={['从', '秒开始, 每', '秒执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体秒数(至少选择一项)\"\n value={props.state.some}\n options={seconds}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Second;\n"],"names":["BeginInterval","Item","Period","Some","minutes","seconds","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"rangeMappings":"","mappings":"mEAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,WAAWC,CAAO,KAAQ,qBAAsB,AAyDzD,gBAvDA,SAAgBC,CAAwD,EACtE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,IAAK,EAC1B,CACED,MAAO,SACPC,KAAK,GACFV,sBACQI,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXV,uBACCC,AAAqB,WAArBA,EAAMO,KAAK,CAACG,IAAI,wBAChBV,EAAMW,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPC,KAAK,GACFZ,sBACQM,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXZ,mBACKE,uBACRD,AAAqB,kBAArBA,EAAMO,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,QAAQ,EAGrC,EACA,CACER,MAAO,OACPC,KAAK,GACFT,2CAEQG,EAAMO,KAAK,CAACQ,IAAI,UACdhB,oBACHC,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQhB,WAAcS,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/some.tsx"],"sourcesContent":["import { selectPortalCss } from './style';\nimport type { CronData } from '.';\nimport type { BaseOption } from 'neko-ui';\n\ntype SomeProps = {\n value: CronData['some'];\n label: JSX.Element;\n options: (string | number | BaseOption)[];\n type: CronData['type'];\n onChange(type: 'some', value: number[]): void;\n};\n\nfunction Some(props: SomeProps) {\n function onChange(e: CustomEvent<[val: (number | string)[], item: BaseOption]>) {\n const [value] = e.detail;\n\n if (value.length < 1) {\n return;\n }\n props.onChange('some', value as number[]);\n }\n return (\n <>\n {props.label}\n <n-select\n multiple={true}\n style={{ flex: 1 }}\n value={props.value}\n onChange={onChange}\n options={props.options}\n disabled={props.type !== 'some'}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n </>\n );\n}\n\nexport default Some;\n"],"names":["selectPortalCss","props","onChange","e","value","detail","length","label","options","type"],"mappings":"qOAAA,QAASA,mBAAAA,CAAe,KAAQ,SAAU,AAuC1C,gBA3BA,SAAcC,CAAgB,EAC5B,SAASC,EAASC,CAA4D,EAC5E,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,AAEpBD,CAAAA,EAAME,MAAM,CAAG,GAGnBL,EAAMC,QAAQ,CAAC,OAAQE,EACzB,CACA,aAEKH,EAAMM,KAAK,sCAKAL,cAHA,CAAA,6CAMCF,6BACkB,CAAA,UACtB,CAAA,4BAJEC,EAAMO,OAAO,GACZP,AAAe,SAAfA,EAAMQ,IAAI,oHAHbR,EAAMG,KAAK,QAU1B"}
1
+ {"version":3,"sources":["../../components/cron/some.tsx"],"sourcesContent":["import { selectPortalCss } from './style';\nimport type { CronData } from '.';\nimport type { BaseOption } from 'neko-ui';\n\ntype SomeProps = {\n value: CronData['some'];\n label: JSX.Element;\n options: (string | number | BaseOption)[];\n type: CronData['type'];\n onChange(type: 'some', value: number[]): void;\n};\n\nfunction Some(props: SomeProps) {\n function onChange(e: CustomEvent<[val: (number | string)[], item: BaseOption]>) {\n const [value] = e.detail;\n\n if (value.length < 1) {\n return;\n }\n props.onChange('some', value as number[]);\n }\n return (\n <>\n {props.label}\n <n-select\n multiple={true}\n style={{ flex: 1 }}\n value={props.value}\n onChange={onChange}\n options={props.options}\n disabled={props.type !== 'some'}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n </>\n );\n}\n\nexport default Some;\n"],"names":["selectPortalCss","props","onChange","e","value","detail","length","label","options","type"],"rangeMappings":"","mappings":"qOAAA,QAASA,mBAAAA,CAAe,KAAQ,SAAU,AAuC1C,gBA3BA,SAAcC,CAAgB,EAC5B,SAASC,EAASC,CAA4D,EAC5E,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,AAEpBD,CAAAA,EAAME,MAAM,CAAG,GAGnBL,EAAMC,QAAQ,CAAC,OAAQE,EACzB,CACA,aAEKH,EAAMM,KAAK,sCAKAL,cAHA,CAAA,6CAMCF,6BACkB,CAAA,UACtB,CAAA,4BAJEC,EAAMO,OAAO,GACZP,AAAe,SAAfA,EAAMQ,IAAI,oHAHbR,EAAMG,KAAK,QAU1B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const selectPortalCss = css`\n .portal {\n inline-size: 232px;\n }\n\n .portal n-menu::part(menu) {\n display: flex;\n flex-wrap: wrap;\n max-block-size: 250px;\n gap: 4px;\n }\n\n .portal n-menu::part(item) {\n display: flex;\n justify-content: center;\n align-items: center;\n column-gap: 0;\n inline-size: calc((100% - 8px) / 3);\n border-radius: 4px;\n }\n\n .portal n-menu::part(suffix) {\n display: none;\n }\n`;\n\nexport const selectCss = css`\n .select {\n min-inline-size: unset;\n inline-size: 70px;\n text-align: center;\n }\n`;\nexport const numCss = css`\n .fieldset {\n inline-size: 70px;\n min-inline-size: unset;\n }\n`;\n"],"names":["css","selectPortalCss","selectCss","numCss"],"mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,gBAAkBD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAwBnC,CAAC,AAAC,AAEF,QAAO,MAAME,UAAYF,CAAG,CAAC;;;;;;AAM7B,CAAC,AAAC,AACF,QAAO,MAAMG,OAASH,CAAG,CAAC;;;;;AAK1B,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../components/cron/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const selectPortalCss = css`\n .portal {\n inline-size: 232px;\n }\n\n .portal n-menu::part(menu) {\n display: flex;\n flex-wrap: wrap;\n max-block-size: 250px;\n gap: 4px;\n }\n\n .portal n-menu::part(item) {\n display: flex;\n justify-content: center;\n align-items: center;\n column-gap: 0;\n inline-size: calc((100% - 8px) / 3);\n border-radius: 4px;\n }\n\n .portal n-menu::part(suffix) {\n display: none;\n }\n`;\n\nexport const selectCss = css`\n .select {\n min-inline-size: unset;\n inline-size: 70px;\n text-align: center;\n }\n`;\nexport const numCss = css`\n .fieldset {\n inline-size: 70px;\n min-inline-size: unset;\n }\n`;\n"],"names":["css","selectPortalCss","selectCss","numCss"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,gBAAkBD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAwBnC,CAAC,AAAC,AAEF,QAAO,MAAME,UAAYF,CAAG,CAAC;;;;;;AAM7B,CAAC,AAAC,AACF,QAAO,MAAMG,OAASH,CAAG,CAAC;;;;;AAK1B,CAAC,AAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/week.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { selectCss, selectPortalCss } from './style';\n\nfunction Week(props: Required<Omit<CronItemProps<'week'>, 'options'>>) {\n const weeks = [\n {\n label: '星期日',\n value: 1,\n },\n {\n label: '星期一',\n value: 2,\n },\n {\n label: '星期二',\n value: 3,\n },\n {\n label: '星期三',\n value: 4,\n },\n {\n label: '星期四',\n value: 5,\n },\n {\n label: '星期五',\n value: 6,\n },\n {\n label: '星期六',\n value: 7,\n },\n ];\n const beginEvery = [\n { value: 1, label: '1周' },\n { value: 2, label: '2周' },\n { value: 3, label: '3周' },\n { value: 4, label: '4周' },\n ];\n\n const options = [\n { value: '*', label: '每周' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={weeks}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 1 && v < 7 : v > 1 && v <= 7)}\n label={['周期从', '到', '日']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={beginEvery}\n beginEveryOption={weeks}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 1 && v <= 4 : true)}\n label={['第', '的', null]}\n />\n ),\n },\n {\n value: 'last',\n label: (\n <>\n 本月最后一个\n <n-select\n value={props.state.last}\n onChange={(e) => {\n props.onChange('last', Number(e.detail[0]));\n }}\n options={weeks}\n disabled={props.state.type !== 'last'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n </>\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体星期数(至少选择一项)\"\n value={props.state.some}\n options={weeks}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Week;\n"],"names":["BeginInterval","Item","Period","Some","selectCss","selectPortalCss","props","weeks","label","value","options","state","start","end","type","onChange","_","v","begin","beginEvery","e","Number","detail","last","some"],"mappings":"qNAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AA6GrD,gBA3GA,SAAcC,CAAuD,EACnE,IAAMC,EAAQ,CACZ,CACEC,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACD,CAQKC,EAAU,CACd,CAAED,MAAO,IAAKD,MAAO,IAAK,EAC1B,CAAEC,MAAO,IAAKD,MAAO,KAAM,EAC3B,CACEC,MAAO,SACPD,KAAK,GACFN,sBACQI,EAAMK,KAAK,CAACC,KAAK,mBACnBN,EAAMK,KAAK,CAACE,GAAG,UACXN,uBACCD,AAAqB,WAArBA,EAAMK,KAAK,CAACG,IAAI,wBAChBR,EAAMS,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,EAAIA,EAAI,GAAKA,GAAK,QAC9D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPD,KAAK,GACFR,sBACQM,EAAMK,KAAK,CAACO,KAAK,0BACZZ,EAAMK,KAAK,CAACQ,UAAU,wBACxBb,EAAMS,QAAQ,cA9Bb,CACjB,CAAEN,MAAO,EAAGD,MAAO,IAAK,EACxB,CAAEC,MAAO,EAAGD,MAAO,IAAK,EACxB,CAAEC,MAAO,EAAGD,MAAO,IAAK,EACxB,CAAEC,MAAO,EAAGD,MAAO,IAAK,EACzB,kBA2ByBD,uBACRD,AAAqB,kBAArBA,EAAMK,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,GAAgBC,GAAK,GAAKA,GAAK,QAC7C,CAAC,IAAK,IAAK,KAAK,EAG7B,EACA,CACER,MAAO,OACPD,KAAK,8DAKW,AAACY,IACTd,EAAMS,QAAQ,CAAC,OAAQM,OAAOD,EAAEE,MAAM,CAAC,EAAE,EAC3C,aACSf,QAEJH,aACMC,6BACkB,CAAA,UACtB,CAAA,iCAJGC,AAAqB,SAArBA,EAAMK,KAAK,CAACG,IAAI,gBALnBR,EAAMK,KAAK,CAACY,IAAI,QAa/B,EACA,CACEd,MAAO,OACPD,KAAK,GACFL,4CAEQG,EAAMK,KAAK,CAACa,IAAI,UACdjB,oBACHD,EAAMK,KAAK,CAACG,IAAI,wBACZR,EAAMS,QAAQ,GAG9B,EACD,CAED,SAAQd,WAAcS,wBAAmBJ,EAAMS,QAAQ,qBAAST,EAAMK,KAAK,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/week.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { selectCss, selectPortalCss } from './style';\n\nfunction Week(props: Required<Omit<CronItemProps<'week'>, 'options'>>) {\n const weeks = [\n {\n label: '星期日',\n value: 1,\n },\n {\n label: '星期一',\n value: 2,\n },\n {\n label: '星期二',\n value: 3,\n },\n {\n label: '星期三',\n value: 4,\n },\n {\n label: '星期四',\n value: 5,\n },\n {\n label: '星期五',\n value: 6,\n },\n {\n label: '星期六',\n value: 7,\n },\n ];\n const beginEvery = [\n { value: 1, label: '1周' },\n { value: 2, label: '2周' },\n { value: 3, label: '3周' },\n { value: 4, label: '4周' },\n ];\n\n const options = [\n { value: '*', label: '每周' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={weeks}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 1 && v < 7 : v > 1 && v <= 7)}\n label={['周期从', '到', '日']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={beginEvery}\n beginEveryOption={weeks}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 1 && v <= 4 : true)}\n label={['第', '的', null]}\n />\n ),\n },\n {\n value: 'last',\n label: (\n <>\n 本月最后一个\n <n-select\n value={props.state.last}\n onChange={(e) => {\n props.onChange('last', Number(e.detail[0]));\n }}\n options={weeks}\n disabled={props.state.type !== 'last'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n </>\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体星期数(至少选择一项)\"\n value={props.state.some}\n options={weeks}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Week;\n"],"names":["BeginInterval","Item","Period","Some","selectCss","selectPortalCss","props","weeks","label","value","options","state","start","end","type","onChange","_","v","begin","beginEvery","e","Number","detail","last","some"],"rangeMappings":"","mappings":"qNAAA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AA6GrD,gBA3GA,SAAcC,CAAuD,EACnE,IAAMC,EAAQ,CACZ,CACEC,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACA,CACED,MAAO,MACPC,MAAO,CACT,EACD,CAQKC,EAAU,CACd,CAAED,MAAO,IAAKD,MAAO,IAAK,EAC1B,CAAEC,MAAO,IAAKD,MAAO,KAAM,EAC3B,CACEC,MAAO,SACPD,KAAK,GACFN,sBACQI,EAAMK,KAAK,CAACC,KAAK,mBACnBN,EAAMK,KAAK,CAACE,GAAG,UACXN,uBACCD,AAAqB,WAArBA,EAAMK,KAAK,CAACG,IAAI,wBAChBR,EAAMS,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,EAAIA,EAAI,GAAKA,GAAK,QAC9D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACER,MAAO,gBACPD,KAAK,GACFR,sBACQM,EAAMK,KAAK,CAACO,KAAK,0BACZZ,EAAMK,KAAK,CAACQ,UAAU,wBACxBb,EAAMS,QAAQ,cA9Bb,CACjB,CAAEN,MAAO,EAAGD,MAAO,IAAK,EACxB,CAAEC,MAAO,EAAGD,MAAO,IAAK,EACxB,CAAEC,MAAO,EAAGD,MAAO,IAAK,EACxB,CAAEC,MAAO,EAAGD,MAAO,IAAK,EACzB,kBA2ByBD,uBACRD,AAAqB,kBAArBA,EAAMK,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,GAAgBC,GAAK,GAAKA,GAAK,QAC7C,CAAC,IAAK,IAAK,KAAK,EAG7B,EACA,CACER,MAAO,OACPD,KAAK,8DAKW,AAACY,IACTd,EAAMS,QAAQ,CAAC,OAAQM,OAAOD,EAAEE,MAAM,CAAC,EAAE,EAC3C,aACSf,QAEJH,aACMC,6BACkB,CAAA,UACtB,CAAA,iCAJGC,AAAqB,SAArBA,EAAMK,KAAK,CAACG,IAAI,gBALnBR,EAAMK,KAAK,CAACY,IAAI,QAa/B,EACA,CACEd,MAAO,OACPD,KAAK,GACFL,4CAEQG,EAAMK,KAAK,CAACa,IAAI,UACdjB,oBACHD,EAAMK,KAAK,CAACG,IAAI,wBACZR,EAAMS,QAAQ,GAG9B,EACD,CAED,SAAQd,WAAcS,wBAAmBJ,EAAMS,QAAQ,qBAAST,EAAMK,KAAK,GAC7E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/year.tsx"],"sourcesContent":["import Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { numCss, selectCss, selectPortalCss } from './style';\n\nfunction Year(props: Required<Omit<CronItemProps<'year'>, 'options'>>) {\n const fullYear = new Date().getFullYear();\n const years: number[] = [];\n\n for (let i = 0, len = 2099 - fullYear; i <= len; i++) {\n years.push(fullYear + i);\n }\n\n const options = [\n { value: '*', label: '每年' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={years}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= fullYear : v >= fullYear + 1)}\n label={['周期从', '到', '年']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <>\n 从\n <n-select\n value={props.state.begin}\n onChange={(e) => {\n const [value] = e.detail;\n const v = Number(value);\n\n if (v >= fullYear) {\n props.onChange('begin', v);\n }\n }}\n options={years}\n disabled={props.state.type !== 'beginInterval'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n 年开始触发,每隔\n <n-input-number\n value={props.state.beginEvery}\n css={numCss}\n onChange={(e) => {\n const v = Number(e.detail);\n\n if (v) {\n props.onChange('beginEvery', v);\n }\n }}\n disabled={props.state.type !== 'beginInterval'}\n min={0}\n />\n 年触发1次\n </>\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体年(至少选择一项)\"\n value={props.state.some}\n options={years}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Year;\n"],"names":["Item","Period","Some","numCss","selectCss","selectPortalCss","props","fullYear","Date","getFullYear","years","i","len","push","options","value","label","state","start","end","type","onChange","_","v","e","detail","Number","begin","beginEvery","some"],"mappings":"2PAAA,QAAOA,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,UAAAA,CAAM,CAAEC,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAoF7D,gBAlFA,SAAcC,CAAuD,EACnE,IAAMC,EAAW,IAAIC,OAAOC,WAAW,GACjCC,EAAkB,EAAE,CAE1B,IAAK,IAAIC,EAAI,EAAGC,EAAM,KAAOL,EAAUI,GAAKC,EAAKD,IAC/CD,EAAMG,IAAI,CAACN,EAAWI,GAGxB,IAAMG,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,IAAK,EAC1B,CAAED,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,GACFf,sBACQK,EAAMW,KAAK,CAACC,KAAK,mBACnBZ,EAAMW,KAAK,CAACE,GAAG,UACXT,uBACCJ,AAAqB,WAArBA,EAAMW,KAAK,CAACG,IAAI,wBAChBd,EAAMe,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAKhB,EAAWgB,GAAKhB,EAAW,QAC9D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACEQ,MAAO,gBACPC,KAAK,yDAKW,AAACQ,IACT,GAAM,CAACT,EAAM,CAAGS,EAAEC,MAAM,CAClBF,EAAIG,OAAOX,GAEbQ,GAAKhB,GACPD,EAAMe,QAAQ,CAAC,QAASE,EAE5B,aACSb,QAEJN,aACMC,6BACkB,CAAA,UACtB,CAAA,iCAJGC,AAAqB,kBAArBA,EAAMW,KAAK,CAACG,IAAI,gBAVnBd,EAAMW,KAAK,CAACU,KAAK,sEAoBd,AAACH,IACT,IAAMD,EAAIG,OAAOF,EAAEC,MAAM,EAErBF,GACFjB,EAAMe,QAAQ,CAAC,aAAcE,EAEjC,SAPKpB,iCAQKG,AAAqB,kBAArBA,EAAMW,KAAK,CAACG,IAAI,gBATnBd,EAAMW,KAAK,CAACW,UAAU,gBAerC,EACA,CACEb,MAAO,OACPC,KAAK,GACFd,0CAEQI,EAAMW,KAAK,CAACY,IAAI,UACdnB,oBACHJ,EAAMW,KAAK,CAACG,IAAI,wBACZd,EAAMe,QAAQ,GAG9B,EACD,CAED,SAAQrB,WAAcc,wBAAmBR,EAAMe,QAAQ,qBAASf,EAAMW,KAAK,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/year.tsx"],"sourcesContent":["import Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { numCss, selectCss, selectPortalCss } from './style';\n\nfunction Year(props: Required<Omit<CronItemProps<'year'>, 'options'>>) {\n const fullYear = new Date().getFullYear();\n const years: number[] = [];\n\n for (let i = 0, len = 2099 - fullYear; i <= len; i++) {\n years.push(fullYear + i);\n }\n\n const options = [\n { value: '*', label: '每年' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={years}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= fullYear : v >= fullYear + 1)}\n label={['周期从', '到', '年']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <>\n 从\n <n-select\n value={props.state.begin}\n onChange={(e) => {\n const [value] = e.detail;\n const v = Number(value);\n\n if (v >= fullYear) {\n props.onChange('begin', v);\n }\n }}\n options={years}\n disabled={props.state.type !== 'beginInterval'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n 年开始触发,每隔\n <n-input-number\n value={props.state.beginEvery}\n css={numCss}\n onChange={(e) => {\n const v = Number(e.detail);\n\n if (v) {\n props.onChange('beginEvery', v);\n }\n }}\n disabled={props.state.type !== 'beginInterval'}\n min={0}\n />\n 年触发1次\n </>\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体年(至少选择一项)\"\n value={props.state.some}\n options={years}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Year;\n"],"names":["Item","Period","Some","numCss","selectCss","selectPortalCss","props","fullYear","Date","getFullYear","years","i","len","push","options","value","label","state","start","end","type","onChange","_","v","e","detail","Number","begin","beginEvery","some"],"rangeMappings":"","mappings":"2PAAA,QAAOA,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,UAAAA,CAAM,CAAEC,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAoF7D,gBAlFA,SAAcC,CAAuD,EACnE,IAAMC,EAAW,IAAIC,OAAOC,WAAW,GACjCC,EAAkB,EAAE,CAE1B,IAAK,IAAIC,EAAI,EAAGC,EAAM,KAAOL,EAAUI,GAAKC,EAAKD,IAC/CD,EAAMG,IAAI,CAACN,EAAWI,GAGxB,IAAMG,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,IAAK,EAC1B,CAAED,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,GACFf,sBACQK,EAAMW,KAAK,CAACC,KAAK,mBACnBZ,EAAMW,KAAK,CAACE,GAAG,UACXT,uBACCJ,AAAqB,WAArBA,EAAMW,KAAK,CAACG,IAAI,wBAChBd,EAAMe,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAKhB,EAAWgB,GAAKhB,EAAW,QAC9D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACEQ,MAAO,gBACPC,KAAK,yDAKW,AAACQ,IACT,GAAM,CAACT,EAAM,CAAGS,EAAEC,MAAM,CAClBF,EAAIG,OAAOX,GAEbQ,GAAKhB,GACPD,EAAMe,QAAQ,CAAC,QAASE,EAE5B,aACSb,QAEJN,aACMC,6BACkB,CAAA,UACtB,CAAA,iCAJGC,AAAqB,kBAArBA,EAAMW,KAAK,CAACG,IAAI,gBAVnBd,EAAMW,KAAK,CAACU,KAAK,sEAoBd,AAACH,IACT,IAAMD,EAAIG,OAAOF,EAAEC,MAAM,EAErBF,GACFjB,EAAMe,QAAQ,CAAC,aAAcE,EAEjC,SAPKpB,iCAQKG,AAAqB,kBAArBA,EAAMW,KAAK,CAACG,IAAI,gBATnBd,EAAMW,KAAK,CAACW,UAAU,gBAerC,EACA,CACEb,MAAO,OACPC,KAAK,GACFd,0CAEQI,EAAMW,KAAK,CAACY,IAAI,UACdnB,oBACHJ,EAAMW,KAAK,CAACG,IAAI,wBACZd,EAAMe,QAAQ,GAG9B,EACD,CAED,SAAQrB,WAAcc,wBAAmBR,EAAMe,QAAQ,qBAASf,EAAMW,KAAK,GAC7E"}