neko-ui 2.9.2 → 2.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/avatar/favicon.svg +0 -0
- package/es/avatar/group.js +17 -18
- package/es/avatar/group.js.map +1 -1
- package/es/avatar/index.js +1 -2
- package/es/avatar/index.js.map +1 -1
- package/es/avatar/style.js +1 -2
- package/es/avatar/style.js.map +1 -1
- package/es/back-top/index.js +1 -2
- package/es/back-top/index.js.map +1 -1
- package/es/back-top/style.js +1 -2
- package/es/back-top/style.js.map +1 -1
- package/es/basic-config/index.js +1 -2
- package/es/basic-config/index.js.map +1 -1
- package/es/button/index.js +1 -2
- package/es/button/index.js.map +1 -1
- package/es/button/style.js +1 -2
- package/es/button/style.js.map +1 -1
- package/es/capture-screen/index.js +1 -2
- package/es/capture-screen/index.js.map +1 -1
- package/es/capture-screen/style.js +1 -2
- package/es/capture-screen/style.js.map +1 -1
- package/es/carousel/index.js +1 -2
- package/es/carousel/index.js.map +1 -1
- package/es/carousel/style.js +1 -2
- package/es/carousel/style.js.map +1 -1
- package/es/checkbox/index.js +1 -2
- package/es/checkbox/index.js.map +1 -1
- package/es/checkbox/style.js +1 -2
- package/es/checkbox/style.js.map +1 -1
- package/es/code/index.d.ts +6 -2
- package/es/code/index.js +1 -2
- package/es/code/index.js.map +1 -1
- package/es/code/style.js +25 -26
- package/es/code/style.js.map +1 -1
- package/es/code/worker.js +1 -2
- package/es/code/worker.js.map +1 -1
- package/es/color-palette/index.js +1 -2
- package/es/color-palette/index.js.map +1 -1
- package/es/color-palette/style.js +1 -2
- package/es/color-palette/style.js.map +1 -1
- package/es/color-picker/index.js +1 -2
- package/es/color-picker/index.js.map +1 -1
- package/es/color-picker/style.js +1 -2
- package/es/color-picker/style.js.map +1 -1
- package/es/cron/begin-interval.js +1 -2
- package/es/cron/begin-interval.js.map +1 -1
- package/es/cron/day.js +1 -2
- package/es/cron/day.js.map +1 -1
- package/es/cron/hour.js +1 -2
- package/es/cron/hour.js.map +1 -1
- package/es/cron/index.js +1 -2
- package/es/cron/index.js.map +1 -1
- package/es/cron/item.js +1 -2
- package/es/cron/item.js.map +1 -1
- package/es/cron/minute.js +1 -2
- package/es/cron/minute.js.map +1 -1
- package/es/cron/month.js +1 -2
- package/es/cron/month.js.map +1 -1
- package/es/cron/period.js +1 -2
- package/es/cron/period.js.map +1 -1
- package/es/cron/second.js +1 -2
- package/es/cron/second.js.map +1 -1
- package/es/cron/some.js +1 -2
- package/es/cron/some.js.map +1 -1
- package/es/cron/style.js +1 -2
- package/es/cron/style.js.map +1 -1
- package/es/cron/week.js +1 -2
- package/es/cron/week.js.map +1 -1
- package/es/cron/year.js +1 -2
- package/es/cron/year.js.map +1 -1
- package/es/date-picker/date.js +1 -2
- package/es/date-picker/date.js.map +1 -1
- package/es/date-picker/dayjs.js +1 -2
- package/es/date-picker/dayjs.js.map +1 -1
- package/es/date-picker/index.js +1 -2
- package/es/date-picker/index.js.map +1 -1
- package/es/date-picker/month.js +1 -2
- package/es/date-picker/month.js.map +1 -1
- package/es/date-picker/panel.js +1 -2
- package/es/date-picker/panel.js.map +1 -1
- package/es/date-picker/style.js +1 -2
- package/es/date-picker/style.js.map +1 -1
- package/es/date-picker/time.js +1 -2
- package/es/date-picker/time.js.map +1 -1
- package/es/date-picker/year.js +1 -2
- package/es/date-picker/year.js.map +1 -1
- package/es/dropdown/index.js +1 -2
- package/es/dropdown/index.js.map +1 -1
- package/es/empty/index.js +1 -2
- package/es/empty/index.js.map +1 -1
- package/es/from-schema/index.js +1 -2
- package/es/from-schema/index.js.map +1 -1
- package/es/get-options/index.js +1 -2
- package/es/get-options/index.js.map +1 -1
- package/es/highlight-text/index.js +1 -2
- package/es/highlight-text/index.js.map +1 -1
- package/es/img/index.js +1 -2
- package/es/img/index.js.map +1 -1
- package/es/img/lazy.js +1 -2
- package/es/img/lazy.js.map +1 -1
- package/es/img/style.js +1 -2
- package/es/img/style.js.map +1 -1
- package/es/index.js +1 -2
- package/es/index.js.map +1 -1
- package/es/input/index.js +1 -2
- package/es/input/index.js.map +1 -1
- package/es/input/style.js +1 -2
- package/es/input/style.js.map +1 -1
- package/es/input-number/index.js +1 -2
- package/es/input-number/index.js.map +1 -1
- package/es/katex/index.js +1 -2
- package/es/katex/index.js.map +1 -1
- package/es/md/common.d.ts +4 -0
- package/es/md/common.js +1 -0
- package/es/md/common.js.map +1 -0
- package/es/md/index.d.ts +1 -0
- package/es/md/index.js +1 -2
- package/es/md/index.js.map +1 -1
- package/es/md/worker.d.ts +9 -1
- package/es/md/worker.js +1 -2
- package/es/md/worker.js.map +1 -1
- package/es/md-style/index.js +1 -2
- package/es/md-style/index.js.map +1 -1
- package/es/menu/index.js +1 -2
- package/es/menu/index.js.map +1 -1
- package/es/menu/style.js +1 -2
- package/es/menu/style.js.map +1 -1
- package/es/modal/hooks.js +1 -2
- package/es/modal/hooks.js.map +1 -1
- package/es/modal/index.js +1 -2
- package/es/modal/index.js.map +1 -1
- package/es/modal/store.js +1 -2
- package/es/modal/store.js.map +1 -1
- package/es/modal/style.js +1 -2
- package/es/modal/style.js.map +1 -1
- package/es/notification/index.js +1 -2
- package/es/notification/index.js.map +1 -1
- package/es/notification/notification.js +1 -2
- package/es/notification/notification.js.map +1 -1
- package/es/notification/queque.js +1 -2
- package/es/notification/queque.js.map +1 -1
- package/es/notification/styles.js +1 -2
- package/es/notification/styles.js.map +1 -1
- package/es/pagination/index.js +1 -2
- package/es/pagination/index.js.map +1 -1
- package/es/pagination/styles.js +1 -2
- package/es/pagination/styles.js.map +1 -1
- package/es/popover/index.js +1 -2
- package/es/popover/index.js.map +1 -1
- package/es/popover/style.js +1 -2
- package/es/popover/style.js.map +1 -1
- package/es/prism/index.d.ts +0 -1
- package/es/prism/index.js +1 -2
- package/es/prism/index.js.map +1 -1
- package/es/provider/index.js +1 -2
- package/es/provider/index.js.map +1 -1
- package/es/qrcode/index.js +1 -2
- package/es/qrcode/index.js.map +1 -1
- package/es/qrcode/qrcode.js +1 -2
- package/es/qrcode/qrcode.js.map +1 -1
- package/es/radio/index.js +1 -2
- package/es/radio/index.js.map +1 -1
- package/es/radio/style.js +1 -2
- package/es/radio/style.js.map +1 -1
- package/es/segmented/index.js +1 -12
- package/es/segmented/index.js.map +1 -1
- package/es/segmented/style.js +1 -2
- package/es/segmented/style.js.map +1 -1
- package/es/select/index.js +1 -2
- package/es/select/index.js.map +1 -1
- package/es/select/style.js +1 -2
- package/es/select/style.js.map +1 -1
- package/es/skeleton/index.js +2 -25
- package/es/skeleton/index.js.map +1 -1
- package/es/spin/index.js +1 -2
- package/es/spin/index.js.map +1 -1
- package/es/switch/index.js +1 -2
- package/es/switch/index.js.map +1 -1
- package/es/switch/style.js +1 -2
- package/es/switch/style.js.map +1 -1
- package/es/table/index.js +1 -2
- package/es/table/index.js.map +1 -1
- package/es/table/styles.js +1 -2
- package/es/table/styles.js.map +1 -1
- package/es/tabs/index.js +1 -12
- package/es/tabs/index.js.map +1 -1
- package/es/tabs/style.d.ts +2 -2
- package/es/tabs/style.js +32 -33
- package/es/tabs/style.js.map +1 -1
- package/es/tag/index.js +1 -2
- package/es/tag/index.js.map +1 -1
- package/es/tag/style.js +1 -2
- package/es/tag/style.js.map +1 -1
- package/es/theme/index.js +1 -2
- package/es/theme/index.js.map +1 -1
- package/es/tree/index.js +1 -2
- package/es/tree/index.js.map +1 -1
- package/es/tree/register.js +1 -2
- package/es/tree/register.js.map +1 -1
- package/es/tree/style.js +1 -2
- package/es/tree/style.js.map +1 -1
- package/es/tree/type.js +1 -2
- package/es/tree/type.js.map +1 -1
- package/es/typography/index.js +1 -2
- package/es/typography/index.js.map +1 -1
- package/lib/avatar/favicon.svg +0 -0
- package/lib/avatar/group.js +18 -19
- package/lib/avatar/group.js.map +1 -1
- package/lib/avatar/index.js +3 -4
- package/lib/avatar/index.js.map +1 -1
- package/lib/avatar/style.js +3 -4
- package/lib/avatar/style.js.map +1 -1
- package/lib/back-top/index.js +1 -2
- package/lib/back-top/index.js.map +1 -1
- package/lib/back-top/style.js +1 -2
- package/lib/back-top/style.js.map +1 -1
- package/lib/basic-config/index.js +1 -2
- package/lib/basic-config/index.js.map +1 -1
- package/lib/button/index.js +1 -2
- package/lib/button/index.js.map +1 -1
- package/lib/button/style.js +1 -2
- package/lib/button/style.js.map +1 -1
- package/lib/capture-screen/index.js +1 -2
- package/lib/capture-screen/index.js.map +1 -1
- package/lib/capture-screen/style.js +1 -2
- package/lib/capture-screen/style.js.map +1 -1
- package/lib/carousel/index.js +1 -2
- package/lib/carousel/index.js.map +1 -1
- package/lib/carousel/style.js +1 -2
- package/lib/carousel/style.js.map +1 -1
- package/lib/checkbox/index.js +1 -2
- package/lib/checkbox/index.js.map +1 -1
- package/lib/checkbox/style.js +1 -2
- package/lib/checkbox/style.js.map +1 -1
- package/lib/code/index.d.ts +6 -2
- package/lib/code/index.js +1 -2
- package/lib/code/index.js.map +1 -1
- package/lib/code/style.js +26 -27
- package/lib/code/style.js.map +1 -1
- package/lib/code/worker.js +2 -3
- package/lib/code/worker.js.map +1 -1
- package/lib/color-palette/index.js +1 -2
- package/lib/color-palette/index.js.map +1 -1
- package/lib/color-palette/style.js +3 -4
- package/lib/color-palette/style.js.map +1 -1
- package/lib/color-picker/index.js +1 -2
- package/lib/color-picker/index.js.map +1 -1
- package/lib/color-picker/style.js +1 -2
- package/lib/color-picker/style.js.map +1 -1
- package/lib/cron/begin-interval.js +1 -2
- package/lib/cron/begin-interval.js.map +1 -1
- package/lib/cron/day.js +1 -2
- package/lib/cron/day.js.map +1 -1
- package/lib/cron/hour.js +1 -2
- package/lib/cron/hour.js.map +1 -1
- package/lib/cron/index.js +1 -2
- package/lib/cron/index.js.map +1 -1
- package/lib/cron/item.js +1 -2
- package/lib/cron/item.js.map +1 -1
- package/lib/cron/minute.js +1 -2
- package/lib/cron/minute.js.map +1 -1
- package/lib/cron/month.js +1 -2
- package/lib/cron/month.js.map +1 -1
- package/lib/cron/period.js +1 -2
- package/lib/cron/period.js.map +1 -1
- package/lib/cron/second.js +1 -2
- package/lib/cron/second.js.map +1 -1
- package/lib/cron/some.js +1 -2
- package/lib/cron/some.js.map +1 -1
- package/lib/cron/style.js +4 -5
- package/lib/cron/style.js.map +1 -1
- package/lib/cron/week.js +1 -2
- package/lib/cron/week.js.map +1 -1
- package/lib/cron/year.js +1 -2
- package/lib/cron/year.js.map +1 -1
- package/lib/date-picker/date.js +1 -2
- package/lib/date-picker/date.js.map +1 -1
- package/lib/date-picker/dayjs.js +1 -2
- package/lib/date-picker/dayjs.js.map +1 -1
- package/lib/date-picker/index.js +1 -2
- package/lib/date-picker/index.js.map +1 -1
- package/lib/date-picker/month.js +1 -2
- package/lib/date-picker/month.js.map +1 -1
- package/lib/date-picker/panel.js +1 -2
- package/lib/date-picker/panel.js.map +1 -1
- package/lib/date-picker/style.js +1 -2
- package/lib/date-picker/style.js.map +1 -1
- package/lib/date-picker/time.js +1 -2
- package/lib/date-picker/time.js.map +1 -1
- package/lib/date-picker/year.js +1 -2
- package/lib/date-picker/year.js.map +1 -1
- package/lib/dropdown/index.js +1 -2
- package/lib/dropdown/index.js.map +1 -1
- package/lib/empty/index.js +1 -2
- package/lib/empty/index.js.map +1 -1
- package/lib/from-schema/index.js +1 -2
- package/lib/from-schema/index.js.map +1 -1
- package/lib/get-options/index.js +1 -2
- package/lib/get-options/index.js.map +1 -1
- package/lib/highlight-text/index.js +2 -3
- package/lib/highlight-text/index.js.map +1 -1
- package/lib/img/index.js +1 -2
- package/lib/img/index.js.map +1 -1
- package/lib/img/lazy.js +1 -2
- package/lib/img/lazy.js.map +1 -1
- package/lib/img/style.js +3 -4
- package/lib/img/style.js.map +1 -1
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/input/index.js +1 -2
- package/lib/input/index.js.map +1 -1
- package/lib/input/style.js +1 -2
- package/lib/input/style.js.map +1 -1
- package/lib/input-number/index.js +2 -3
- package/lib/input-number/index.js.map +1 -1
- package/lib/katex/index.js +1 -2
- package/lib/katex/index.js.map +1 -1
- package/lib/md/common.d.ts +4 -0
- package/lib/md/common.js +1 -0
- package/lib/md/common.js.map +1 -0
- package/lib/md/index.d.ts +1 -0
- package/lib/md/index.js +1 -2
- package/lib/md/index.js.map +1 -1
- package/lib/md/worker.d.ts +9 -1
- package/lib/md/worker.js +1 -2
- package/lib/md/worker.js.map +1 -1
- package/lib/md-style/index.js +2 -3
- package/lib/md-style/index.js.map +1 -1
- package/lib/menu/index.js +1 -2
- package/lib/menu/index.js.map +1 -1
- package/lib/menu/style.js +1 -2
- package/lib/menu/style.js.map +1 -1
- package/lib/modal/hooks.js +1 -2
- package/lib/modal/hooks.js.map +1 -1
- package/lib/modal/index.js +1 -2
- package/lib/modal/index.js.map +1 -1
- package/lib/modal/store.js +1 -2
- package/lib/modal/store.js.map +1 -1
- package/lib/modal/style.js +1 -2
- package/lib/modal/style.js.map +1 -1
- package/lib/notification/index.js +1 -2
- package/lib/notification/index.js.map +1 -1
- package/lib/notification/notification.js +1 -2
- package/lib/notification/notification.js.map +1 -1
- package/lib/notification/queque.js +1 -2
- package/lib/notification/queque.js.map +1 -1
- package/lib/notification/styles.js +1 -2
- package/lib/notification/styles.js.map +1 -1
- package/lib/pagination/index.js +1 -2
- package/lib/pagination/index.js.map +1 -1
- package/lib/pagination/styles.js +1 -2
- package/lib/pagination/styles.js.map +1 -1
- package/lib/popover/index.js +1 -2
- package/lib/popover/index.js.map +1 -1
- package/lib/popover/style.js +3 -4
- package/lib/popover/style.js.map +1 -1
- package/lib/prism/index.d.ts +0 -1
- package/lib/prism/index.js +1 -2
- package/lib/prism/index.js.map +1 -1
- package/lib/provider/index.js +1 -2
- package/lib/provider/index.js.map +1 -1
- package/lib/qrcode/index.js +1 -2
- package/lib/qrcode/index.js.map +1 -1
- package/lib/qrcode/qrcode.js +1 -2
- package/lib/qrcode/qrcode.js.map +1 -1
- package/lib/radio/index.js +1 -2
- package/lib/radio/index.js.map +1 -1
- package/lib/radio/style.js +1 -2
- package/lib/radio/style.js.map +1 -1
- package/lib/segmented/index.js +1 -12
- package/lib/segmented/index.js.map +1 -1
- package/lib/segmented/style.js +1 -2
- package/lib/segmented/style.js.map +1 -1
- package/lib/select/index.js +1 -2
- package/lib/select/index.js.map +1 -1
- package/lib/select/style.js +1 -2
- package/lib/select/style.js.map +1 -1
- package/lib/skeleton/index.js +2 -25
- package/lib/skeleton/index.js.map +1 -1
- package/lib/spin/index.js +2 -3
- package/lib/spin/index.js.map +1 -1
- package/lib/switch/index.js +1 -2
- package/lib/switch/index.js.map +1 -1
- package/lib/switch/style.js +1 -2
- package/lib/switch/style.js.map +1 -1
- package/lib/table/index.js +1 -2
- package/lib/table/index.js.map +1 -1
- package/lib/table/styles.js +1 -2
- package/lib/table/styles.js.map +1 -1
- package/lib/tabs/index.js +1 -12
- package/lib/tabs/index.js.map +1 -1
- package/lib/tabs/style.d.ts +2 -2
- package/lib/tabs/style.js +32 -33
- package/lib/tabs/style.js.map +1 -1
- package/lib/tag/index.js +3 -4
- package/lib/tag/index.js.map +1 -1
- package/lib/tag/style.js +1 -2
- package/lib/tag/style.js.map +1 -1
- package/lib/theme/index.js +1 -2
- package/lib/theme/index.js.map +1 -1
- package/lib/tree/index.js +1 -2
- package/lib/tree/index.js.map +1 -1
- package/lib/tree/register.js +1 -2
- package/lib/tree/register.js.map +1 -1
- package/lib/tree/style.js +1 -2
- package/lib/tree/style.js.map +1 -1
- package/lib/tree/type.js +1 -2
- package/lib/tree/type.js.map +1 -1
- package/lib/typography/index.js +7 -8
- package/lib/typography/index.js.map +1 -1
- package/package.json +8 -8
- package/umd/index.js +4187 -1
- package/umd/js/074a85150a9f6a97.js +1 -0
- package/es/cron/api.md +0 -27
- package/lib/cron/api.md +0 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/color-palette/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n For,\n Index,\n mergeProps,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from 'solid-js';\nimport {\n type ColorParse,\n colorParse,\n type ColorType,\n type HSVA,\n isFunction,\n passiveSupported,\n setClipboard,\n throttle,\n} from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement, InputNumberProps } from '..';\nimport { clearAttribute } from '../basic-config';\nimport theme, { block } from '../theme';\n\nimport { style, switchCss } from './style';\n\nimport '../dropdown';\nimport '../input';\nimport '../input-number';\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));\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 textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={colorVar()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\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) => {\n handleChange(0, Number(e.target.value), 'hsva');\n }}\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) => {\n handleChange(3, Number(e.target.value));\n }}\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 createEffect(() => {\n clearAttribute(el, ['css']);\n });\n return (\n <>\n <style textContent={block} />\n <ColorPalette {...props} />\n </>\n );\n});\n\nexport default ColorPalette;\n"],"names":["createEffect","createMemo","createSignal","For","Index","mergeProps","onCleanup","onMount","Show","untrack","colorParse","isFunction","passiveSupported","setClipboard","throttle","css","cx","customElement","clearAttribute","theme","block","style","switchCss","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 createEffect,\n createMemo,\n createSignal,\n For,\n Index,\n mergeProps,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from 'solid-js';\nimport {\n type ColorParse,\n colorParse,\n type ColorType,\n type HSVA,\n isFunction,\n passiveSupported,\n setClipboard,\n throttle,\n} from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement, InputNumberProps } from '..';\nimport { clearAttribute } from '../basic-config';\nimport theme, { block } from '../theme';\n\nimport { style, switchCss } from './style';\n\nimport '../dropdown';\nimport '../input';\nimport '../input-number';\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));\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 textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={colorVar()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\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) => {\n handleChange(0, Number(e.target.value), 'hsva');\n }}\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) => {\n handleChange(3, Number(e.target.value));\n }}\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 createEffect(() => {\n clearAttribute(el, ['css']);\n });\n return (\n <>\n <style textContent={block} />\n <ColorPalette {...props} />\n </>\n );\n});\n\nexport default ColorPalette;\n"],"names":["createEffect","createMemo","createSignal","For","Index","mergeProps","onCleanup","onMount","Show","untrack","colorParse","isFunction","passiveSupported","setClipboard","throttle","css","cx","customElement","clearAttribute","theme","block","style","switchCss","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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
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"}
|
package/es/color-picker/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(){return(e=Object.assign||function(e){for(var o=1;o<arguments.length;o++){var t=arguments[o];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}import{template as o}from"solid-js/web";import{mergeProps as t}from"solid-js/web";import{getOwner as r}from"solid-js/web";import{effect as l}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as i}from"solid-js/web";import{addEventListener as n}from"solid-js/web";let a=o("<span>"),p=o("<n-color-palette>",!0,!1),u=o("<style>");import{createEffect as m,createMemo as c,createSignal as d,mergeProps as f,onMount as g,splitProps as v,untrack as h}from"solid-js";import{cx as C}from"@moneko/css";import{customElement as w}from"solid-element";import{clearAttribute as b}from"../basic-config";import j,{defaultProps as k}from"../popover";import{inline as y}from"../theme";import{style as V}from"./style";import"../color-palette";function x(e){let[o,u]=v(e,["css","value","defaultValue","onChange","popupClass","popupCss","size"]),[f,w]=d(o.defaultValue);function b(e){void 0===o.value&&w(e.detail),null==o.onChange||o.onChange.call(o,e.detail)}g(()=>{void 0===o.value&&o.defaultValue&&w(o.defaultValue)}),m(()=>{void 0!==o.value&&o.value!==h(f)&&w(o.value)});let k=c(()=>`.color-picker {padding: 10px;inline-size: 216px;}${o.popupCss||""}`),y=c(()=>`${V+(o.css||"")}.trigger {--c: ${f()};}`);return s(j,t(u,{arrow:!0,trigger:"click",get content(){return(()=>{let e=p();return n(e,"change",b),e._$owner=r(),l(()=>e.value=f()),e})()},get popupClass(){return C("color-picker",o.popupClass)},get popupCss(){return k()},get css(){return y()},get children(){let e=a();return l(()=>i(e,C("trigger",o.size))),e}}))}w("n-color-picker",e({},k,{value:void 0,defaultValue:void 0,onChange:void 0,size:void 0}),(e,o)=>{let t=o.element,r=f({onChange(e){t.dispatchEvent(new CustomEvent("change",{detail:e}))},children:t.children},e);return m(()=>{b(t,["popupCss","css"])}),[(()=>{let e=u();return e.textContent=y,e})(),s(x,r)]});export default x;
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
function e(){return(e=Object.assign||function(e){for(var o=1;o<arguments.length;o++){var t=arguments[o];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}import{template as o}from"solid-js/web";import{mergeProps as t}from"solid-js/web";import{getOwner as r}from"solid-js/web";import{effect as l}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as i}from"solid-js/web";import{addEventListener as n}from"solid-js/web";let a=o("<span>"),p=o("<n-color-palette>",!0,!1),u=o("<style>");import{createEffect as m,createMemo as c,createSignal as d,mergeProps as f,onMount as g,splitProps as v,untrack as h}from"solid-js";import{cx as C}from"@moneko/css";import{customElement as w}from"solid-element";import{clearAttribute as b}from"../basic-config";import j,{defaultProps as k}from"../popover";import{inline as y}from"../theme";import{style as V}from"./style";import"../color-palette";function x(e){let[o,u]=v(e,["css","value","defaultValue","onChange","popupClass","popupCss","size"]),[f,w]=d(o.defaultValue);function b(e){void 0===o.value&&w(e.detail),null==o.onChange||o.onChange.call(o,e.detail)}g(()=>{void 0===o.value&&o.defaultValue&&w(o.defaultValue)}),m(()=>{void 0!==o.value&&o.value!==h(f)&&w(o.value)});let k=c(()=>`.color-picker {padding: 10px;inline-size: 216px;}${o.popupCss||""}`),y=c(()=>`${V+(o.css||"")}.trigger {--c: ${f()};}`);return s(j,t(u,{arrow:!0,trigger:"click",get content(){return(()=>{let e=p();return n(e,"change",b),e._$owner=r(),l(()=>e.value=f()),e})()},get popupClass(){return C("color-picker",o.popupClass)},get popupCss(){return k()},get css(){return y()},get children(){let e=a();return l(()=>i(e,C("trigger",o.size))),e}}))}w("n-color-picker",e({},k,{value:void 0,defaultValue:void 0,onChange:void 0,size:void 0}),(e,o)=>{let t=o.element,r=f({onChange(e){t.dispatchEvent(new CustomEvent("change",{detail:e}))},children:t.children},e);return m(()=>{b(t,["popupCss","css"])}),[(()=>{let e=u();return e.textContent=y,e})(),s(x,r)]});export default x;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/color-picker/index.tsx"],"sourcesContent":["import {\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';\n\nimport type { BasicConfig, ColorPaletteProps, CustomElement, PopoverProps } from '..';\nimport { clearAttribute } from '../basic-config';\nimport Popover, { defaultProps } from '../popover';\nimport { inline } from '../theme';\n\nimport { style } from './style';\n\nimport '../color-palette';\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 createEffect(() => {\n clearAttribute(el, ['popupCss', 'css']);\n });\n return (\n <>\n <style textContent={inline} />\n <ColorPicker {...props} />\n </>\n );\n },\n);\n\nexport default ColorPicker;\n"],"names":["createEffect","createMemo","createSignal","mergeProps","onMount","splitProps","untrack","cx","customElement","clearAttribute","Popover","defaultProps","inline","style","ColorPicker","props","local","others","color","setColor","defaultValue","handleChange","e","value","detail","onChange","popupCss","css","popupClass","size","_","opts","el","element","val","dispatchEvent","CustomEvent","children"],"mappings":"sjBAAA,QACEA,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,AAG9C,QAASC,kBAAAA,CAAc,KAAQ,iBAAkB,AACjD,QAAOC,GAAWC,gBAAAA,CAAY,KAAQ,YAAa,AACnD,QAASC,UAAAA,CAAM,KAAQ,UAAW,AAElC,QAASC,SAAAA,CAAK,KAAQ,SAAU,AAEhC,OAAO,kBAAmB,CAuB1B,SAASC,EAAYC,CAAuB,EAC1C,GAAM,CAACC,EAAOC,EAAO,CAAGZ,EAAWU,EAAO,CACxC,MACA,QACA,eACA,WACA,aACA,WACA,OACD,EACK,CAACG,EAAOC,EAAS,CAAGjB,EAAiCc,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,CAEApB,EAAQ,KACc,KAAK,IAArBY,EAAMO,KAAK,EAAeP,EAAMI,YAAY,EAC9CD,EAASH,EAAMI,YAAY,CAE/B,GACApB,EAAa,KACS,KAAK,IAArBgB,EAAMO,KAAK,EAAeP,EAAMO,KAAK,GAAKjB,EAAQY,IACpDC,EAASH,EAAMO,KAAK,CAExB,GACA,IAAMG,EAAWzB,EACf,IAAM,CAAC,iDAAiD,EAAEe,EAAMU,QAAQ,EAAI,GAAG,CAAC,EAE5EC,EAAM1B,EAAW,IAAM,CAAC,EAAEY,EAASG,CAAAA,EAAMW,GAAG,EAAI,EAAC,EAAG,eAAe,EAAET,IAAQ,EAAE,CAAC,EAEtF,SACGR,IACKO,SACG,CAAA,0EAE6CI,+BAAnBH,oCACrBX,EAAG,eAAgBS,EAAMY,UAAU,yBACrCF,sBACLC,+CAEQpB,EAAG,UAAWS,EAAMa,IAAI,SAG3C,CAEArB,EACE,iBACA,KACKG,GACHY,MAAO,KAAK,EACZH,aAAc,KAAK,EACnBK,SAAU,KAAK,EACfI,KAAM,KAAK,IAEb,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAKE,OAAO,CACjBlB,EAAQZ,EACZ,CACEsB,SAASS,CAAY,EACnBF,EAAGG,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBZ,OAAQU,CACV,GAEJ,EACAG,SAAUL,EAAGK,QAAQ,AACvB,EACAP,GAMF,OAHA9B,EAAa,KACXS,EAAeuB,EAAI,CAAC,WAAY,MAAM,CACxC,yCAGwBpB,UACnBE,EAAgBC,GAGvB,EAGF,gBAAeD,CAAY"}
|
package/es/color-picker/style.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
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,2 +1 @@
|
|
|
1
|
-
import{template as e}from"solid-js/web";import{memo as o}from"solid-js/web";import{getOwner as t}from"solid-js/web";import{effect as i}from"solid-js/web";import{addEventListener as r}from"solid-js/web";let l=e("<n-select>",!0,!1);import{selectCss as n,selectPortalCss as s}from"./style";export default function(e){function d(o,t){let[i]=t.detail,r=Number(i);e.validate(o,r)&&e.onChange(o,r)}return[o(()=>e.label[0]),(()=>{let o=l();return r(o,"change",d.bind(null,"begin")),o.css=n,o.popupCss=s,o.dropdownMatchSelectWidth=!1,o.arrow=!0,o._$owner=t(),i(t=>{let i=e.beginOption,r=e.disabled;return i!==t._v$&&(o.options=t._v$=i),r!==t._v$2&&(o.disabled=t._v$2=r),t},{_v$:void 0,_v$2:void 0}),i(()=>o.value=e.begin),o})(),o(()=>e.label[1]),(()=>{let o=l();return r(o,"change",d.bind(null,"beginEvery")),o.css=n,o.popupCss=s,o.dropdownMatchSelectWidth=!1,o.arrow=!0,o._$owner=t(),i(t=>{let i=e.beginEveryOption,r=e.disabled;return i!==t._v$3&&(o.options=t._v$3=i),r!==t._v$4&&(o.disabled=t._v$4=r),t},{_v$3:void 0,_v$4:void 0}),i(()=>o.value=e.beginEvery),o})(),o(()=>e.label[2])]}
|
|
2
|
-
//# sourceMappingURL=begin-interval.js.map
|
|
1
|
+
import{template as e}from"solid-js/web";import{memo as o}from"solid-js/web";import{getOwner as t}from"solid-js/web";import{effect as i}from"solid-js/web";import{addEventListener as r}from"solid-js/web";let l=e("<n-select>",!0,!1);import{selectCss as n,selectPortalCss as s}from"./style";export default function(e){function d(o,t){let[i]=t.detail,r=Number(i);e.validate(o,r)&&e.onChange(o,r)}return[o(()=>e.label[0]),(()=>{let o=l();return r(o,"change",d.bind(null,"begin")),o.css=n,o.popupCss=s,o.dropdownMatchSelectWidth=!1,o.arrow=!0,o._$owner=t(),i(t=>{let i=e.beginOption,r=e.disabled;return i!==t._v$&&(o.options=t._v$=i),r!==t._v$2&&(o.disabled=t._v$2=r),t},{_v$:void 0,_v$2:void 0}),i(()=>o.value=e.begin),o})(),o(()=>e.label[1]),(()=>{let o=l();return r(o,"change",d.bind(null,"beginEvery")),o.css=n,o.popupCss=s,o.dropdownMatchSelectWidth=!1,o.arrow=!0,o._$owner=t(),i(t=>{let i=e.beginEveryOption,r=e.disabled;return i!==t._v$3&&(o.options=t._v$3=i),r!==t._v$4&&(o.disabled=t._v$4=r),t},{_v$3:void 0,_v$4:void 0}),i(()=>o.value=e.beginEvery),o})(),o(()=>e.label[2])]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/begin-interval.tsx"],"sourcesContent":["import type { BaseOption } from 'neko-ui';\n\nimport type { CronData } from '.';\nimport { selectCss, selectPortalCss } from './style';\n\ninterface 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":"qOAGA,QAASA,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAsDrD,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"}
|
package/es/cron/day.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{template as e}from"solid-js/web";import"solid-js/web";import{getOwner as t}from"solid-js/web";import{effect as r}from"solid-js/web";import{createComponent as a}from"solid-js/web";let o=e("<n-select>",!0,!1);import n from"./begin-interval";import l from"./item";import s from"./period";import i from"./some";import{selectCss as g,selectPortalCss as p}from"./style";export default function(e){let u=[],b=[];for(let e=1;e<32;e++)u.push({label:e<10?`0${e}`:`${e}`,value:e}),b.push(e);let m=[{value:"*",label:"每日"},{value:"?",label:"不指定"},{value:"period",label:a(s,{get start(){return e.state.start},get end(){return e.state.end},options:u,get disabled(){return"period"!==e.state.type},get onChange(){return e.onChange},validate:(e,t)=>t>=1&&t<31,label:["周期从","到","日"]})},{value:"beginInterval",label:a(n,{get begin(){return e.state.begin},get beginEvery(){return e.state.beginEvery},get onChange(){return e.onChange},beginOption:u,beginEveryOption:b,get disabled(){return"beginInterval"!==e.state.type},validate:(e,t)=>t>=1&&t<=31,label:["从","日开始, 每","天执行一次"]})},{value:"closeWorkDay",label:["每月离",(()=>{let a=o();return a.addEventListener("change",t=>{let[r]=t.detail,a=Number(r);a>=1&&a<=31&&e.onChange("closeWorkDay",a)}),a.options=u,a.css=g,a.popupCss=p,a.dropdownMatchSelectWidth=!1,a.arrow=!0,a._$owner=t(),r(()=>a.disabled="closeWorkDay"!==e.state.type),r(()=>a.value=e.state.closeWorkDay),a})(),"日最近的那个工作日"]},{value:"last",label:"本月最后1天"},{value:"some",label:a(i,{label:"具体天数(至少选择一项)",get value(){return e.state.some},options:u,get type(){return e.state.type},get onChange(){return e.onChange}})}];return a(l,{get state(){return e.state},options:m,get onChange(){return e.onChange}})}
|
|
2
|
-
//# sourceMappingURL=day.js.map
|
|
1
|
+
import{template as e}from"solid-js/web";import"solid-js/web";import{getOwner as t}from"solid-js/web";import{effect as r}from"solid-js/web";import{createComponent as a}from"solid-js/web";let o=e("<n-select>",!0,!1);import n from"./begin-interval";import l from"./item";import s from"./period";import i from"./some";import{selectCss as g,selectPortalCss as p}from"./style";export default function(e){let u=[],b=[];for(let e=1;e<32;e++)u.push({label:e<10?`0${e}`:`${e}`,value:e}),b.push(e);let m=[{value:"*",label:"每日"},{value:"?",label:"不指定"},{value:"period",label:a(s,{get start(){return e.state.start},get end(){return e.state.end},options:u,get disabled(){return"period"!==e.state.type},get onChange(){return e.onChange},validate:(e,t)=>t>=1&&t<31,label:["周期从","到","日"]})},{value:"beginInterval",label:a(n,{get begin(){return e.state.begin},get beginEvery(){return e.state.beginEvery},get onChange(){return e.onChange},beginOption:u,beginEveryOption:b,get disabled(){return"beginInterval"!==e.state.type},validate:(e,t)=>t>=1&&t<=31,label:["从","日开始, 每","天执行一次"]})},{value:"closeWorkDay",label:["每月离",(()=>{let a=o();return a.addEventListener("change",t=>{let[r]=t.detail,a=Number(r);a>=1&&a<=31&&e.onChange("closeWorkDay",a)}),a.options=u,a.css=g,a.popupCss=p,a.dropdownMatchSelectWidth=!1,a.arrow=!0,a._$owner=t(),r(()=>a.disabled="closeWorkDay"!==e.state.type),r(()=>a.value=e.state.closeWorkDay),a})(),"日最近的那个工作日"]},{value:"last",label:"本月最后1天"},{value:"some",label:a(i,{label:"具体天数(至少选择一项)",get value(){return e.state.some},options:u,get type(){return e.state.type},get onChange(){return e.onChange}})}];return a(l,{get state(){return e.state},options:m,get onChange(){return e.onChange}})}
|
package/es/cron/day.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/day.tsx"],"sourcesContent":["import type { BaseOption } from 'neko-ui';\n\nimport 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 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":"qNAEA,QAAOA,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAC1B,QAASC,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AA0FrD,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"}
|
package/es/cron/hour.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{hours as t}from"../date-picker/time";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";export default function(i){let l=[];for(let e=0;e<24;e++)l.push(`${e+1}`);let g=[{value:"*",label:"每小时"},{value:"period",label:e(a,{get start(){return i.state.start},get end(){return i.state.end},options:t,get disabled(){return"period"!==i.state.type},get onChange(){return i.onChange},validate:(e,t)=>"start"===e?t>=0&&t<23:t>0&&t<=23,label:["周期从","到","时"]})},{value:"beginInterval",label:e(r,{get begin(){return i.state.begin},get beginEvery(){return i.state.beginEvery},get onChange(){return i.onChange},beginOption:t,beginEveryOption:l,get disabled(){return"beginInterval"!==i.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=23:t>=1&&t<=24,label:["从","时开始, 每","小时执行一次"]})},{value:"some",label:e(o,{label:"具体小时数(至少选择一项)",get value(){return i.state.some},options:t,get type(){return i.state.type},get onChange(){return i.onChange}})}];return e(n,{options:g,get onChange(){return i.onChange},get state(){return i.state}})}
|
|
2
|
-
//# sourceMappingURL=hour.js.map
|
|
1
|
+
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{hours as t}from"../date-picker/time";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";export default function(i){let l=[];for(let e=0;e<24;e++)l.push(`${e+1}`);let g=[{value:"*",label:"每小时"},{value:"period",label:e(a,{get start(){return i.state.start},get end(){return i.state.end},options:t,get disabled(){return"period"!==i.state.type},get onChange(){return i.onChange},validate:(e,t)=>"start"===e?t>=0&&t<23:t>0&&t<=23,label:["周期从","到","时"]})},{value:"beginInterval",label:e(r,{get begin(){return i.state.begin},get beginEvery(){return i.state.beginEvery},get onChange(){return i.onChange},beginOption:t,beginEveryOption:l,get disabled(){return"beginInterval"!==i.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=23:t>=1&&t<=24,label:["从","时开始, 每","小时执行一次"]})},{value:"some",label:e(o,{label:"具体小时数(至少选择一项)",get value(){return i.state.some},options:t,get type(){return i.state.type},get onChange(){return i.onChange}})}];return e(n,{options:g,get onChange(){return i.onChange},get state(){return i.state}})}
|
package/es/cron/hour.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/hour.tsx"],"sourcesContent":["import { hours } from '../date-picker/time';\n\nimport BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\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":["hours","BeginInterval","Item","Period","Some","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAASA,SAAAA,CAAK,KAAQ,qBAAsB,AAE5C,QAAOC,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAyD1B,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,GACFR,sBACQE,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXd,uBACCK,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,GACFV,sBACQI,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXhB,mBACKM,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,GACFP,4CAEQC,EAAMO,KAAK,CAACQ,IAAI,UACdpB,oBACHK,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQd,WAAcO,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
|
package/es/cron/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(){return(e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}import{template as t}from"solid-js/web";import{insert as r}from"solid-js/web";import{getOwner as n}from"solid-js/web";import{effect as o}from"solid-js/web";import{createComponent as a}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let s=t("<style> "),u=t("<n-tabs>",!0,!1),i=t("<code>"),m=t("<style>");import{batch as p,createEffect as d,createSignal as c,mergeProps as y,Show as v,splitProps as b,untrack as g}from"solid-js";import{css as f}from"@moneko/css";import{customElement as h}from"solid-element";import{clearAttribute as w}from"../basic-config";import{block as C}from"../theme";import $ from"./day";import k from"./hour";import N from"./minute";import j from"./month";import E from"./second";import W from"./week";import x from"./year";import"../button";import"../input-number";import"../radio";import"../select";import"../tabs";function D(t){let[m]=b(t,["value","defaultValue","exclude","onChange","type","showCron","css","class"]),[y,h]=c(m.defaultValue),w=new Date().getFullYear(),C={hms:{start:0,end:1,begin:0,beginEvery:1,some:[0],value:""},mwd:{start:1,end:2,begin:1,beginEvery:1,some:[1],value:""},year:{start:w,end:w+1,begin:w,beginEvery:1,some:[w],value:""}},D=[],P=[];for(let e=1;e<32;e++)D.push({label:e<10?`0${e}`:`${e}`,value:e}),P.push(e);let[L,O]=c("second"),[V,I]=c({second:e({type:"*"},C.hms),minute:e({type:"*"},C.hms),hour:e({type:"*"},C.hms),day:e({type:"*",last:1,closeWorkDay:1},C.mwd),month:e({type:"*"},C.mwd),week:e({last:1,type:"?"},C.mwd),year:e({type:""},C.year)});function F(t,r){p(()=>{!function(){let t=g(V),r="day"===L();if(r||"week"===L()){let n=r?"week":"day",o="?"===t[n].type&&"?"===t[L()].type?"*":"?";o!==t[n].type&&I(t=>e({},t,{[n]:e({},t[n],{type:o})}))}}(),I(n=>{let o=e({},n[L()],{[t]:r});return("start"===t||"end"===t)&&o.end-o.start<=1&&("end"===t?o.start=r-1:o.end=r+1),e({},n,{[L()]:o})})})}function U(e){O(e.detail[0])}function Y(e,t){if(e.value.includes("-")){e.type="period";let t=e.value.split("-");e.start=Number(t[0]),e.end=Number(t[1])}else if(e.value.includes("W"))e.type="closeWorkDay",e.closeWorkDay=Number(e.value.split("W")[0])||1;else if(e.value.includes("L"))e.type="last",e.last=Number(e.value.split("L")[0])||1;else if(e.value.includes(t?"#":"/")){e.type="beginInterval";let r=e.value.split(t?"#":"/");t?(e.begin=Number(r[1]),e.beginEvery=Number(r[0])):(e.begin=Number(r[0]),e.beginEvery=Number(r[1]))}else e.value.includes(",")||/^[0-9]+$/.test(e.value)?(e.type="some",e.some=e.value.split(",").map(Number)):e.type=e.value;return e}function _(e){return"number"!=typeof e||isNaN(e)?e:`${e}`}function q(e,t){switch(e.type){case"period":return`${_(e.start)}-${_(e.end)}`;case"beginInterval":if(t)return`${_(e.beginEvery)}#${_(e.begin)}`;return`${_(e.begin)}/${_(e.beginEvery)}`;case"closeWorkDay":return`${_(e.closeWorkDay||1)}W`;case"last":return t?`${_(e.last)}L`:"L";case"some":return e.some.join(",");default:return e.type}}d(()=>{void 0!==m.value&&g(y)!==m.value&&h(m.value)}),d(()=>{let t=y();if(t){let r=t.toUpperCase().split(" ");p(()=>{I(t=>({second:Y(e({},t.second,{value:r[0]||"?"})),minute:Y(e({},t.minute,{value:r[1]||"?"})),hour:Y(e({},t.hour,{value:r[2]||"?"})),day:Y(e({},t.day,{value:r[3]||""})),month:Y(e({},t.month,{value:r[4]||""})),week:Y(e({},t.week,{value:r[5]||""}),!0),year:Y(e({},t.year,{value:r[6]||""}))}))})}}),d(()=>{let{second:e,minute:r,hour:n,day:o,month:a,week:l,year:s}=V(),u=`${q(e)} ${q(r)} ${q(n)} ${q(o)} ${q(a)} ${q(l,!0)} ${q(s)}`;h(e=>e===u?e:(null==t.onChange||t.onChange.call(t,u),u))});let z=[{value:"second",label:"秒",content:a(E,{get state(){return V().second},onChange:F})},{value:"minute",label:"分钟",content:a(N,{get state(){return V().minute},onChange:F})},{value:"hour",label:"小时",content:a(k,{get state(){return V().hour},onChange:F})},{value:"day",label:"日",content:a($,{get state(){return V().day},onChange:F})},{value:"week",label:"周",content:a(W,{get state(){return V().week},onChange:F})},{value:"month",label:"月",content:a(j,{get state(){return V().month},onChange:F})},{value:"year",label:"年",content:a(x,{get state(){return V().year},onChange:F})}];return[a(v,{get when(){return m.css},get children(){let e=s(),t=e.firstChild;return o(()=>t.data=f(m.css)),e}}),(()=>{let e=u();return l(e,"change",U),e.items=z,e._$owner=n(),o(()=>e.type=m.type),o(()=>e.value=L()),e})(),a(v,{get when(){return m.showCron},get children(){let e=i();return e.style.setProperty("width","100%"),e.style.setProperty("display","block"),e.style.setProperty("background","var(--component-bg)"),e.style.setProperty("border-radius","var(--border-radius)"),e.style.setProperty("text-align","center"),r(e,y),e}})]}h("n-cron",{value:void 0,defaultValue:"0 0 0 * * ? *",onChange:void 0,type:"line",exclude:[],showCron:!0,css:void 0},(e,t)=>{let r=t.element,n=y({onChange(e){r.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return d(()=>{w(r,["exclude","css"])}),[(()=>{let e=m();return e.textContent=C,e})(),a(D,n)]});export default D;
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
function e(){return(e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}import{template as t}from"solid-js/web";import{insert as r}from"solid-js/web";import{getOwner as n}from"solid-js/web";import{effect as o}from"solid-js/web";import{createComponent as a}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let s=t("<style> "),u=t("<n-tabs>",!0,!1),i=t("<code>"),m=t("<style>");import{batch as p,createEffect as d,createSignal as c,mergeProps as y,Show as v,splitProps as b,untrack as g}from"solid-js";import{css as f}from"@moneko/css";import{customElement as h}from"solid-element";import{clearAttribute as w}from"../basic-config";import{block as C}from"../theme";import $ from"./day";import k from"./hour";import N from"./minute";import j from"./month";import E from"./second";import W from"./week";import x from"./year";import"../button";import"../input-number";import"../radio";import"../select";import"../tabs";function D(t){let[m]=b(t,["value","defaultValue","exclude","onChange","type","showCron","css","class"]),[y,h]=c(m.defaultValue),w=new Date().getFullYear(),C={hms:{start:0,end:1,begin:0,beginEvery:1,some:[0],value:""},mwd:{start:1,end:2,begin:1,beginEvery:1,some:[1],value:""},year:{start:w,end:w+1,begin:w,beginEvery:1,some:[w],value:""}},D=[],P=[];for(let e=1;e<32;e++)D.push({label:e<10?`0${e}`:`${e}`,value:e}),P.push(e);let[L,O]=c("second"),[V,I]=c({second:e({type:"*"},C.hms),minute:e({type:"*"},C.hms),hour:e({type:"*"},C.hms),day:e({type:"*",last:1,closeWorkDay:1},C.mwd),month:e({type:"*"},C.mwd),week:e({last:1,type:"?"},C.mwd),year:e({type:""},C.year)});function F(t,r){p(()=>{!function(){let t=g(V),r="day"===L();if(r||"week"===L()){let n=r?"week":"day",o="?"===t[n].type&&"?"===t[L()].type?"*":"?";o!==t[n].type&&I(t=>e({},t,{[n]:e({},t[n],{type:o})}))}}(),I(n=>{let o=e({},n[L()],{[t]:r});return("start"===t||"end"===t)&&o.end-o.start<=1&&("end"===t?o.start=r-1:o.end=r+1),e({},n,{[L()]:o})})})}function U(e){O(e.detail[0])}function Y(e,t){if(e.value.includes("-")){e.type="period";let t=e.value.split("-");e.start=Number(t[0]),e.end=Number(t[1])}else if(e.value.includes("W"))e.type="closeWorkDay",e.closeWorkDay=Number(e.value.split("W")[0])||1;else if(e.value.includes("L"))e.type="last",e.last=Number(e.value.split("L")[0])||1;else if(e.value.includes(t?"#":"/")){e.type="beginInterval";let r=e.value.split(t?"#":"/");t?(e.begin=Number(r[1]),e.beginEvery=Number(r[0])):(e.begin=Number(r[0]),e.beginEvery=Number(r[1]))}else e.value.includes(",")||/^[0-9]+$/.test(e.value)?(e.type="some",e.some=e.value.split(",").map(Number)):e.type=e.value;return e}function _(e){return"number"!=typeof e||isNaN(e)?e:`${e}`}function q(e,t){switch(e.type){case"period":return`${_(e.start)}-${_(e.end)}`;case"beginInterval":if(t)return`${_(e.beginEvery)}#${_(e.begin)}`;return`${_(e.begin)}/${_(e.beginEvery)}`;case"closeWorkDay":return`${_(e.closeWorkDay||1)}W`;case"last":return t?`${_(e.last)}L`:"L";case"some":return e.some.join(",");default:return e.type}}d(()=>{void 0!==m.value&&g(y)!==m.value&&h(m.value)}),d(()=>{let t=y();if(t){let r=t.toUpperCase().split(" ");p(()=>{I(t=>({second:Y(e({},t.second,{value:r[0]||"?"})),minute:Y(e({},t.minute,{value:r[1]||"?"})),hour:Y(e({},t.hour,{value:r[2]||"?"})),day:Y(e({},t.day,{value:r[3]||""})),month:Y(e({},t.month,{value:r[4]||""})),week:Y(e({},t.week,{value:r[5]||""}),!0),year:Y(e({},t.year,{value:r[6]||""}))}))})}}),d(()=>{let{second:e,minute:r,hour:n,day:o,month:a,week:l,year:s}=V(),u=`${q(e)} ${q(r)} ${q(n)} ${q(o)} ${q(a)} ${q(l,!0)} ${q(s)}`;h(e=>e===u?e:(null==t.onChange||t.onChange.call(t,u),u))});let z=[{value:"second",label:"秒",content:a(E,{get state(){return V().second},onChange:F})},{value:"minute",label:"分钟",content:a(N,{get state(){return V().minute},onChange:F})},{value:"hour",label:"小时",content:a(k,{get state(){return V().hour},onChange:F})},{value:"day",label:"日",content:a($,{get state(){return V().day},onChange:F})},{value:"week",label:"周",content:a(W,{get state(){return V().week},onChange:F})},{value:"month",label:"月",content:a(j,{get state(){return V().month},onChange:F})},{value:"year",label:"年",content:a(x,{get state(){return V().year},onChange:F})}];return[a(v,{get when(){return m.css},get children(){let e=s(),t=e.firstChild;return o(()=>t.data=f(m.css)),e}}),(()=>{let e=u();return l(e,"change",U),e.items=z,e._$owner=n(),o(()=>e.type=m.type),o(()=>e.value=L()),e})(),a(v,{get when(){return m.showCron},get children(){let e=i();return e.style.setProperty("width","100%"),e.style.setProperty("display","block"),e.style.setProperty("background","var(--component-bg)"),e.style.setProperty("border-radius","var(--border-radius)"),e.style.setProperty("text-align","center"),r(e,y),e}})]}h("n-cron",{value:void 0,defaultValue:"0 0 0 * * ? *",onChange:void 0,type:"line",exclude:[],showCron:!0,css:void 0},(e,t)=>{let r=t.element,n=y({onChange(e){r.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return d(()=>{w(r,["exclude","css"])}),[(()=>{let e=m();return e.textContent=C,e})(),a(D,n)]});export default D;
|
package/es/cron/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/cron/index.tsx"],"sourcesContent":["import { batch, createEffect, createSignal, mergeProps, Show, splitProps, untrack } from 'solid-js';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BaseOption, CustomElement, TabOption } from '..';\nimport { clearAttribute } from '../basic-config';\nimport { block } from '../theme';\n\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';\n\nimport '../button';\nimport '../input-number';\nimport '../radio';\nimport '../select';\nimport '../tabs';\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 interface 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 interface 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 <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\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 css: void 0,\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 createEffect(() => {\n clearAttribute(el, ['exclude', 'css']);\n });\n return (\n <>\n <style textContent={block} />\n <Cron {...props} />\n </>\n );\n },\n);\nexport default Cron;\n"],"names":["batch","createEffect","createSignal","mergeProps","Show","splitProps","untrack","css","customElement","clearAttribute","block","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 { batch, createEffect, createSignal, mergeProps, Show, splitProps, untrack } from 'solid-js';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BaseOption, CustomElement, TabOption } from '..';\nimport { clearAttribute } from '../basic-config';\nimport { block } from '../theme';\n\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';\n\nimport '../button';\nimport '../input-number';\nimport '../radio';\nimport '../select';\nimport '../tabs';\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 interface 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 interface 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 <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\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 css: void 0,\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 createEffect(() => {\n clearAttribute(el, ['exclude', 'css']);\n });\n return (\n <>\n <style textContent={block} />\n <Cron {...props} />\n </>\n );\n },\n);\nexport default Cron;\n"],"names":["batch","createEffect","createSignal","mergeProps","Show","splitProps","untrack","css","customElement","clearAttribute","block","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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"}
|
package/es/cron/item.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{template as e}from"solid-js/web";import{getOwner as t}from"solid-js/web";import{effect as o}from"solid-js/web";import{addEventListener as n}from"solid-js/web";let r=e('<n-radio layout="vertical">',!0,!1);export default function(e){function a(t){null==e.onChange||e.onChange.call(e,"type",t.detail)}return(()=>{let i=r();return n(i,"change",a),i._$owner=t(),o(()=>i.options=e.options),o(()=>i.value=e.state.type),i})()}
|
|
2
|
-
//# sourceMappingURL=item.js.map
|
|
1
|
+
import{template as e}from"solid-js/web";import{getOwner as t}from"solid-js/web";import{effect as o}from"solid-js/web";import{addEventListener as n}from"solid-js/web";let r=e('<n-radio layout="vertical">',!0,!1);export default function(e){function a(t){null==e.onChange||e.onChange.call(e,"type",t.detail)}return(()=>{let i=r();return n(i,"change",a),i._$owner=t(),o(()=>i.options=e.options),o(()=>i.value=e.state.type),i})()}
|
package/es/cron/item.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/item.tsx"],"sourcesContent":["import type { RadioOption } from 'neko-ui';\n\nimport type { ActiveTab, CronType } from '.';\n\nexport interface 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":"kNA4BA,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"}
|
package/es/cron/minute.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{minutes as t}from"../date-picker/time";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";export default function(i){let l=[];for(let e=0;e<60;e++)l.push(`${e+1}`);let g=[{value:"*",label:"每分钟"},{value:"period",label:e(a,{get start(){return i.state.start},get end(){return i.state.end},options:t,get disabled(){return"period"!==i.state.type},get onChange(){return i.onChange},validate:(e,t)=>"start"===e?t>=0&&t<59:t>0&&t<=59,label:["周期从","到","分钟"]})},{value:"beginInterval",label:e(r,{get begin(){return i.state.begin},get beginEvery(){return i.state.beginEvery},get onChange(){return i.onChange},beginOption:t,beginEveryOption:l,get disabled(){return"beginInterval"!==i.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=59:t>=1&&t<=60,label:["从","分开始, 每","分钟执行一次"]})},{value:"some",label:e(o,{label:"具体分钟数(至少选择一项)",get value(){return i.state.some},options:t,get type(){return i.state.type},get onChange(){return i.onChange}})}];return e(n,{options:g,get onChange(){return i.onChange},get state(){return i.state}})}
|
|
2
|
-
//# sourceMappingURL=minute.js.map
|
|
1
|
+
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{minutes as t}from"../date-picker/time";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";export default function(i){let l=[];for(let e=0;e<60;e++)l.push(`${e+1}`);let g=[{value:"*",label:"每分钟"},{value:"period",label:e(a,{get start(){return i.state.start},get end(){return i.state.end},options:t,get disabled(){return"period"!==i.state.type},get onChange(){return i.onChange},validate:(e,t)=>"start"===e?t>=0&&t<59:t>0&&t<=59,label:["周期从","到","分钟"]})},{value:"beginInterval",label:e(r,{get begin(){return i.state.begin},get beginEvery(){return i.state.beginEvery},get onChange(){return i.onChange},beginOption:t,beginEveryOption:l,get disabled(){return"beginInterval"!==i.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=59:t>=1&&t<=60,label:["从","分开始, 每","分钟执行一次"]})},{value:"some",label:e(o,{label:"具体分钟数(至少选择一项)",get value(){return i.state.some},options:t,get type(){return i.state.type},get onChange(){return i.onChange}})}];return e(n,{options:g,get onChange(){return i.onChange},get state(){return i.state}})}
|
package/es/cron/minute.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/minute.tsx"],"sourcesContent":["import { minutes } from '../date-picker/time';\n\nimport BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\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":["minutes","BeginInterval","Item","Period","Some","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAASA,WAAAA,CAAO,KAAQ,qBAAsB,AAE9C,QAAOC,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAyD1B,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,GACFR,sBACQE,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXd,uBACCK,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,GACFV,sBACQI,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXhB,mBACKM,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,GACFP,4CAEQC,EAAMO,KAAK,CAACQ,IAAI,UACdpB,oBACHK,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQd,WAAcO,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
|
package/es/cron/month.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{months as t}from"../date-picker/month";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";let l=t.map((e,t)=>({label:e,value:t}));export default function(t){let i=[];for(let e=1;e<13;e++)i.push(e);let g=[{value:"*",label:"每月"},{value:"period",label:e(a,{get start(){return t.state.start},get end(){return t.state.end},options:l,get disabled(){return"period"!==t.state.type},get onChange(){return t.onChange},validate:(e,t)=>"start"===e?t>=1&&t<12:t>1&&t<=12,label:["周期从","到","月"]})},{value:"beginInterval",label:e(r,{get begin(){return t.state.begin},get beginEvery(){return t.state.beginEvery},get onChange(){return t.onChange},beginOption:l,beginEveryOption:i,get disabled(){return"beginInterval"!==t.state.type},validate:(e,t)=>t>=1&&t<=12,label:["从","开始, 每","个月执行一次"]})},{value:"some",label:e(o,{label:"具体月数(至少选择一项)",get value(){return t.state.some},options:l,get type(){return t.state.type},get onChange(){return t.onChange}})}];return e(n,{options:g,get onChange(){return t.onChange},get state(){return t.state}})}
|
|
2
|
-
//# sourceMappingURL=month.js.map
|
|
1
|
+
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{months as t}from"../date-picker/month";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";let l=t.map((e,t)=>({label:e,value:t}));export default function(t){let i=[];for(let e=1;e<13;e++)i.push(e);let g=[{value:"*",label:"每月"},{value:"period",label:e(a,{get start(){return t.state.start},get end(){return t.state.end},options:l,get disabled(){return"period"!==t.state.type},get onChange(){return t.onChange},validate:(e,t)=>"start"===e?t>=1&&t<12:t>1&&t<=12,label:["周期从","到","月"]})},{value:"beginInterval",label:e(r,{get begin(){return t.state.begin},get beginEvery(){return t.state.beginEvery},get onChange(){return t.onChange},beginOption:l,beginEveryOption:i,get disabled(){return"beginInterval"!==t.state.type},validate:(e,t)=>t>=1&&t<=12,label:["从","开始, 每","个月执行一次"]})},{value:"some",label:e(o,{label:"具体月数(至少选择一项)",get value(){return t.state.some},options:l,get type(){return t.state.type},get onChange(){return t.onChange}})}];return e(n,{options:g,get onChange(){return t.onChange},get state(){return t.state}})}
|
package/es/cron/month.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/month.tsx"],"sourcesContent":["import { months as month } from '../date-picker/month';\n\nimport BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\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":["months","month","BeginInterval","Item","Period","Some","map","m","i","label","value","props","beginEvery","x","push","options","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAASA,UAAUC,CAAK,KAAQ,sBAAuB,AAEvD,QAAOC,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,CAE1B,IAAML,EAASC,EAAMK,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,GACFL,sBACQO,EAAMK,KAAK,CAACC,KAAK,mBACnBN,EAAMK,KAAK,CAACE,GAAG,UACXlB,uBACCW,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,GACFP,sBACQS,EAAMK,KAAK,CAACO,KAAK,0BACZZ,EAAMK,KAAK,CAACJ,UAAU,wBACxBD,EAAMS,QAAQ,cACXpB,mBACKY,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,GACFJ,2CAEQM,EAAMK,KAAK,CAACQ,IAAI,UACdxB,oBACHW,EAAMK,KAAK,CAACG,IAAI,wBACZR,EAAMS,QAAQ,GAG9B,EACD,CAED,SAAQjB,WAAcY,wBAAmBJ,EAAMS,QAAQ,qBAAST,EAAMK,KAAK,GAC7E"}
|
package/es/cron/period.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{template as e}from"solid-js/web";import{memo as t}from"solid-js/web";import{getOwner as o}from"solid-js/web";import{effect as s}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let r=e("<n-select>",!0,!1);import{selectCss as i,selectPortalCss as d}from"./style";export default function(e){function n(t,o){let[s]=o.detail,l=Number(s);e.validate(t,l)&&e.onChange(t,l)}return[t(()=>e.label[0]),(()=>{let t=r();return l(t,"change",n.bind(null,"start")),t.css=i,t.popupCss=d,t.dropdownMatchSelectWidth=!1,t.arrow=!0,t._$owner=o(),s(o=>{let s=e.options.slice(0,-1),l=e.disabled;return s!==o._v$&&(t.options=o._v$=s),l!==o._v$2&&(t.disabled=o._v$2=l),o},{_v$:void 0,_v$2:void 0}),s(()=>t.value=e.start),t})(),t(()=>e.label[1]),(()=>{let t=r();return l(t,"change",n.bind(null,"end")),t.css=i,t.popupCss=d,t.dropdownMatchSelectWidth=!1,t.arrow=!0,t._$owner=o(),s(o=>{let s=e.options.slice(1),l=e.disabled;return s!==o._v$3&&(t.options=o._v$3=s),l!==o._v$4&&(t.disabled=o._v$4=l),o},{_v$3:void 0,_v$4:void 0}),s(()=>t.value=e.end),t})(),t(()=>e.label[2])]}
|
|
2
|
-
//# sourceMappingURL=period.js.map
|
|
1
|
+
import{template as e}from"solid-js/web";import{memo as t}from"solid-js/web";import{getOwner as o}from"solid-js/web";import{effect as s}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let r=e("<n-select>",!0,!1);import{selectCss as i,selectPortalCss as d}from"./style";export default function(e){function n(t,o){let[s]=o.detail,l=Number(s);e.validate(t,l)&&e.onChange(t,l)}return[t(()=>e.label[0]),(()=>{let t=r();return l(t,"change",n.bind(null,"start")),t.css=i,t.popupCss=d,t.dropdownMatchSelectWidth=!1,t.arrow=!0,t._$owner=o(),s(o=>{let s=e.options.slice(0,-1),l=e.disabled;return s!==o._v$&&(t.options=o._v$=s),l!==o._v$2&&(t.disabled=o._v$2=l),o},{_v$:void 0,_v$2:void 0}),s(()=>t.value=e.start),t})(),t(()=>e.label[1]),(()=>{let t=r();return l(t,"change",n.bind(null,"end")),t.css=i,t.popupCss=d,t.dropdownMatchSelectWidth=!1,t.arrow=!0,t._$owner=o(),s(o=>{let s=e.options.slice(1),l=e.disabled;return s!==o._v$3&&(t.options=o._v$3=s),l!==o._v$4&&(t.disabled=o._v$4=l),o},{_v$3:void 0,_v$4:void 0}),s(()=>t.value=e.end),t})(),t(()=>e.label[2])]}
|
package/es/cron/period.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/period.tsx"],"sourcesContent":["import type { BaseOption } from 'neko-ui';\n\nimport type { CronData } from '.';\nimport { selectCss, selectPortalCss } from './style';\n\ninterface 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":"qOAGA,QAASA,aAAAA,CAAS,CAAEC,mBAAAA,CAAe,KAAQ,SAAU,AAsDrD,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"}
|
package/es/cron/second.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{minutes as t}from"../date-picker/time";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";export default function(i){let l=[];for(let e=0;e<60;e++)l.push(`${e+1}`);let g=[{value:"*",label:"每秒"},{value:"period",label:e(a,{get start(){return i.state.start},get end(){return i.state.end},options:t,get disabled(){return"period"!==i.state.type},get onChange(){return i.onChange},validate:(e,t)=>"start"===e?t>=0&&t<59:t>0&&t<=59,label:["周期从","到","秒"]})},{value:"beginInterval",label:e(r,{get begin(){return i.state.begin},get beginEvery(){return i.state.beginEvery},get onChange(){return i.onChange},beginOption:t,beginEveryOption:l,get disabled(){return"beginInterval"!==i.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=59:t>=0&&t<=60,label:["从","秒开始, 每","秒执行一次"]})},{value:"some",label:e(o,{label:"具体秒数(至少选择一项)",get value(){return i.state.some},options:t,get type(){return i.state.type},get onChange(){return i.onChange}})}];return e(n,{options:g,get onChange(){return i.onChange},get state(){return i.state}})}
|
|
2
|
-
//# sourceMappingURL=second.js.map
|
|
1
|
+
import"solid-js/web";import{createComponent as e}from"solid-js/web";import{minutes as t}from"../date-picker/time";import r from"./begin-interval";import n from"./item";import a from"./period";import o from"./some";export default function(i){let l=[];for(let e=0;e<60;e++)l.push(`${e+1}`);let g=[{value:"*",label:"每秒"},{value:"period",label:e(a,{get start(){return i.state.start},get end(){return i.state.end},options:t,get disabled(){return"period"!==i.state.type},get onChange(){return i.onChange},validate:(e,t)=>"start"===e?t>=0&&t<59:t>0&&t<=59,label:["周期从","到","秒"]})},{value:"beginInterval",label:e(r,{get begin(){return i.state.begin},get beginEvery(){return i.state.beginEvery},get onChange(){return i.onChange},beginOption:t,beginEveryOption:l,get disabled(){return"beginInterval"!==i.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=59:t>=0&&t<=60,label:["从","秒开始, 每","秒执行一次"]})},{value:"some",label:e(o,{label:"具体秒数(至少选择一项)",get value(){return i.state.some},options:t,get type(){return i.state.type},get onChange(){return i.onChange}})}];return e(n,{options:g,get onChange(){return i.onChange},get state(){return i.state}})}
|
package/es/cron/second.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["components/cron/second.tsx"],"sourcesContent":["import { minutes as seconds } from '../date-picker/time';\n\nimport BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\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":["minutes","seconds","BeginInterval","Item","Period","Some","props","beginEvery","x","push","options","value","label","state","start","end","type","onChange","_","v","begin","some"],"mappings":"mEAAA,QAASA,WAAWC,CAAO,KAAQ,qBAAsB,AAEzD,QAAOC,MAAmB,kBAAmB,AAC7C,QAAOC,MAAkC,QAAS,AAClD,QAAOC,MAAY,UAAW,AAC9B,QAAOC,MAAU,QAAS,AAyD1B,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,GACFR,sBACQE,EAAMO,KAAK,CAACC,KAAK,mBACnBR,EAAMO,KAAK,CAACE,GAAG,UACXd,uBACCK,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,GACFV,sBACQI,EAAMO,KAAK,CAACO,KAAK,0BACZd,EAAMO,KAAK,CAACN,UAAU,wBACxBD,EAAMW,QAAQ,cACXhB,mBACKM,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,GACFP,2CAEQC,EAAMO,KAAK,CAACQ,IAAI,UACdpB,oBACHK,EAAMO,KAAK,CAACG,IAAI,wBACZV,EAAMW,QAAQ,GAG9B,EACD,CAED,SAAQd,WAAcO,wBAAmBJ,EAAMW,QAAQ,qBAASX,EAAMO,KAAK,GAC7E"}
|