neko-ui 2.11.0 → 2.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es/cron/index.js CHANGED
@@ -1 +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 y,createSignal as d,mergeProps as c,Show as v,splitProps as g,untrack as b}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 C from"../button";import $ from"../input-number";import k from"../radio";import N from"../select";import j from"../tabs";import{block as E}from"../theme";import W from"./day";import x from"./hour";import D from"./minute";import P from"./month";import L from"./second";import O from"./week";import V from"./year";function I(t){let[m]=g(t,["value","defaultValue","exclude","onChange","type","showCron","css","class"]),[c,h]=d(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:""}},$=[],k=[];for(let e=1;e<32;e++)$.push({label:e<10?`0${e}`:`${e}`,value:e}),k.push(e);let[N,j]=d("second"),[E,I]=d({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=b(E),r="day"===N();if(r||"week"===N()){let n=r?"week":"day",o="?"===t[n].type&&"?"===t[N()].type?"*":"?";o!==t[n].type&&I(t=>e({},t,{[n]:e({},t[n],{type:o})}))}}(),I(n=>{let o=e({},n[N()],{[t]:r});return("start"===t||"end"===t)&&o.end-o.start<=1&&("end"===t?o.start=r-1:o.end=r+1),e({},n,{[N()]:o})})})}function U(e){j(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}}y(()=>{void 0!==m.value&&b(c)!==m.value&&h(m.value)}),y(()=>{let t=c();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]||""}))}))})}}),y(()=>{let{second:e,minute:r,hour:n,day:o,month:a,week:l,year:s}=E(),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(L,{get state(){return E().second},onChange:F})},{value:"minute",label:"分钟",content:a(D,{get state(){return E().minute},onChange:F})},{value:"hour",label:"小时",content:a(x,{get state(){return E().hour},onChange:F})},{value:"day",label:"日",content:a(W,{get state(){return E().day},onChange:F})},{value:"week",label:"周",content:a(O,{get state(){return E().week},onChange:F})},{value:"month",label:"月",content:a(P,{get state(){return E().month},onChange:F})},{value:"year",label:"年",content:a(V,{get state(){return E().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=N()),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,c),e}})]}I.registry=()=>{C.registry(),$.registry(),k.registry(),N.registry(),j.registry(),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=c({onChange(e){r.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return y(()=>{w(r,["exclude","css"])}),[(()=>{let e=m();return e.textContent=E,e})(),a(I,n)]})};export default I;
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 l}from"solid-js/web";import{addEventListener as a}from"solid-js/web";let s=t("<style> "),u=t("<n-tabs>",!0,!1),i=t("<code>"),m=t("<style>");import{batch as d,createEffect as c,createMemo as p,createSignal as y,mergeProps as v,Show as g,splitProps as f,untrack as b}from"solid-js";import{css as h}from"@moneko/css";import{customElement as w}from"solid-element";import{clearAttribute as $}from"../basic-config";import C from"../button";import k from"../input-number";import N from"../radio";import j from"../select";import E from"../tabs";import{block as W}from"../theme";import x from"./day";import _ from"./hour";import D from"./minute";import P from"./month";import L from"./second";import O from"./week";import V from"./year";function I(t){let[m]=f(t,["value","defaultValue","exclude","onChange","type","showCron","css","class"]),[v,w]=y(m.defaultValue),$=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:$,end:$+1,begin:$,beginEvery:1,some:[$],value:""}},k=[],N=[];for(let e=1;e<32;e++)k.push({label:e<10?`0${e}`:`${e}`,value:e}),N.push(e);let[j,E]=y("second"),[W,I]=y({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 B(t,r){d(()=>{!function(){let t=b(W),r="day"===j();if(r||"week"===j()){let n=r?"week":"day",o="?"===t[n].type&&"?"===t[j()].type?"*":"?";o!==t[n].type&&I(t=>e({},t,{[n]:e({},t[n],{type:o})}))}}(),I(n=>{let o=e({},n[j()],{[t]:r});return("start"===t||"end"===t)&&o.end-o.start<=1&&("end"===t?o.start=r-1:o.end=r+1),e({},n,{[j()]:o})})})}function F(e){E(e.detail[0])}function U(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 Y(e){return"number"!=typeof e||isNaN(e)?e:`${e}`}function q(e,t){switch(e.type){case"period":return`${Y(e.start)}-${Y(e.end)}`;case"beginInterval":if(t)return`${Y(e.beginEvery)}#${Y(e.begin)}`;return`${Y(e.begin)}/${Y(e.beginEvery)}`;case"closeWorkDay":return`${Y(e.closeWorkDay||1)}W`;case"last":return t?`${Y(e.last)}L`:"L";case"some":return e.some.join(",");default:return e.type}}c(()=>{void 0!==m.value&&b(v)!==m.value&&w(m.value)}),c(()=>{let t=v();if(t){let r=t.toUpperCase().split(" ");d(()=>{I(t=>({second:U(e({},t.second,{value:r[0]||"?"})),minute:U(e({},t.minute,{value:r[1]||"?"})),hour:U(e({},t.hour,{value:r[2]||"?"})),day:U(e({},t.day,{value:r[3]||""})),month:U(e({},t.month,{value:r[4]||""})),week:U(e({},t.week,{value:r[5]||""}),!0),year:U(e({},t.year,{value:r[6]||""}))}))})}}),c(()=>{let{second:e,minute:r,hour:n,day:o,month:l,week:a,year:s}=W(),u=`${q(e)} ${q(r)} ${q(n)} ${q(o)} ${q(l)} ${q(a,!0)} ${q(s)}`;w(e=>e===u?e:(null==t.onChange||t.onChange.call(t,u),u))});let z=p(()=>{let e=m.exclude||[];return[!e.includes("second")&&{value:"second",label:"秒",content:l(L,{get state(){return W().second},onChange:B})},!e.includes("minute")&&{value:"minute",label:"分钟",content:l(D,{get state(){return W().minute},onChange:B})},!e.includes("hour")&&{value:"hour",label:"小时",content:l(_,{get state(){return W().hour},onChange:B})},!e.includes("day")&&{value:"day",label:"日",content:l(x,{get state(){return W().day},onChange:B})},!e.includes("week")&&{value:"week",label:"周",content:l(O,{get state(){return W().week},onChange:B})},!e.includes("month")&&{value:"month",label:"月",content:l(P,{get state(){return W().month},onChange:B})},!e.includes("year")&&{value:"year",label:"年",content:l(V,{get state(){return W().year},onChange:B})}].filter(Boolean)});return[l(g,{get when(){return m.css},get children(){let e=s(),t=e.firstChild;return o(()=>t.data=h(m.css)),e}}),(()=>{let e=u();return a(e,"change",F),e._$owner=n(),o(t=>{let r=m.type,n=z();return r!==t._v$&&(e.type=t._v$=r),n!==t._v$2&&(e.items=t._v$2=n),t},{_v$:void 0,_v$2:void 0}),o(()=>e.value=j()),e})(),l(g,{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,v),e}})]}I.registry=()=>{C.registry(),k.registry(),N.registry(),j.registry(),E.registry(),w("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=v({onChange(e){r.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return c(()=>{$(r,["exclude","css"])}),[(()=>{let e=m();return e.textContent=W,e})(),l(I,n)]})};export default I;
@@ -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 Button from '../button';\nimport InputNumber from '../input-number';\nimport Radio from '../radio';\nimport Select from '../select';\nimport Tabs from '../tabs';\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\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\nCron.registry = () => {\n Button.registry();\n InputNumber.registry();\n Radio.registry();\n Select.registry();\n Tabs.registry();\n customElement<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 );\n};\nexport default Cron;\n"],"names":["batch","createEffect","createSignal","mergeProps","Show","splitProps","untrack","css","customElement","clearAttribute","Button","InputNumber","Radio","Select","Tabs","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","registry","exclude","_","opts","el","element","dispatchEvent","CustomEvent"],"mappings":"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"}
1
+ {"version":3,"sources":["components/cron/index.tsx"],"sourcesContent":["import {\n batch,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n Show,\n splitProps,\n untrack,\n} 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 Button from '../button';\nimport InputNumber from '../input-number';\nimport Radio from '../radio';\nimport Select from '../select';\nimport Tabs from '../tabs';\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\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 = createMemo(() => {\n const exclude = local.exclude || [];\n\n return [\n !exclude.includes('second') && {\n value: 'second',\n label: '秒',\n content: <Second state={state().second} onChange={onChange} />,\n },\n !exclude.includes('minute') && {\n value: 'minute',\n label: '分钟',\n content: <Minute state={state().minute} onChange={onChange} />,\n },\n !exclude.includes('hour') && {\n value: 'hour',\n label: '小时',\n content: <Hour state={state().hour} onChange={onChange} />,\n },\n !exclude.includes('day') && {\n value: 'day',\n label: '日',\n content: <Day state={state().day} onChange={onChange} />,\n },\n !exclude.includes('week') && {\n value: 'week',\n label: '周',\n content: <Week state={state().week} onChange={onChange} />,\n },\n !exclude.includes('month') && {\n value: 'month',\n label: '月',\n content: <Month state={state().month} onChange={onChange} />,\n },\n !exclude.includes('year') && {\n value: 'year',\n label: '年',\n content: <Year state={state().year} onChange={onChange} />,\n },\n ].filter(Boolean) as TabOption[];\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\nCron.registry = () => {\n Button.registry();\n InputNumber.registry();\n Radio.registry();\n Select.registry();\n Tabs.registry();\n customElement<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 );\n};\nexport default Cron;\n"],"names":["batch","createEffect","createMemo","createSignal","mergeProps","Show","splitProps","untrack","css","customElement","clearAttribute","Button","InputNumber","Radio","Select","Tabs","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","exclude","content","filter","Boolean","showCron","registry","_","opts","el","element","dispatchEvent","CustomEvent"],"mappings":"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"}
package/lib/cron/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return q}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),n=require("solid-element"),a=require("../basic-config"),l=b(require("../button")),u=b(require("../input-number")),o=b(require("../radio")),s=b(require("../select")),i=b(require("../tabs")),c=require("../theme"),d=b(require("./day")),y=b(require("./hour")),p=b(require("./minute")),m=b(require("./month")),g=b(require("./second")),v=b(require("./week")),f=b(require("./year"));function b(e){return e&&e.__esModule?e:{default:e}}const h=(0,e.template)("<style> "),C=(0,e.template)("<n-tabs>",!0,!1),w=(0,e.template)("<code>"),$=(0,e.template)("<style>");function k(n){let[a]=(0,t.splitProps)(n,["value","defaultValue","exclude","onChange","type","showCron","css","class"]),[l,u]=(0,t.createSignal)(a.defaultValue),o=new Date().getFullYear(),s={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:o,end:o+1,begin:o,beginEvery:1,some:[o],value:""}},i=[],c=[];for(let e=1;e<32;e++)i.push({label:e<10?`0${e}`:`${e}`,value:e}),c.push(e);let[b,$]=(0,t.createSignal)("second"),[k,q]=(0,t.createSignal)({second:{type:"*",...s.hms},minute:{type:"*",...s.hms},hour:{type:"*",...s.hms},day:{type:"*",last:1,closeWorkDay:1,...s.mwd},month:{type:"*",...s.mwd},week:{last:1,type:"?",...s.mwd},year:{type:"",...s.year}});function E(e,r){(0,t.batch)(()=>{!function(){let e=(0,t.untrack)(k),r="day"===b();if(r||"week"===b()){let t=r?"week":"day",n="?"===e[t].type&&"?"===e[b()].type?"*":"?";n!==e[t].type&&q(e=>({...e,[t]:{...e[t],type:n}}))}}(),q(t=>{let n={...t[b()],[e]:r};return("start"===e||"end"===e)&&n.end-n.start<=1&&("end"===e?n.start=r-1:n.end=r+1),{...t,[b()]:n}})})}function N(e){$(e.detail[0])}function P(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 W(e){return"number"!=typeof e||isNaN(e)?e:`${e}`}function x(e,t){switch(e.type){case"period":return`${W(e.start)}-${W(e.end)}`;case"beginInterval":if(t)return`${W(e.beginEvery)}#${W(e.begin)}`;return`${W(e.begin)}/${W(e.beginEvery)}`;case"closeWorkDay":return`${W(e.closeWorkDay||1)}W`;case"last":return t?`${W(e.last)}L`:"L";case"some":return e.some.join(",");default:return e.type}}(0,t.createEffect)(()=>{void 0!==a.value&&(0,t.untrack)(l)!==a.value&&u(a.value)}),(0,t.createEffect)(()=>{let e=l();if(e){let r=e.toUpperCase().split(" ");(0,t.batch)(()=>{q(e=>({second:P({...e.second,value:r[0]||"?"}),minute:P({...e.minute,value:r[1]||"?"}),hour:P({...e.hour,value:r[2]||"?"}),day:P({...e.day,value:r[3]||""}),month:P({...e.month,value:r[4]||""}),week:P({...e.week,value:r[5]||""},!0),year:P({...e.year,value:r[6]||""})}))})}}),(0,t.createEffect)(()=>{let{second:e,minute:t,hour:r,day:a,month:l,week:o,year:s}=k(),i=`${x(e)} ${x(t)} ${x(r)} ${x(a)} ${x(l)} ${x(o,!0)} ${x(s)}`;u(e=>e===i?e:(n.onChange?.(i),i))});let D=[{value:"second",label:"秒",content:(0,e.createComponent)(g.default,{get state(){return k().second},onChange:E})},{value:"minute",label:"分钟",content:(0,e.createComponent)(p.default,{get state(){return k().minute},onChange:E})},{value:"hour",label:"小时",content:(0,e.createComponent)(y.default,{get state(){return k().hour},onChange:E})},{value:"day",label:"日",content:(0,e.createComponent)(d.default,{get state(){return k().day},onChange:E})},{value:"week",label:"周",content:(0,e.createComponent)(v.default,{get state(){return k().week},onChange:E})},{value:"month",label:"月",content:(0,e.createComponent)(m.default,{get state(){return k().month},onChange:E})},{value:"year",label:"年",content:(0,e.createComponent)(f.default,{get state(){return k().year},onChange:E})}];return[(0,e.createComponent)(t.Show,{get when(){return a.css},get children(){let t=h(),n=t.firstChild;return(0,e.effect)(()=>n.data=(0,r.css)(a.css)),t}}),(()=>{let t=C();return(0,e.addEventListener)(t,"change",N),t.items=D,t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.type=a.type),(0,e.effect)(()=>t.value=b()),t})(),(0,e.createComponent)(t.Show,{get when(){return a.showCron},get children(){let t=w();return t.style.setProperty("width","100%"),t.style.setProperty("display","block"),t.style.setProperty("background","var(--component-bg)"),t.style.setProperty("border-radius","var(--border-radius)"),t.style.setProperty("text-align","center"),(0,e.insert)(t,l),t}})]}k.registry=()=>{l.default.registry(),u.default.registry(),o.default.registry(),s.default.registry(),i.default.registry(),(0,n.customElement)("n-cron",{value:void 0,defaultValue:"0 0 0 * * ? *",onChange:void 0,type:"line",exclude:[],showCron:!0,css:void 0},(r,n)=>{let l=n.element,u=(0,t.mergeProps)({onChange(e){l.dispatchEvent(new CustomEvent("change",{detail:e}))}},r);return(0,t.createEffect)(()=>{(0,a.clearAttribute)(l,["exclude","css"])}),[(()=>{let e=$();return e.textContent=c.block,e})(),(0,e.createComponent)(k,u)]})};const q=k;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return q}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),n=require("solid-element"),a=require("../basic-config"),l=b(require("../button")),u=b(require("../input-number")),o=b(require("../radio")),s=b(require("../select")),i=b(require("../tabs")),c=require("../theme"),d=b(require("./day")),y=b(require("./hour")),m=b(require("./minute")),p=b(require("./month")),v=b(require("./second")),g=b(require("./week")),f=b(require("./year"));function b(e){return e&&e.__esModule?e:{default:e}}const h=(0,e.template)("<style> "),C=(0,e.template)("<n-tabs>",!0,!1),w=(0,e.template)("<code>"),$=(0,e.template)("<style>");function k(n){let[a]=(0,t.splitProps)(n,["value","defaultValue","exclude","onChange","type","showCron","css","class"]),[l,u]=(0,t.createSignal)(a.defaultValue),o=new Date().getFullYear(),s={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:o,end:o+1,begin:o,beginEvery:1,some:[o],value:""}},i=[],c=[];for(let e=1;e<32;e++)i.push({label:e<10?`0${e}`:`${e}`,value:e}),c.push(e);let[b,$]=(0,t.createSignal)("second"),[k,q]=(0,t.createSignal)({second:{type:"*",...s.hms},minute:{type:"*",...s.hms},hour:{type:"*",...s.hms},day:{type:"*",last:1,closeWorkDay:1,...s.mwd},month:{type:"*",...s.mwd},week:{last:1,type:"?",...s.mwd},year:{type:"",...s.year}});function E(e,r){(0,t.batch)(()=>{!function(){let e=(0,t.untrack)(k),r="day"===b();if(r||"week"===b()){let t=r?"week":"day",n="?"===e[t].type&&"?"===e[b()].type?"*":"?";n!==e[t].type&&q(e=>({...e,[t]:{...e[t],type:n}}))}}(),q(t=>{let n={...t[b()],[e]:r};return("start"===e||"end"===e)&&n.end-n.start<=1&&("end"===e?n.start=r-1:n.end=r+1),{...t,[b()]:n}})})}function N(e){$(e.detail[0])}function _(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 P(e){return"number"!=typeof e||isNaN(e)?e:`${e}`}function x(e,t){switch(e.type){case"period":return`${P(e.start)}-${P(e.end)}`;case"beginInterval":if(t)return`${P(e.beginEvery)}#${P(e.begin)}`;return`${P(e.begin)}/${P(e.beginEvery)}`;case"closeWorkDay":return`${P(e.closeWorkDay||1)}W`;case"last":return t?`${P(e.last)}L`:"L";case"some":return e.some.join(",");default:return e.type}}(0,t.createEffect)(()=>{void 0!==a.value&&(0,t.untrack)(l)!==a.value&&u(a.value)}),(0,t.createEffect)(()=>{let e=l();if(e){let r=e.toUpperCase().split(" ");(0,t.batch)(()=>{q(e=>({second:_({...e.second,value:r[0]||"?"}),minute:_({...e.minute,value:r[1]||"?"}),hour:_({...e.hour,value:r[2]||"?"}),day:_({...e.day,value:r[3]||""}),month:_({...e.month,value:r[4]||""}),week:_({...e.week,value:r[5]||""},!0),year:_({...e.year,value:r[6]||""})}))})}}),(0,t.createEffect)(()=>{let{second:e,minute:t,hour:r,day:a,month:l,week:o,year:s}=k(),i=`${x(e)} ${x(t)} ${x(r)} ${x(a)} ${x(l)} ${x(o,!0)} ${x(s)}`;u(e=>e===i?e:(n.onChange?.(i),i))});let W=(0,t.createMemo)(()=>{let t=a.exclude||[];return[!t.includes("second")&&{value:"second",label:"秒",content:(0,e.createComponent)(v.default,{get state(){return k().second},onChange:E})},!t.includes("minute")&&{value:"minute",label:"分钟",content:(0,e.createComponent)(m.default,{get state(){return k().minute},onChange:E})},!t.includes("hour")&&{value:"hour",label:"小时",content:(0,e.createComponent)(y.default,{get state(){return k().hour},onChange:E})},!t.includes("day")&&{value:"day",label:"日",content:(0,e.createComponent)(d.default,{get state(){return k().day},onChange:E})},!t.includes("week")&&{value:"week",label:"周",content:(0,e.createComponent)(g.default,{get state(){return k().week},onChange:E})},!t.includes("month")&&{value:"month",label:"月",content:(0,e.createComponent)(p.default,{get state(){return k().month},onChange:E})},!t.includes("year")&&{value:"year",label:"年",content:(0,e.createComponent)(f.default,{get state(){return k().year},onChange:E})}].filter(Boolean)});return[(0,e.createComponent)(t.Show,{get when(){return a.css},get children(){let t=h(),n=t.firstChild;return(0,e.effect)(()=>n.data=(0,r.css)(a.css)),t}}),(()=>{let t=C();return(0,e.addEventListener)(t,"change",N),t._$owner=(0,e.getOwner)(),(0,e.effect)(e=>{let r=a.type,n=W();return r!==e._v$&&(t.type=e._v$=r),n!==e._v$2&&(t.items=e._v$2=n),e},{_v$:void 0,_v$2:void 0}),(0,e.effect)(()=>t.value=b()),t})(),(0,e.createComponent)(t.Show,{get when(){return a.showCron},get children(){let t=w();return t.style.setProperty("width","100%"),t.style.setProperty("display","block"),t.style.setProperty("background","var(--component-bg)"),t.style.setProperty("border-radius","var(--border-radius)"),t.style.setProperty("text-align","center"),(0,e.insert)(t,l),t}})]}k.registry=()=>{l.default.registry(),u.default.registry(),o.default.registry(),s.default.registry(),i.default.registry(),(0,n.customElement)("n-cron",{value:void 0,defaultValue:"0 0 0 * * ? *",onChange:void 0,type:"line",exclude:[],showCron:!0,css:void 0},(r,n)=>{let l=n.element,u=(0,t.mergeProps)({onChange(e){l.dispatchEvent(new CustomEvent("change",{detail:e}))}},r);return(0,t.createEffect)(()=>{(0,a.clearAttribute)(l,["exclude","css"])}),[(()=>{let e=$();return e.textContent=c.block,e})(),(0,e.createComponent)(k,u)]})};const q=k;
@@ -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 Button from '../button';\nimport InputNumber from '../input-number';\nimport Radio from '../radio';\nimport Select from '../select';\nimport Tabs from '../tabs';\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\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\nCron.registry = () => {\n Button.registry();\n InputNumber.registry();\n Radio.registry();\n Select.registry();\n Tabs.registry();\n customElement<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 );\n};\nexport default Cron;\n"],"names":["Cron","props","local","splitProps","value","setValue","createSignal","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","batch","prefixWeekDay","store","untrack","isDay","key","next","prev","changeActiveKey","e","detail","parseVal","item","isWeek","includes","period","split","Number","beginInterval","test","map","nts","num","isNaN","fmt","join","createEffect","valuesArray","toUpperCase","items","content","Second","Minute","Hour","Day","Week","Month","Year","Show","css","showCron","registry","Button","InputNumber","Radio","Select","Tabs","customElement","exclude","_","opts","el","element","mergeProps","dispatchEvent","CustomEvent","clearAttribute","block"],"mappings":"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"}
1
+ {"version":3,"sources":["components/cron/index.tsx"],"sourcesContent":["import {\n batch,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n Show,\n splitProps,\n untrack,\n} 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 Button from '../button';\nimport InputNumber from '../input-number';\nimport Radio from '../radio';\nimport Select from '../select';\nimport Tabs from '../tabs';\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\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 = createMemo(() => {\n const exclude = local.exclude || [];\n\n return [\n !exclude.includes('second') && {\n value: 'second',\n label: '秒',\n content: <Second state={state().second} onChange={onChange} />,\n },\n !exclude.includes('minute') && {\n value: 'minute',\n label: '分钟',\n content: <Minute state={state().minute} onChange={onChange} />,\n },\n !exclude.includes('hour') && {\n value: 'hour',\n label: '小时',\n content: <Hour state={state().hour} onChange={onChange} />,\n },\n !exclude.includes('day') && {\n value: 'day',\n label: '日',\n content: <Day state={state().day} onChange={onChange} />,\n },\n !exclude.includes('week') && {\n value: 'week',\n label: '周',\n content: <Week state={state().week} onChange={onChange} />,\n },\n !exclude.includes('month') && {\n value: 'month',\n label: '月',\n content: <Month state={state().month} onChange={onChange} />,\n },\n !exclude.includes('year') && {\n value: 'year',\n label: '年',\n content: <Year state={state().year} onChange={onChange} />,\n },\n ].filter(Boolean) as TabOption[];\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\nCron.registry = () => {\n Button.registry();\n InputNumber.registry();\n Radio.registry();\n Select.registry();\n Tabs.registry();\n customElement<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 );\n};\nexport default Cron;\n"],"names":["Cron","props","local","splitProps","value","setValue","createSignal","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","batch","prefixWeekDay","store","untrack","isDay","key","next","prev","changeActiveKey","e","detail","parseVal","item","isWeek","includes","period","split","Number","beginInterval","test","map","nts","num","isNaN","fmt","join","createEffect","valuesArray","toUpperCase","items","createMemo","exclude","content","Second","Minute","Hour","Day","Week","Month","Year","filter","Boolean","Show","css","showCron","registry","Button","InputNumber","Radio","Select","Tabs","customElement","_","opts","el","element","mergeProps","dispatchEvent","CustomEvent","clearAttribute","block"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neko-ui",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "WebComponents UI Libraries",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -22,7 +22,7 @@
22
22
  "lint": "mo eslint [components,site] --fix",
23
23
  "postlint": "mo stylelint [components,site] --fix && jest --coverage",
24
24
  "precommit": "npm run lint && npm run changelog",
25
- "prepare": "mo githooks pre-commit=\"npm run lint:commit\" commit-msg=\"npx --no -- commitlint --edit ${1}\"",
25
+ "prepare": "mo githooks pre-commit=\"npm run lint:commit\" commit-msg=\"commit-lint\"",
26
26
  "start": "mo start library solid",
27
27
  "test": "jest --coverage --watchAll"
28
28
  },
@@ -61,12 +61,10 @@
61
61
  "ui libraries"
62
62
  ],
63
63
  "devDependencies": {
64
- "@commitlint/cli": "19.8.0",
65
- "@commitlint/config-conventional": "19.8.0",
66
- "@moneko/core": "3.42.1",
64
+ "@moneko/core": "3.44.7",
67
65
  "@moneko/solid": "1.11.1",
68
66
  "@solidjs/testing-library": "0.8.10",
69
- "@swc/jest": "0.2.37",
67
+ "@swc/jest": "0.2.38",
70
68
  "@testing-library/jest-dom": "6.6.3",
71
69
  "@types/jest": "29.5.14",
72
70
  "@types/prismjs": "1.26.5",