neko-ui 2.6.6 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -6
- package/es/@moneko/routes/index.d.ts +1 -1
- package/es/back-top/style.js +1 -3
- package/es/back-top/style.js.map +1 -1
- package/es/button/style.js.map +1 -1
- package/es/capture-screen/index.js +1 -1
- package/es/capture-screen/index.js.map +1 -1
- package/es/cron/begin-interval.d.ts +1 -0
- package/es/cron/index.js +1 -1
- package/es/cron/index.js.map +1 -1
- package/es/cron/item.d.ts +1 -0
- package/es/cron/period.d.ts +1 -0
- package/es/cron/some.d.ts +1 -0
- package/es/date-picker/index.js +1 -1
- package/es/date-picker/index.js.map +1 -1
- package/es/img/style.js +0 -2
- package/es/img/style.js.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/md/index.js +1 -1
- package/es/md/index.js.map +1 -1
- package/es/md-style/index.d.ts +2 -0
- package/es/{md/style.js → md-style/index.js} +9 -11
- package/es/md-style/index.js.map +1 -0
- package/es/menu/index.js +1 -1
- package/es/menu/index.js.map +1 -1
- package/es/modal/hooks.d.ts +5 -0
- package/es/modal/hooks.js +2 -0
- package/es/modal/hooks.js.map +1 -0
- package/es/modal/style.js +3 -4
- package/es/modal/style.js.map +1 -1
- package/es/notification/index.d.ts +59 -0
- package/es/notification/index.js +2 -0
- package/es/notification/index.js.map +1 -0
- package/es/notification/notification.d.ts +3 -0
- package/es/notification/notification.js +2 -0
- package/es/notification/notification.js.map +1 -0
- package/es/notification/queque.d.ts +46 -0
- package/es/notification/queque.js +2 -0
- package/es/notification/queque.js.map +1 -0
- package/es/notification/styles.d.ts +1 -0
- package/es/notification/styles.js +97 -0
- package/es/notification/styles.js.map +1 -0
- package/es/popover/index.js +1 -1
- package/es/popover/index.js.map +1 -1
- package/es/popover/style.js +1 -3
- package/es/popover/style.js.map +1 -1
- package/es/prism/css.js +1 -3
- package/es/prism/css.js.map +1 -1
- package/es/select/index.js +1 -1
- package/es/select/index.js.map +1 -1
- package/es/theme/index.js +10 -8
- package/es/theme/index.js.map +1 -1
- package/es/tree/index.d.ts +3 -99
- package/es/tree/index.js +1 -1
- package/es/tree/index.js.map +1 -1
- package/es/tree/register.d.ts +1 -0
- package/es/tree/register.js +2 -0
- package/es/tree/register.js.map +1 -0
- package/es/tree/type.d.ts +104 -0
- package/es/tree/type.js +2 -0
- package/es/tree/type.js.map +1 -0
- package/lib/@moneko/routes/index.d.ts +1 -1
- package/lib/back-top/style.js +1 -3
- package/lib/back-top/style.js.map +1 -1
- package/lib/button/style.js.map +1 -1
- package/lib/capture-screen/index.js +1 -1
- package/lib/capture-screen/index.js.map +1 -1
- package/lib/cron/begin-interval.d.ts +1 -0
- package/lib/cron/index.js +1 -1
- package/lib/cron/index.js.map +1 -1
- package/lib/cron/item.d.ts +1 -0
- package/lib/cron/period.d.ts +1 -0
- package/lib/cron/some.d.ts +1 -0
- package/lib/img/style.js +0 -2
- package/lib/img/style.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/md/index.js +1 -1
- package/lib/md/index.js.map +1 -1
- package/lib/md-style/index.d.ts +2 -0
- package/lib/{md/style.js → md-style/index.js} +8 -10
- package/lib/md-style/index.js.map +1 -0
- package/lib/menu/index.js +1 -1
- package/lib/menu/index.js.map +1 -1
- package/lib/modal/hooks.d.ts +5 -0
- package/lib/modal/hooks.js +2 -0
- package/lib/modal/hooks.js.map +1 -0
- package/lib/modal/style.js +3 -4
- package/lib/modal/style.js.map +1 -1
- package/lib/notification/index.d.ts +59 -0
- package/lib/notification/index.js +2 -0
- package/lib/notification/index.js.map +1 -0
- package/lib/notification/notification.d.ts +3 -0
- package/lib/notification/notification.js +2 -0
- package/lib/notification/notification.js.map +1 -0
- package/lib/notification/queque.d.ts +46 -0
- package/lib/notification/queque.js +2 -0
- package/lib/notification/queque.js.map +1 -0
- package/lib/notification/styles.d.ts +1 -0
- package/lib/notification/styles.js +97 -0
- package/lib/notification/styles.js.map +1 -0
- package/lib/popover/index.js +1 -1
- package/lib/popover/index.js.map +1 -1
- package/lib/popover/style.js +1 -3
- package/lib/popover/style.js.map +1 -1
- package/lib/prism/css.js +1 -3
- package/lib/prism/css.js.map +1 -1
- package/lib/theme/index.js +8 -6
- package/lib/theme/index.js.map +1 -1
- package/lib/tree/index.d.ts +3 -99
- package/lib/tree/index.js +1 -1
- package/lib/tree/index.js.map +1 -1
- package/lib/tree/register.d.ts +1 -0
- package/lib/tree/register.js +2 -0
- package/lib/tree/register.js.map +1 -0
- package/lib/tree/type.d.ts +104 -0
- package/lib/tree/type.js +2 -0
- package/lib/tree/type.js.map +1 -0
- package/package.json +23 -21
- package/umd/index.js +1 -1
- package/es/@introduce/api.md +0 -158
- package/es/@introduce/getting-started/api.md +0 -34
- package/es/@introduce/html/doc.md +0 -45
- package/es/@introduce/react/doc.md +0 -49
- package/es/@introduce/solid/doc.md +0 -39
- package/es/@introduce/vue/doc.md +0 -54
- package/es/@moneko/cli/doc.md +0 -211
- package/es/@moneko/config/api.md +0 -213
- package/es/@moneko/locales/doc.md +0 -130
- package/es/@moneko/mock/api.md +0 -177
- package/es/@moneko/request/api.md +0 -31
- package/es/@moneko/routes/doc.md +0 -81
- package/es/@moneko/sso/api.md +0 -158
- package/es/md/style.d.ts +0 -1
- package/es/md/style.js.map +0 -1
- package/lib/@introduce/api.md +0 -158
- package/lib/@introduce/getting-started/api.md +0 -34
- package/lib/@introduce/html/doc.md +0 -45
- package/lib/@introduce/react/doc.md +0 -49
- package/lib/@introduce/solid/doc.md +0 -39
- package/lib/@introduce/vue/doc.md +0 -54
- package/lib/@moneko/cli/doc.md +0 -211
- package/lib/@moneko/config/api.md +0 -213
- package/lib/@moneko/locales/doc.md +0 -130
- package/lib/@moneko/mock/api.md +0 -177
- package/lib/@moneko/request/api.md +0 -31
- package/lib/@moneko/routes/doc.md +0 -81
- package/lib/@moneko/sso/api.md +0 -158
- package/lib/md/style.d.ts +0 -1
- package/lib/md/style.js.map +0 -1
package/lib/cron/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/cron/index.tsx"],"sourcesContent":["import {\n Show,\n batch,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport Day from './day';\nimport Hour from './hour';\nimport Minute from './minute';\nimport Month from './month';\nimport Second from './second';\nimport Week from './week';\nimport Year from './year';\nimport '../button';\nimport '../input-number';\nimport '../radio';\nimport '../select';\nimport '../tabs';\nimport type { BaseOption, CustomElement, TabOption } from '..';\n\nexport interface CronProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 隐藏域 */\n exclude?: string[];\n /** 显示表达式\n * @default true\n */\n showCron?: boolean;\n /** 标签页类型\n * @default 'line'\n */\n type?: 'line' | 'card';\n /** 值 */\n value?: string;\n /** 默认值\n * @default 0 0 0 * * ? *\n */\n defaultValue?: string;\n /** 值改变触发a */\n onChange?(val?: string): void;\n}\n\nexport type CronElement = CustomElement<CronProps>;\nexport type SecondType = '*' | 'period' | 'beginInterval' | 'some';\nexport type MinuteType = SecondType;\nexport type HourType = SecondType;\nexport type DayType = SecondType | 'closeWorkDay' | '?' | 'last';\nexport type WeekType = SecondType | 'last' | '?';\nexport type MonthType = SecondType;\nexport type YearType = SecondType | '';\nexport type CronData<T extends string = string> = {\n start: number;\n end: number;\n begin: number;\n beginEvery: number;\n type: T;\n some: number[];\n value: string;\n};\n\nexport type ActiveTab = keyof CronType;\nexport type CronType = {\n second: CronData<SecondType>;\n minute: CronData<MinuteType>;\n hour: CronData<HourType>;\n day: CronData<DayType> & { last: number; closeWorkDay: number };\n week: CronData<WeekType> & { last: number };\n month: CronData<MonthType>;\n year: CronData<YearType>;\n};\n\nfunction Cron(props: CronProps) {\n const [local] = splitProps(props, [\n 'value',\n 'defaultValue',\n 'exclude',\n 'onChange',\n 'type',\n 'showCron',\n 'css',\n 'class',\n ]);\n const [value, setValue] = createSignal(local.defaultValue);\n const date = new Date();\n const fullYear = date.getFullYear();\n const defaultState = {\n hms: {\n start: 0,\n end: 1,\n begin: 0,\n beginEvery: 1,\n some: [0],\n value: '',\n },\n mwd: {\n start: 1,\n end: 2,\n begin: 1,\n beginEvery: 1,\n some: [1],\n value: '',\n },\n year: {\n start: fullYear,\n end: fullYear + 1,\n begin: fullYear,\n beginEvery: 1,\n some: [fullYear],\n value: '',\n },\n };\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n const [active, setActive] = createSignal<ActiveTab>('second');\n const [state, setState] = createSignal<CronType>({\n second: { type: '*', ...defaultState.hms },\n minute: { type: '*', ...defaultState.hms },\n hour: { type: '*', ...defaultState.hms },\n day: {\n type: '*',\n last: 1,\n closeWorkDay: 1,\n ...defaultState.mwd,\n },\n month: {\n type: '*',\n ...defaultState.mwd,\n },\n week: {\n last: 1,\n type: '?',\n ...defaultState.mwd,\n },\n year: {\n type: '',\n ...defaultState.year,\n },\n });\n\n function prefixWeekDay() {\n const store = untrack(state);\n const isDay = active() === 'day';\n\n if (isDay || active() === 'week') {\n const key = isDay ? 'week' : 'day';\n const next = store[key].type === '?' && store[active()].type === '?' ? '*' : '?';\n\n if (next !== store[key].type) {\n setState((prev) => {\n return {\n ...prev,\n [key]: {\n ...prev[key],\n type: next,\n },\n };\n });\n }\n }\n }\n\n function onChange<T extends CronType[ActiveTab]>(type: keyof T, val: T[keyof T]) {\n batch(() => {\n prefixWeekDay();\n setState((prev) => {\n const next = {\n ...prev[active()],\n [type]: val,\n };\n\n if (type === 'start' || type === 'end') {\n if (next.end - next.start <= 1) {\n if (type === 'end') {\n next.start = (val as number) - 1;\n } else {\n next.end = (val as number) + 1;\n }\n }\n }\n\n return {\n ...prev,\n [active()]: next,\n };\n });\n });\n }\n function changeActiveKey(e: CustomEvent<[string, TabOption, Event]>) {\n setActive(e.detail[0] as ActiveTab);\n }\n function parseVal<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n if (item.value.indexOf('-') > -1) {\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.indexOf('W') > -1) {\n item.type = 'closeWorkDay';\n (item as CronType['day']).closeWorkDay = Number(item.value.split('W')[0]) || 1;\n } else if (item.value.indexOf('L') > -1) {\n item.type = 'last';\n (item as CronType['day']).last = Number(item.value.split('L')[0]) || 1;\n } else if (item.value.indexOf(isWeek ? '#' : '/') > -1) {\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.indexOf(',') > -1 || /^[0-9]+$/.test(item.value)) {\n item.type = 'some';\n item.some = item.value.split(',').map(Number);\n } else {\n item.type = item.value as CronType[T]['type'];\n }\n return item;\n }\n\n function nts(num?: string | number) {\n if (typeof num === 'number' && !isNaN(num)) {\n return `${num}`;\n }\n return num;\n }\n\n function fmt<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n switch (item.type) {\n case 'period':\n return `${nts(item.start)}-${nts(item.end)}`;\n case 'beginInterval':\n if (isWeek) return `${nts(item.beginEvery)}#${nts(item.begin)}`;\n return `${nts(item.begin)}/${nts(item.beginEvery)}`;\n case 'closeWorkDay':\n return `${nts(item.closeWorkDay || 1)}W`;\n case 'last':\n return isWeek ? `${nts(item.last)}L` : 'L';\n case 'some':\n return item.some.join(',');\n default:\n return item.type;\n }\n }\n\n createEffect(() => {\n if (local.value !== void 0 && untrack(value) !== local.value) {\n setValue(local.value);\n }\n });\n\n createEffect(() => {\n const val = value();\n\n if (val) {\n const valuesArray = val.toUpperCase().split(' ');\n\n batch(() => {\n setState((prev) => {\n return {\n second: parseVal<'second'>({ ...prev.second, value: valuesArray[0] || '?' }),\n minute: parseVal<'minute'>({ ...prev.minute, value: valuesArray[1] || '?' }),\n hour: parseVal<'hour'>({ ...prev.hour, value: valuesArray[2] || '?' }),\n day: parseVal<'day'>({ ...prev.day, value: valuesArray[3] || '' }),\n month: parseVal<'month'>({ ...prev.month, value: valuesArray[4] || '' }),\n week: parseVal<'week'>({ ...prev.week, value: valuesArray[5] || '' }, true),\n year: parseVal<'year'>({ ...prev.year, value: valuesArray[6] || '' }),\n };\n });\n });\n }\n });\n createEffect(() => {\n const { second, minute, hour, day, month, week, year } = state();\n const next = `${fmt(second)} ${fmt(minute)} ${fmt(hour)} ${fmt(day)} ${fmt(month)} ${fmt(\n week,\n true,\n )} ${fmt(year)}`;\n\n setValue((prev) => {\n if (prev === next) return prev;\n props.onChange?.(next);\n return next;\n });\n });\n\n const items = [\n {\n value: 'second',\n label: '秒',\n content: <Second state={state().second} onChange={onChange} />,\n },\n {\n value: 'minute',\n label: '分钟',\n content: <Minute state={state().minute} onChange={onChange} />,\n },\n {\n value: 'hour',\n label: '小时',\n content: <Hour state={state().hour} onChange={onChange} />,\n },\n {\n value: 'day',\n label: '日',\n content: <Day state={state().day} onChange={onChange} />,\n },\n {\n value: 'week',\n label: '周',\n content: <Week state={state().week} onChange={onChange} />,\n },\n {\n value: 'month',\n label: '月',\n content: <Month state={state().month} onChange={onChange} />,\n },\n {\n value: 'year',\n label: '年',\n content: <Year state={state().year} onChange={onChange} />,\n },\n ];\n\n return (\n <>\n <style>{css(local.css)}</style>\n <n-tabs type={local.type} items={items} value={active()} onChange={changeActiveKey} />\n <Show when={local.showCron}>\n <code\n style={{\n width: '100%',\n display: 'block',\n background: 'var(--component-bg)',\n 'border-radius': 'var(--border-radius)',\n 'text-align': 'center',\n }}\n >\n {value()}\n </code>\n </Show>\n </>\n );\n}\n\ncustomElement<CronProps>(\n 'n-cron',\n {\n value: void 0,\n defaultValue: '0 0 0 * * ? *',\n onChange: void 0,\n type: 'line',\n exclude: [],\n showCron: true,\n } as CronProps,\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(Cron, props);\n },\n);\nexport default Cron;\n"],"names":["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","indexOf","period","split","Number","beginInterval","test","map","nts","num","isNaN","fmt","join","createEffect","valuesArray","toUpperCase","items","content","Second","Minute","Hour","Day","Week","Month","Year","css","Show","showCron","customElement","exclude","_","opts","el","element","mergeProps","dispatchEvent","CustomEvent","createComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../components/cron/index.tsx"],"sourcesContent":["import {\n Show,\n batch,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport Day from './day';\nimport Hour from './hour';\nimport Minute from './minute';\nimport Month from './month';\nimport Second from './second';\nimport Week from './week';\nimport Year from './year';\nimport '../button';\nimport '../input-number';\nimport '../radio';\nimport '../select';\nimport '../tabs';\nimport type { BaseOption, CustomElement, TabOption } from '..';\n\nexport interface CronProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 隐藏域 */\n exclude?: string[];\n /** 显示表达式\n * @default true\n */\n showCron?: boolean;\n /** 标签页类型\n * @default 'line'\n */\n type?: 'line' | 'card';\n /** 值 */\n value?: string;\n /** 默认值\n * @default 0 0 0 * * ? *\n */\n defaultValue?: string;\n /** 值改变触发a */\n onChange?(val?: string): void;\n}\n\nexport type CronElement = CustomElement<CronProps>;\nexport type SecondType = '*' | 'period' | 'beginInterval' | 'some';\nexport type MinuteType = SecondType;\nexport type HourType = SecondType;\nexport type DayType = SecondType | 'closeWorkDay' | '?' | 'last';\nexport type WeekType = SecondType | 'last' | '?';\nexport type MonthType = SecondType;\nexport type YearType = SecondType | '';\nexport type CronData<T extends string = string> = {\n start: number;\n end: number;\n begin: number;\n beginEvery: number;\n type: T;\n some: number[];\n value: string;\n};\n\nexport type ActiveTab = keyof CronType;\nexport type CronType = {\n second: CronData<SecondType>;\n minute: CronData<MinuteType>;\n hour: CronData<HourType>;\n day: CronData<DayType> & { last: number; closeWorkDay: number };\n week: CronData<WeekType> & { last: number };\n month: CronData<MonthType>;\n year: CronData<YearType>;\n};\n\nfunction Cron(props: CronProps) {\n const [local] = splitProps(props, [\n 'value',\n 'defaultValue',\n 'exclude',\n 'onChange',\n 'type',\n 'showCron',\n 'css',\n 'class',\n ]);\n const [value, setValue] = createSignal(local.defaultValue);\n const date = new Date();\n const fullYear = date.getFullYear();\n const defaultState = {\n hms: {\n start: 0,\n end: 1,\n begin: 0,\n beginEvery: 1,\n some: [0],\n value: '',\n },\n mwd: {\n start: 1,\n end: 2,\n begin: 1,\n beginEvery: 1,\n some: [1],\n value: '',\n },\n year: {\n start: fullYear,\n end: fullYear + 1,\n begin: fullYear,\n beginEvery: 1,\n some: [fullYear],\n value: '',\n },\n };\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n const [active, setActive] = createSignal<ActiveTab>('second');\n const [state, setState] = createSignal<CronType>({\n second: { type: '*', ...defaultState.hms },\n minute: { type: '*', ...defaultState.hms },\n hour: { type: '*', ...defaultState.hms },\n day: {\n type: '*',\n last: 1,\n closeWorkDay: 1,\n ...defaultState.mwd,\n },\n month: {\n type: '*',\n ...defaultState.mwd,\n },\n week: {\n last: 1,\n type: '?',\n ...defaultState.mwd,\n },\n year: {\n type: '',\n ...defaultState.year,\n },\n });\n\n function prefixWeekDay() {\n const store = untrack(state);\n const isDay = active() === 'day';\n\n if (isDay || active() === 'week') {\n const key = isDay ? 'week' : 'day';\n const next = store[key].type === '?' && store[active()].type === '?' ? '*' : '?';\n\n if (next !== store[key].type) {\n setState((prev) => {\n return {\n ...prev,\n [key]: {\n ...prev[key],\n type: next,\n },\n };\n });\n }\n }\n }\n\n function onChange<T extends CronType[ActiveTab]>(type: keyof T, val: T[keyof T]) {\n batch(() => {\n prefixWeekDay();\n setState((prev) => {\n const next = {\n ...prev[active()],\n [type]: val,\n };\n\n if (type === 'start' || type === 'end') {\n if (next.end - next.start <= 1) {\n if (type === 'end') {\n next.start = (val as number) - 1;\n } else {\n next.end = (val as number) + 1;\n }\n }\n }\n\n return {\n ...prev,\n [active()]: next,\n };\n });\n });\n }\n function changeActiveKey(e: CustomEvent<[string, TabOption, Event]>) {\n setActive(e.detail[0] as ActiveTab);\n }\n function parseVal<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n if (item.value.includes('-')) {\n item.type = 'period';\n const period = item.value.split('-');\n\n item.start = Number(period[0]);\n item.end = Number(period[1]);\n } else if (item.value.includes('W')) {\n item.type = 'closeWorkDay';\n (item as CronType['day']).closeWorkDay = Number(item.value.split('W')[0]) || 1;\n } else if (item.value.includes('L')) {\n item.type = 'last';\n (item as CronType['day']).last = Number(item.value.split('L')[0]) || 1;\n } else if (item.value.includes(isWeek ? '#' : '/')) {\n item.type = 'beginInterval';\n const beginInterval = item.value.split(isWeek ? '#' : '/');\n\n if (isWeek) {\n item.begin = Number(beginInterval[1]);\n item.beginEvery = Number(beginInterval[0]);\n } else {\n item.begin = Number(beginInterval[0]);\n item.beginEvery = Number(beginInterval[1]);\n }\n } else if (item.value.includes(',') || /^[0-9]+$/.test(item.value)) {\n item.type = 'some';\n item.some = item.value.split(',').map(Number);\n } else {\n item.type = item.value as CronType[T]['type'];\n }\n return item;\n }\n\n function nts(num?: string | number) {\n if (typeof num === 'number' && !isNaN(num)) {\n return `${num}`;\n }\n return num;\n }\n\n function fmt<T extends ActiveTab>(item: CronType[T], isWeek?: boolean) {\n switch (item.type) {\n case 'period':\n return `${nts(item.start)}-${nts(item.end)}`;\n case 'beginInterval':\n if (isWeek) return `${nts(item.beginEvery)}#${nts(item.begin)}`;\n return `${nts(item.begin)}/${nts(item.beginEvery)}`;\n case 'closeWorkDay':\n return `${nts(item.closeWorkDay || 1)}W`;\n case 'last':\n return isWeek ? `${nts(item.last)}L` : 'L';\n case 'some':\n return item.some.join(',');\n default:\n return item.type;\n }\n }\n\n createEffect(() => {\n if (local.value !== void 0 && untrack(value) !== local.value) {\n setValue(local.value);\n }\n });\n\n createEffect(() => {\n const val = value();\n\n if (val) {\n const valuesArray = val.toUpperCase().split(' ');\n\n batch(() => {\n setState((prev) => {\n return {\n second: parseVal<'second'>({ ...prev.second, value: valuesArray[0] || '?' }),\n minute: parseVal<'minute'>({ ...prev.minute, value: valuesArray[1] || '?' }),\n hour: parseVal<'hour'>({ ...prev.hour, value: valuesArray[2] || '?' }),\n day: parseVal<'day'>({ ...prev.day, value: valuesArray[3] || '' }),\n month: parseVal<'month'>({ ...prev.month, value: valuesArray[4] || '' }),\n week: parseVal<'week'>({ ...prev.week, value: valuesArray[5] || '' }, true),\n year: parseVal<'year'>({ ...prev.year, value: valuesArray[6] || '' }),\n };\n });\n });\n }\n });\n createEffect(() => {\n const { second, minute, hour, day, month, week, year } = state();\n const next = `${fmt(second)} ${fmt(minute)} ${fmt(hour)} ${fmt(day)} ${fmt(month)} ${fmt(\n week,\n true,\n )} ${fmt(year)}`;\n\n setValue((prev) => {\n if (prev === next) return prev;\n props.onChange?.(next);\n return next;\n });\n });\n\n const items = [\n {\n value: 'second',\n label: '秒',\n content: <Second state={state().second} onChange={onChange} />,\n },\n {\n value: 'minute',\n label: '分钟',\n content: <Minute state={state().minute} onChange={onChange} />,\n },\n {\n value: 'hour',\n label: '小时',\n content: <Hour state={state().hour} onChange={onChange} />,\n },\n {\n value: 'day',\n label: '日',\n content: <Day state={state().day} onChange={onChange} />,\n },\n {\n value: 'week',\n label: '周',\n content: <Week state={state().week} onChange={onChange} />,\n },\n {\n value: 'month',\n label: '月',\n content: <Month state={state().month} onChange={onChange} />,\n },\n {\n value: 'year',\n label: '年',\n content: <Year state={state().year} onChange={onChange} />,\n },\n ];\n\n return (\n <>\n <style>{css(local.css)}</style>\n <n-tabs type={local.type} items={items} value={active()} onChange={changeActiveKey} />\n <Show when={local.showCron}>\n <code\n style={{\n width: '100%',\n display: 'block',\n background: 'var(--component-bg)',\n 'border-radius': 'var(--border-radius)',\n 'text-align': 'center',\n }}\n >\n {value()}\n </code>\n </Show>\n </>\n );\n}\n\ncustomElement<CronProps>(\n 'n-cron',\n {\n value: void 0,\n defaultValue: '0 0 0 * * ? *',\n onChange: void 0,\n type: 'line',\n exclude: [],\n showCron: true,\n } as CronProps,\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(Cron, props);\n },\n);\nexport default Cron;\n"],"names":["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","css","Show","showCron","customElement","exclude","_","opts","el","element","mergeProps","dispatchEvent","CustomEvent","createComponent"],"mappings":"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"}
|
package/lib/cron/item.d.ts
CHANGED
package/lib/cron/period.d.ts
CHANGED
package/lib/cron/some.d.ts
CHANGED
package/lib/img/style.js
CHANGED
package/lib/img/style.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/img/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const imgCss = css`\n .img {\n max-inline-size: 100%;\n max-block-size: 100%;\n object-fit: contain;\n transition: opacity 0.3s;\n }\n\n .none {\n pointer-events: none;\n opacity: 0.25;\n }\n`;\nexport const style = css`\n .close {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n z-index: 1;\n color: #fff;\n transition: transform var(--transition-duration);\n cursor: pointer;\n transform: scale(0);\n\n &::before {\n padding: 0 16px;\n font-size: 24px;\n content: '⛌';\n line-height: 46px;\n }\n }\n\n .portal {\n position: fixed;\n z-index: 99999;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &::before {\n position: absolute;\n z-index: -1;\n background: var(--img) center/cover no-repeat;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n opacity: 0.5;\n }\n\n &::after {\n position: absolute;\n z-index: -1;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n backdrop-filter: blur(50px);\n
|
|
1
|
+
{"version":3,"sources":["../../components/img/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const imgCss = css`\n .img {\n max-inline-size: 100%;\n max-block-size: 100%;\n object-fit: contain;\n transition: opacity 0.3s;\n }\n\n .none {\n pointer-events: none;\n opacity: 0.25;\n }\n`;\nexport const style = css`\n .close {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n z-index: 1;\n color: #fff;\n transition: transform var(--transition-duration);\n cursor: pointer;\n transform: scale(0);\n\n &::before {\n padding: 0 16px;\n font-size: 24px;\n content: '⛌';\n line-height: 46px;\n }\n }\n\n .portal {\n position: fixed;\n z-index: 99999;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &::before {\n position: absolute;\n z-index: -1;\n background: var(--img) center/cover no-repeat;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n opacity: 0.5;\n }\n\n &::after {\n position: absolute;\n z-index: -1;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n backdrop-filter: blur(50px);\n }\n\n &:hover {\n .close {\n transform: scale(1);\n }\n }\n }\n\n .open {\n animation: photo-in var(--transition-duration) forwards;\n }\n\n .closeing {\n animation: photo-out var(--transition-duration) forwards;\n }\n\n @keyframes photo-in {\n 0% {\n pointer-events: none;\n }\n\n 100% {\n inline-size: 100vi;\n block-size: 100vb;\n inset-block-start: 0;\n inset-inline-start: 0;\n }\n }\n\n @keyframes photo-out {\n from {\n inline-size: 100vi;\n block-size: 100vb;\n inset-block-start: 0;\n inset-inline-start: 0;\n }\n\n to {\n pointer-events: none;\n }\n }\n`;\n"],"names":["imgCss","style","css"],"mappings":"+JAEaA,MAAM,mBAANA,GAaAC,KAAK,mBAALA,qBAfO,eAEPD,EAASE,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;AAY1B,CAAC,CACYD,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFzB,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -20,9 +20,10 @@ export { default as Img, type ImgElement, type ImgProps } from './img';
|
|
|
20
20
|
export { default as Input, type InputElement, type InputProps } from './input';
|
|
21
21
|
export { default as InputNumber, type InputNumberElement, type InputNumberProps, } from './input-number';
|
|
22
22
|
export { default as Md, type MdElement, type MdProps } from './md';
|
|
23
|
-
export {
|
|
23
|
+
export { default as mdStyle } from './md-style';
|
|
24
24
|
export { default as Menu, type MenuElement, type MenuMultipleElement, type MenuMultipleProps, type MenuOption, type MenuProps, } from './menu';
|
|
25
25
|
export { default as Modal, type ModalElement, type ModalProps, type OpenStateKey, OpenState, } from './modal';
|
|
26
|
+
export { default as notification, type NotificationType, type NotificationProps, } from './notification';
|
|
26
27
|
export { default as Pagination, type PaginationProps, type PaginationElement } from './pagination';
|
|
27
28
|
export { default as Popover, type PopoverElement, type PopoverProps } from './popover';
|
|
28
29
|
export { default as Radio, type RadioElement, type RadioOption, type RadioProps } from './radio';
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{Avatar:function(){return e.default},AvatarGroup:function(){return r.default},BackTop:function(){return t.default},Button:function(){return u.default},CaptureScreen:function(){return i.default},Carousel:function(){return o.default},Checkbox:function(){return f.default},Code:function(){return a.default},ColorPalette:function(){return c.default},ColorPicker:function(){return l.default},Cron:function(){return d.default},DatePicker:function(){return p.default},Dropdown:function(){return q.default},Empty:function(){return s.default},FieldName:function(){return n.FieldName},HighlightText:function(){return h.default},Img:function(){return y.default},Input:function(){return b.default},InputNumber:function(){return S.default},Md:function(){return v.default},Menu:function(){return k.default},Modal:function(){return w.default},OpenState:function(){return w.OpenState},Pagination:function(){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{Avatar:function(){return e.default},AvatarGroup:function(){return r.default},BackTop:function(){return t.default},Button:function(){return u.default},CaptureScreen:function(){return i.default},Carousel:function(){return o.default},Checkbox:function(){return f.default},Code:function(){return a.default},ColorPalette:function(){return c.default},ColorPicker:function(){return l.default},Cron:function(){return d.default},DatePicker:function(){return p.default},Dropdown:function(){return q.default},Empty:function(){return s.default},FieldName:function(){return n.FieldName},HighlightText:function(){return h.default},Img:function(){return y.default},Input:function(){return b.default},InputNumber:function(){return S.default},Md:function(){return v.default},Menu:function(){return k.default},Modal:function(){return w.default},OpenState:function(){return w.OpenState},Pagination:function(){return C.default},Popover:function(){return M.default},Provider:function(){return G.default},Radio:function(){return j.default},Segmented:function(){return _.default},Select:function(){return T.default},Size:function(){return n.Size},Skeleton:function(){return x.default},Spin:function(){return D.default},Status:function(){return n.Status},Switch:function(){return E.default},Table:function(){return I.default},Tabs:function(){return N.default},Tag:function(){return W.default},Tree:function(){return A.default},Typography:function(){return B.default},customElement:function(){return H.customElement},dayjs:function(){return F.default},fromSchema:function(){return m.default},generateTheme:function(){return z.generateTheme},getCurrentElement:function(){return H.getCurrentElement},getOptions:function(){return g.default},hot:function(){return H.hot},mdStyle:function(){return O.default},noShadowDOM:function(){return H.noShadowDOM},notification:function(){return P.default},theme:function(){return z.default},toneColor:function(){return z.toneColor},withSolid:function(){return H.withSolid}});const e=R(require("./avatar")),r=R(require("./avatar/group")),t=R(require("./back-top")),n=require("./basic-config"),u=R(require("./button")),i=R(require("./capture-screen")),o=R(require("./carousel")),f=R(require("./checkbox")),a=R(require("./code")),c=R(require("./color-palette")),l=R(require("./color-picker")),d=R(require("./cron")),p=R(require("./date-picker")),q=R(require("./dropdown")),s=R(require("./empty")),m=R(require("./from-schema")),g=R(require("./get-options")),h=R(require("./highlight-text")),y=R(require("./img")),b=R(require("./input")),S=R(require("./input-number")),v=R(require("./md")),O=R(require("./md-style")),k=R(require("./menu")),w=K(require("./modal")),P=R(require("./notification")),C=R(require("./pagination")),M=R(require("./popover")),j=R(require("./radio")),_=R(require("./segmented")),T=R(require("./select")),x=R(require("./skeleton")),D=R(require("./spin")),E=R(require("./switch")),I=R(require("./table")),N=R(require("./tabs")),W=R(require("./tag")),z=K(require("./theme")),A=R(require("./tree")),B=R(require("./typography")),F=R(require("./date-picker/dayjs")),G=R(require("./provider")),H=require("solid-element");function R(e){return e&&e.__esModule?e:{default:e}}function J(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(J=function(e){return e?t:r})(e)}function K(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=J(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=u?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}return n.default=e,t&&t.set(e,n),n}
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/index.ts"],"sourcesContent":["export { default as Avatar, type AvatarElement, type AvatarProps } from './avatar';\nexport {\n default as AvatarGroup,\n type AvatarGroupElement,\n type AvatarGroupProps,\n} from './avatar/group';\nexport { default as BackTop, type BackTopElement, type BackTopProps } from './back-top';\nexport { type BaseOption, type BasicConfig, FieldName, Size, Status } from './basic-config';\nexport { default as Button, type ButtonElement, type ButtonProps } from './button';\nexport {\n default as CaptureScreen,\n type CaptureScreenElement,\n type CaptureScreenProps,\n} from './capture-screen';\nexport { default as Carousel, type CarouselElement, type CarouselProps } from './carousel';\nexport {\n default as Checkbox,\n type CheckboxBoolElement,\n type CheckboxBoolProps,\n type CheckboxGroupElement,\n type CheckboxGroupProps,\n} from './checkbox';\nexport { default as Code, type CodeElement, type CodeProps } from './code';\nexport {\n default as ColorPalette,\n type ColorPaletteElement,\n type ColorPaletteProps,\n} from './color-palette';\nexport {\n default as ColorPicker,\n type ColorPickerElement,\n type ColorPickerProps,\n} from './color-picker';\nexport { default as Cron, type CronElement, type CronProps } from './cron';\nexport { default as DatePicker, type DatePickerProps, type DatePickerElement } from './date-picker';\nexport {\n default as Dropdown,\n type DropdownElement,\n type DropdownMultipleElement,\n type DropdownMultipleProps,\n type DropdownProps,\n} from './dropdown';\nexport { default as Empty, type EmptyElement, type EmptyProps } from './empty';\nexport { default as fromSchema } from './from-schema';\nexport { default as getOptions } from './get-options';\nexport {\n default as HighlightText,\n type HighlightTextElement,\n type HighlightTextProps,\n} from './highlight-text';\nexport { default as Img, type ImgElement, type ImgProps } from './img';\nexport { default as Input, type InputElement, type InputProps } from './input';\nexport {\n default as InputNumber,\n type InputNumberElement,\n type InputNumberProps,\n} from './input-number';\nexport { default as Md, type MdElement, type MdProps } from './md';\nexport { style as mdStyle } from './md/style';\nexport {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\nexport {\n default as Modal,\n type ModalElement,\n type ModalProps,\n type OpenStateKey,\n OpenState,\n} from './modal';\nexport { default as Pagination, type PaginationProps, type PaginationElement } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\nexport { default as Radio, type RadioElement, type RadioOption, type RadioProps } from './radio';\nexport { default as Segmented, type SegmentedElement, type SegmentedProps } from './segmented';\nexport {\n default as Select,\n type SelectElement,\n type SelectMultipleElement,\n type SelectMultipleProps,\n type SelectProps,\n} from './select';\nexport { default as Skeleton, type SkeletonElement, type SkeletonProps } from './skeleton';\nexport { default as Spin, type SpinElement, type SpinProps } from './spin';\nexport { default as Switch, type SwitchElement, type SwitchProps } from './switch';\nexport { default as Table, type TableElement, type TableProps } from './table';\nexport { default as Tabs, type TabOption, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n default as theme,\n type ColorScheme,\n type ThemeOption,\n generateTheme,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\n type TreeElement,\n type TreeMultipleElement,\n type TreeMultipleProps,\n type TreeMultipleSchemaElement,\n type TreeMultipleSchemaProps,\n type TreeMultipleStringElement,\n type TreeMultipleStringProps,\n type TreeProps,\n type TreeSchemaElement,\n type TreeSchemaProps,\n type TreeStringElement,\n type TreeStringProps,\n} from './tree';\nexport { default as Typography, type TypographyElement, type TypographyProps } from './typography';\nexport { default as dayjs } from './date-picker/dayjs';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { hot, customElement, noShadowDOM, withSolid, getCurrentElement } from 'solid-element';\nexport type { CustomElement } from 'custom-element-type';\nimport type {\n AvatarElement,\n AvatarGroupElement,\n BackTopElement,\n ButtonElement,\n CaptureScreenElement,\n CarouselElement,\n CheckboxBoolElement,\n CheckboxGroupElement,\n CodeElement,\n ColorPaletteElement,\n ColorPickerElement,\n CronElement,\n DatePickerElement,\n DropdownElement,\n DropdownMultipleElement,\n EmptyElement,\n HighlightTextElement,\n ImgElement,\n InputElement,\n InputNumberElement,\n MdElement,\n MenuElement,\n MenuMultipleElement,\n ModalElement,\n PaginationElement,\n PopoverElement,\n ProviderElement,\n RadioElement,\n SegmentedElement,\n SelectElement,\n SelectMultipleElement,\n SkeletonElement,\n SpinElement,\n SwitchElement,\n TableElement,\n TabsElement,\n TagElement,\n TreeElement,\n TreeMultipleElement,\n TreeMultipleSchemaElement,\n TreeMultipleStringElement,\n TreeSchemaElement,\n TreeStringElement,\n TypographyElement,\n} from '.';\nimport type { ICustomElement, Transform } from 'custom-element-type';\n\n/** 组件列表\n * @author monako97\n * @ignore optional\n */\ninterface CustomElementTags {\n /** 头像 */\n 'n-avatar': AvatarElement;\n /** 头像组 */\n 'n-avatar-group': AvatarGroupElement;\n /** 返回顶部 */\n 'n-back-top': BackTopElement;\n /** 按钮 */\n 'n-button': ButtonElement;\n /** 捕获屏幕 */\n 'n-capture-screen': CaptureScreenElement;\n /** 走马灯、轮播 */\n 'n-carousel': CarouselElement;\n /** 复选框 */\n 'n-checkbox': CheckboxBoolElement | CheckboxGroupElement;\n /** 代码框 */\n 'n-code': CodeElement;\n /** 取色器 */\n 'n-color-palette': ColorPaletteElement;\n /** 取色器(弹出类型) */\n 'n-color-picker': ColorPickerElement;\n /** 下拉面板 */\n 'n-dropdown': DropdownElement | DropdownMultipleElement;\n /** 空面板 */\n 'n-empty': EmptyElement;\n /** 匹配高亮文字 */\n 'n-highlight-text': HighlightTextElement;\n /** 图片查看器 */\n 'n-img': ImgElement;\n /** 输入框 */\n 'n-input': InputElement;\n /** 数字输入框 */\n 'n-input-number': InputNumberElement;\n /** Markdown渲染 */\n 'n-md': MdElement;\n /** 弹出气泡面板 */\n 'n-popover': PopoverElement;\n /** 单选项 */\n 'n-radio': RadioElement;\n /** 分段控制器 */\n 'n-segmented': SegmentedElement;\n /** 下拉选择框 */\n 'n-select': SelectElement | SelectMultipleElement;\n /** 骨架屏 */\n 'n-skeleton': SkeletonElement;\n /** 加载中 */\n 'n-spin': SpinElement;\n /** 开关 */\n 'n-switch': SwitchElement;\n /** 树形渲染 */\n 'n-tree':\n | TreeElement\n | TreeStringElement\n | TreeSchemaElement\n | TreeMultipleElement\n | TreeMultipleStringElement\n | TreeMultipleSchemaElement;\n /** 文字排版 */\n 'n-typography': TypographyElement;\n /** 标签页 */\n 'n-tabs': TabsElement;\n /** 标签 */\n 'n-tag': TagElement;\n /** 导航菜单 */\n 'n-menu': MenuElement | MenuMultipleElement;\n /** Cron表达式编辑器 */\n 'n-cron': CronElement;\n /** 日期选择器\n * @since 2.1.0\n */\n 'n-data-picker': DatePickerElement;\n /** 数据表格\n * @since 2.2.0\n */\n 'n-table': TableElement;\n /** 分页器\n * @since 2.2.0\n */\n 'n-pagination': PaginationElement;\n /** 响应内部变化\n * @since 2.3.0\n */\n 'n-provider': ProviderElement;\n /** 模态框\n * @since 2.6.0\n */\n 'n-modal': ModalElement;\n}\ntype IntrinsicNekoElement = Transform<CustomElementTags>;\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends HTMLElementTags, IntrinsicNekoElement {}\n }\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\n\nexport interface ComponentOptions<T> {\n element: T & ICustomElement;\n}\n"],"names":["Avatar","AvatarGroup","BackTop","Button","CaptureScreen","Carousel","Checkbox","Code","ColorPalette","ColorPicker","Cron","DatePicker","Dropdown","Empty","FieldName","HighlightText","Img","Input","InputNumber","Md","Menu","Modal","OpenState","Pagination","Popover","Provider","Radio","Segmented","Select","Size","Skeleton","Spin","Status","Switch","Table","Tabs","Tag","Tree","Typography","customElement","dayjs","fromSchema","generateTheme","getCurrentElement","getOptions","hot","mdStyle","style","noShadowDOM","theme","toneColor","withSolid"],"mappings":"+JAAoBA,MAAM,mBAANA,SAAM,EAEbC,WAAW,mBAAXA,SAAW,EAIJC,OAAO,mBAAPA,SAAO,EAEPC,MAAM,mBAANA,SAAM,EAEbC,aAAa,mBAAbA,SAAa,EAINC,QAAQ,mBAARA,SAAQ,EAEfC,QAAQ,mBAARA,SAAQ,EAMDC,IAAI,mBAAJA,SAAI,EAEXC,YAAY,mBAAZA,SAAY,EAKZC,WAAW,mBAAXA,SAAW,EAIJC,IAAI,mBAAJA,SAAI,EACJC,UAAU,mBAAVA,SAAU,EAEjBC,QAAQ,mBAARA,SAAQ,EAMDC,KAAK,mBAALA,SAAK,EAnCmBC,SAAS,mBAATA,WAAS,EAuCxCC,aAAa,mBAAbA,SAAa,EAINC,GAAG,mBAAHA,SAAG,EACHC,KAAK,mBAALA,SAAK,EAEZC,WAAW,mBAAXA,SAAW,EAIJC,EAAE,mBAAFA,SAAE,EAGTC,IAAI,mBAAJA,SAAI,EAQJC,KAAK,mBAALA,SAAK,EAIhBC,SAAS,mBAATA,WAAS,EAESC,UAAU,mBAAVA,SAAU,EACVC,OAAO,mBAAPA,SAAO,EAwCPC,QAAQ,mBAARA,SAAQ,EAvCRC,KAAK,mBAALA,SAAK,EACLC,SAAS,mBAATA,SAAS,EAEhBC,MAAM,mBAANA,SAAM,EAxEoCC,IAAI,mBAAJA,MAAI,EA8EvCC,QAAQ,mBAARA,SAAQ,EACRC,IAAI,mBAAJA,SAAI,EA/EqCC,MAAM,mBAANA,QAAM,EAgF/CC,MAAM,mBAANA,SAAM,EACNC,KAAK,mBAALA,SAAK,EACLC,IAAI,mBAAJA,SAAI,EACJC,GAAG,mBAAHA,SAAG,EASVC,IAAI,mBAAJA,SAAI,EAcGC,UAAU,mBAAVA,SAAU,EAGhBC,aAAa,mBAAbA,eAAa,EAFPC,KAAK,mBAALA,SAAK,EAvELC,UAAU,mBAAVA,SAAU,EAoD5BC,aAAa,mBAAbA,eAAa,EAqBsCC,iBAAiB,mBAAjBA,mBAAiB,EAxElDC,UAAU,mBAAVA,SAAU,EAwErBC,GAAG,mBAAHA,KAAG,EA1DMC,OAAO,mBAAhBC,OAAK,EA0DeC,WAAW,mBAAXA,aAAW,EAxB3BC,KAAK,mBAALA,SAAK,EAIhBC,SAAS,mBAATA,WAAS,EAoB+BC,SAAS,mBAATA,WAAS,sBApHqB,yBAKjE,+BACoE,yBACA,8BACH,yBAKjE,iCACuE,2BAOvE,2BAC2D,uBAK3D,gCAKA,+BAC2D,uBACkB,8BAO7E,2BAC8D,wBAC/B,8BACA,8BAK/B,iCACwD,sBACM,wBAK9D,+BACqD,mBAC3B,0BAQ1B,uBAOA,wBAC6E,6BACT,0BACY,wBACN,4BAO1E,yBACuE,2BACZ,uBACM,yBACH,wBACa,uBACnB,sBAOxD,wBAeA,uBAC6E,6BACnD,oCAC6C,yBACA"}
|
|
1
|
+
{"version":3,"sources":["../components/index.ts"],"sourcesContent":["'use client';\n\nexport { default as Avatar, type AvatarElement, type AvatarProps } from './avatar';\nexport {\n default as AvatarGroup,\n type AvatarGroupElement,\n type AvatarGroupProps,\n} from './avatar/group';\nexport { default as BackTop, type BackTopElement, type BackTopProps } from './back-top';\nexport { type BaseOption, type BasicConfig, FieldName, Size, Status } from './basic-config';\nexport { default as Button, type ButtonElement, type ButtonProps } from './button';\nexport {\n default as CaptureScreen,\n type CaptureScreenElement,\n type CaptureScreenProps,\n} from './capture-screen';\nexport { default as Carousel, type CarouselElement, type CarouselProps } from './carousel';\nexport {\n default as Checkbox,\n type CheckboxBoolElement,\n type CheckboxBoolProps,\n type CheckboxGroupElement,\n type CheckboxGroupProps,\n} from './checkbox';\nexport { default as Code, type CodeElement, type CodeProps } from './code';\nexport {\n default as ColorPalette,\n type ColorPaletteElement,\n type ColorPaletteProps,\n} from './color-palette';\nexport {\n default as ColorPicker,\n type ColorPickerElement,\n type ColorPickerProps,\n} from './color-picker';\nexport { default as Cron, type CronElement, type CronProps } from './cron';\nexport { default as DatePicker, type DatePickerProps, type DatePickerElement } from './date-picker';\nexport {\n default as Dropdown,\n type DropdownElement,\n type DropdownMultipleElement,\n type DropdownMultipleProps,\n type DropdownProps,\n} from './dropdown';\nexport { default as Empty, type EmptyElement, type EmptyProps } from './empty';\nexport { default as fromSchema } from './from-schema';\nexport { default as getOptions } from './get-options';\nexport {\n default as HighlightText,\n type HighlightTextElement,\n type HighlightTextProps,\n} from './highlight-text';\nexport { default as Img, type ImgElement, type ImgProps } from './img';\nexport { default as Input, type InputElement, type InputProps } from './input';\nexport {\n default as InputNumber,\n type InputNumberElement,\n type InputNumberProps,\n} from './input-number';\nexport { default as Md, type MdElement, type MdProps } from './md';\nexport { default as mdStyle } from './md-style';\nexport {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\nexport {\n default as Modal,\n type ModalElement,\n type ModalProps,\n type OpenStateKey,\n OpenState,\n} from './modal';\nexport {\n default as notification,\n type NotificationType,\n type NotificationProps,\n} from './notification';\nexport { default as Pagination, type PaginationProps, type PaginationElement } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\nexport { default as Radio, type RadioElement, type RadioOption, type RadioProps } from './radio';\nexport { default as Segmented, type SegmentedElement, type SegmentedProps } from './segmented';\nexport {\n default as Select,\n type SelectElement,\n type SelectMultipleElement,\n type SelectMultipleProps,\n type SelectProps,\n} from './select';\nexport { default as Skeleton, type SkeletonElement, type SkeletonProps } from './skeleton';\nexport { default as Spin, type SpinElement, type SpinProps } from './spin';\nexport { default as Switch, type SwitchElement, type SwitchProps } from './switch';\nexport { default as Table, type TableElement, type TableProps } from './table';\nexport { default as Tabs, type TabOption, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n default as theme,\n type ColorScheme,\n type ThemeOption,\n generateTheme,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\n type TreeElement,\n type TreeMultipleElement,\n type TreeMultipleProps,\n type TreeMultipleSchemaElement,\n type TreeMultipleSchemaProps,\n type TreeMultipleStringElement,\n type TreeMultipleStringProps,\n type TreeProps,\n type TreeSchemaElement,\n type TreeSchemaProps,\n type TreeStringElement,\n type TreeStringProps,\n} from './tree';\nexport { default as Typography, type TypographyElement, type TypographyProps } from './typography';\nexport { default as dayjs } from './date-picker/dayjs';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { hot, customElement, noShadowDOM, withSolid, getCurrentElement } from 'solid-element';\nexport type { CustomElement } from 'custom-element-type';\nimport type {\n AvatarElement,\n AvatarGroupElement,\n BackTopElement,\n ButtonElement,\n CaptureScreenElement,\n CarouselElement,\n CheckboxBoolElement,\n CheckboxGroupElement,\n CodeElement,\n ColorPaletteElement,\n ColorPickerElement,\n CronElement,\n DatePickerElement,\n DropdownElement,\n DropdownMultipleElement,\n EmptyElement,\n HighlightTextElement,\n ImgElement,\n InputElement,\n InputNumberElement,\n MdElement,\n MenuElement,\n MenuMultipleElement,\n ModalElement,\n PaginationElement,\n PopoverElement,\n ProviderElement,\n RadioElement,\n SegmentedElement,\n SelectElement,\n SelectMultipleElement,\n SkeletonElement,\n SpinElement,\n SwitchElement,\n TableElement,\n TabsElement,\n TagElement,\n TreeElement,\n TreeMultipleElement,\n TreeMultipleSchemaElement,\n TreeMultipleStringElement,\n TreeSchemaElement,\n TreeStringElement,\n TypographyElement,\n} from '.';\nimport type { ICustomElement, Transform } from 'custom-element-type';\n\n/** 组件列表\n * @author monako97\n * @ignore optional\n */\ninterface CustomElementTags {\n /** 头像 */\n 'n-avatar': AvatarElement;\n /** 头像组 */\n 'n-avatar-group': AvatarGroupElement;\n /** 返回顶部 */\n 'n-back-top': BackTopElement;\n /** 按钮 */\n 'n-button': ButtonElement;\n /** 捕获屏幕 */\n 'n-capture-screen': CaptureScreenElement;\n /** 走马灯、轮播 */\n 'n-carousel': CarouselElement;\n /** 复选框 */\n 'n-checkbox': CheckboxBoolElement | CheckboxGroupElement;\n /** 代码框 */\n 'n-code': CodeElement;\n /** 取色器 */\n 'n-color-palette': ColorPaletteElement;\n /** 取色器(弹出类型) */\n 'n-color-picker': ColorPickerElement;\n /** 下拉面板 */\n 'n-dropdown': DropdownElement | DropdownMultipleElement;\n /** 空面板 */\n 'n-empty': EmptyElement;\n /** 匹配高亮文字 */\n 'n-highlight-text': HighlightTextElement;\n /** 图片查看器 */\n 'n-img': ImgElement;\n /** 输入框 */\n 'n-input': InputElement;\n /** 数字输入框 */\n 'n-input-number': InputNumberElement;\n /** Markdown渲染 */\n 'n-md': MdElement;\n /** 弹出气泡面板 */\n 'n-popover': PopoverElement;\n /** 单选项 */\n 'n-radio': RadioElement;\n /** 分段控制器 */\n 'n-segmented': SegmentedElement;\n /** 下拉选择框 */\n 'n-select': SelectElement | SelectMultipleElement;\n /** 骨架屏 */\n 'n-skeleton': SkeletonElement;\n /** 加载中 */\n 'n-spin': SpinElement;\n /** 开关 */\n 'n-switch': SwitchElement;\n /** 树形渲染 */\n 'n-tree':\n | TreeElement\n | TreeStringElement\n | TreeSchemaElement\n | TreeMultipleElement\n | TreeMultipleStringElement\n | TreeMultipleSchemaElement;\n /** 文字排版 */\n 'n-typography': TypographyElement;\n /** 标签页 */\n 'n-tabs': TabsElement;\n /** 标签 */\n 'n-tag': TagElement;\n /** 导航菜单 */\n 'n-menu': MenuElement | MenuMultipleElement;\n /** Cron表达式编辑器 */\n 'n-cron': CronElement;\n /** 日期选择器\n * @since 2.1.0\n */\n 'n-data-picker': DatePickerElement;\n /** 数据表格\n * @since 2.2.0\n */\n 'n-table': TableElement;\n /** 分页器\n * @since 2.2.0\n */\n 'n-pagination': PaginationElement;\n /** 响应内部变化\n * @since 2.3.0\n */\n 'n-provider': ProviderElement;\n /** 模态框\n * @since 2.6.0\n */\n 'n-modal': ModalElement;\n}\ntype IntrinsicNekoElement = Transform<CustomElementTags>;\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends HTMLElementTags, IntrinsicNekoElement {}\n }\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\n\nexport interface ComponentOptions<T> {\n element: T & ICustomElement;\n}\n"],"names":["Avatar","AvatarGroup","BackTop","Button","CaptureScreen","Carousel","Checkbox","Code","ColorPalette","ColorPicker","Cron","DatePicker","Dropdown","Empty","FieldName","HighlightText","Img","Input","InputNumber","Md","Menu","Modal","OpenState","Pagination","Popover","Provider","Radio","Segmented","Select","Size","Skeleton","Spin","Status","Switch","Table","Tabs","Tag","Tree","Typography","customElement","dayjs","fromSchema","generateTheme","getCurrentElement","getOptions","hot","mdStyle","noShadowDOM","notification","theme","toneColor","withSolid"],"mappings":"+JAEoBA,MAAM,mBAANA,SAAM,EAEbC,WAAW,mBAAXA,SAAW,EAIJC,OAAO,mBAAPA,SAAO,EAEPC,MAAM,mBAANA,SAAM,EAEbC,aAAa,mBAAbA,SAAa,EAINC,QAAQ,mBAARA,SAAQ,EAEfC,QAAQ,mBAARA,SAAQ,EAMDC,IAAI,mBAAJA,SAAI,EAEXC,YAAY,mBAAZA,SAAY,EAKZC,WAAW,mBAAXA,SAAW,EAIJC,IAAI,mBAAJA,SAAI,EACJC,UAAU,mBAAVA,SAAU,EAEjBC,QAAQ,mBAARA,SAAQ,EAMDC,KAAK,mBAALA,SAAK,EAnCmBC,SAAS,mBAATA,WAAS,EAuCxCC,aAAa,mBAAbA,SAAa,EAINC,GAAG,mBAAHA,SAAG,EACHC,KAAK,mBAALA,SAAK,EAEZC,WAAW,mBAAXA,SAAW,EAIJC,EAAE,mBAAFA,SAAE,EAGTC,IAAI,mBAAJA,SAAI,EAQJC,KAAK,mBAALA,SAAK,EAIhBC,SAAS,mBAATA,WAAS,EAOSC,UAAU,mBAAVA,SAAU,EACVC,OAAO,mBAAPA,SAAO,EAwCPC,QAAQ,mBAARA,SAAQ,EAvCRC,KAAK,mBAALA,SAAK,EACLC,SAAS,mBAATA,SAAS,EAEhBC,MAAM,mBAANA,SAAM,EA7EoCC,IAAI,mBAAJA,MAAI,EAmFvCC,QAAQ,mBAARA,SAAQ,EACRC,IAAI,mBAAJA,SAAI,EApFqCC,MAAM,mBAANA,QAAM,EAqF/CC,MAAM,mBAANA,SAAM,EACNC,KAAK,mBAALA,SAAK,EACLC,IAAI,mBAAJA,SAAI,EACJC,GAAG,mBAAHA,SAAG,EASVC,IAAI,mBAAJA,SAAI,EAcGC,UAAU,mBAAVA,SAAU,EAGhBC,aAAa,mBAAbA,eAAa,EAFPC,KAAK,mBAALA,SAAK,EA5ELC,UAAU,mBAAVA,SAAU,EAyD5BC,aAAa,mBAAbA,eAAa,EAqBsCC,iBAAiB,mBAAjBA,mBAAiB,EA7ElDC,UAAU,mBAAVA,SAAU,EA6ErBC,GAAG,mBAAHA,KAAG,EA/DQC,OAAO,mBAAPA,SAAO,EA+DEC,WAAW,mBAAXA,aAAW,EA9C3BC,YAAY,mBAAZA,SAAY,EAsBZC,KAAK,mBAALA,SAAK,EAIhBC,SAAS,mBAATA,WAAS,EAoB+BC,SAAS,mBAATA,WAAS,sBAzHqB,yBAKjE,+BACoE,yBACA,8BACH,yBAKjE,iCACuE,2BAOvE,2BAC2D,uBAK3D,gCAKA,+BAC2D,uBACkB,8BAO7E,2BAC8D,wBAC/B,8BACA,8BAK/B,iCACwD,sBACM,wBAK9D,+BACqD,qBACzB,2BAQ5B,uBAOA,wBAKA,+BAC6E,6BACT,0BACY,wBACN,4BAO1E,yBACuE,2BACZ,uBACM,yBACH,wBACa,uBACnB,sBAOxD,wBAeA,uBAC6E,6BACnD,oCAC6C,yBACA"}
|
package/lib/md/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return g}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),n=l(require("marked-completed")),o=require("solid-element")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return g}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),n=l(require("marked-completed")),o=require("solid-element");require("../code"),require("../img");const i=l(require("../md-style")),c=l(require("../theme"));function l(e){return e&&e.__esModule?e:{default:e}}const a=(0,e.template)("<style>"),s=(0,e.template)('<article class="n-md-box" part="box"><div class="n-md-body" part="body">'),u=(0,e.template)('<article part="box">');function d(e){return`<n-katex display-mode="true">${e}</n-katex>`}function h(e){return`<n-katex>${e}</n-katex>`}function f(e,t,r){return`<img role="img" src="${e}" alt="${r}" ${t?`title="${t}"`:""}></img>`}function m(e,t,r){return`<n-img role="img" src="${e}" alt="${r}" ${t?`title="${t}"`:""}></n-img>`}function p(o){let l;let p=new n.default.Renderer;p.katexBlock=d,p.katexInline=h;let{baseStyle:g}=c.default,v=(0,t.mergeProps)({pictureViewer:!0,text:"",tools:["copy"],getAnchorContainer:()=>window},o);(0,t.createEffect)(()=>{!function(e){var t;let{text:r,pictureViewer:o,langToolbar:i,...c}=e;p.image=o?m:f;let a=!!i?.length;p.code=function(e,t){return"treeview"===t?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${a}" lang="${t}" ${c.langLineNumber?'line-number="true"':""}>${encodeURIComponent(e)}</n-code>`},t={data:(0,n.default)(r,{renderer:p,langToolbar:i,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0,...c})},l&&(l.innerHTML=t.data)}({text:v.text,langLineNumber:v.lineNumber,langToolbar:v.tools,pictureViewer:v.pictureViewer})});let x=[],b=[],w=[];function C(e){e.preventDefault(),e.stopPropagation();let t=e.target;t.hash?(l?.querySelector(decodeURIComponent(t.hash))?.scrollIntoView({behavior:"smooth",block:"nearest"}),x.forEach(e=>e.classList.remove("active")),t.classList.add("active")):window.open(t.href)}function $(e){e.forEach(e=>{let t;let r=e.target.getAttribute("id"),n=e.target.querySelectorAll("a");if(x.forEach(e=>{e.hash===`#${r}`?t=e:e.hash||n.forEach(r=>{r.href===e.href&&(t=e)})}),t){let r=w.indexOf(t);w.forEach(e=>{e.classList.remove("active")}),e.isIntersecting?w.push(t):-1!==r&&w.splice(r,1),w[0]&&(w[0].classList.add("active"),w[0].offsetParent?.scrollTo({top:w[0].offsetTop}))}})}return(0,t.createEffect)(()=>{let e;l&&v.text?.startsWith("[TOC]")&&(x=[...l.querySelectorAll(".n-md-toc a[href]")],b=[...l.querySelectorAll("h1, h2, h3, h4, h5, h6")],e=new IntersectionObserver($,{rootMargin:"-50px 0px",threshold:.5}),b.forEach(t=>e.observe(t)),x.forEach(e=>{e.addEventListener("click",C)})),(0,t.onCleanup)(()=>{e&&(b.forEach(t=>e.unobserve(t)),e.disconnect()),x.forEach(e=>{e.removeEventListener("click",C)})})}),[(()=>{let t=a();return(0,e.insert)(t,g,null),(0,e.insert)(t,i.default,null),(0,e.insert)(t,()=>(0,r.css)(v.css),null),t})(),(0,e.createComponent)(t.Switch,{get children(){return[(0,e.createComponent)(t.Match,{get when(){return v.children?.length},get children(){let r=s(),n=r.firstChild;return(0,e.insert)(n,(0,e.createComponent)(t.For,{get each(){return v.children},children:e=>e})),r}}),(0,e.createComponent)(t.Match,{get when(){return v.text},get children(){let t=u(),n=l;return"function"==typeof n?(0,e.use)(n,t):l=t,(0,e.effect)(()=>(0,e.className)(t,(0,r.cx)("n-md-box",v.class))),t}})]}})]}(0,o.customElement)("n-md",{class:void 0,pictureViewer:void 0,lineNumber:!0,text:void 0,tools:void 0,getAnchorContainer:void 0,css:void 0,children:void 0,notRender:void 0},(e,r)=>{let n=r.element,o=(0,t.mergeProps)({text:!e.notRender&&n.textContent||n.text,css:n.css,tools:n.tools,getAnchorContainer:n.getAnchorContainer},e);return(0,t.createEffect)(()=>{n.removeAttribute("css"),n.replaceChildren()}),(0,t.createComponent)(p,o)});const g=p;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/md/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/md/index.tsx"],"sourcesContent":["import { For, Match, Switch, createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport marked from 'marked-completed';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport '../code';\nimport '../img';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nfunction katexBlock(code: string) {\n return `<n-katex display-mode=\"true\">${code}</n-katex>`;\n}\nfunction katexInline(code: string) {\n return `<n-katex>${code}</n-katex>`;\n}\nfunction img(src: string, title: string, alt: string) {\n return `<img role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></img>`;\n}\nfunction nImg(src: string, title: string, alt: string) {\n return `<n-img role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></n-img>`;\n}\nfunction MD(_props: MdProps) {\n let ref: HTMLDivElement | undefined;\n const renderer = new marked.Renderer();\n\n renderer.katexBlock = katexBlock;\n renderer.katexInline = katexInline;\n const { baseStyle } = theme;\n const props = mergeProps(\n {\n pictureViewer: true,\n text: '',\n tools: ['copy'],\n getAnchorContainer: () => window as unknown as HTMLElement,\n },\n _props,\n );\n\n function update(e: { data: string }) {\n if (ref) {\n ref.innerHTML = e.data;\n }\n }\n function postMessage(opt: {\n text: string;\n pictureViewer?: boolean;\n langToolbar?: string[];\n langLineNumber?: boolean;\n }) {\n const { text, pictureViewer, langToolbar, ...options } = opt;\n\n renderer.image = pictureViewer ? nImg : img;\n const toolbar = !!langToolbar?.length;\n\n renderer.code = function (code: string, lang: string) {\n if (lang === 'treeview') {\n return `<n-tree data=\"${code}\" />`;\n }\n\n return `<n-code class=\"n-code\" toolbar=\"${toolbar}\" lang=\"${lang}\" ${\n options.langLineNumber ? 'line-number=\"true\"' : ''\n }>${encodeURIComponent(code)}</n-code>`;\n };\n\n update({\n data: marked(text, {\n renderer: renderer,\n langToolbar: langToolbar,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n ...options,\n }),\n });\n }\n // const work = new Worker(new URL('./worker.ts', import.meta.url));\n\n // work.addEventListener('message', update);\n // work.postMessage({\n // text: props.text,\n // langLineNumber: props.lineNumber,\n // langToolbar: props.tools,\n // pictureViewer: props.pictureViewer,\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n postMessage({\n text: props.text,\n langLineNumber: props.lineNumber,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n });\n });\n let list: HTMLAnchorElement[] = [];\n let heading: HTMLHeadingElement[] = [];\n const active: HTMLAnchorElement[] = [];\n\n function handleAnchor(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const a = e.target as HTMLAnchorElement;\n\n if (a.hash) {\n ref?.querySelector(decodeURIComponent(a.hash))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n list.forEach((item) => item.classList.remove('active'));\n a.classList.add('active');\n } else {\n window.open(a.href);\n }\n }\n function observerEntry(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n const id = entry.target.getAttribute('id');\n const all = entry.target.querySelectorAll('a');\n let a: HTMLAnchorElement | undefined;\n\n list.forEach((l) => {\n if (l.hash === `#${id}`) {\n a = l;\n } else if (!l.hash) {\n all.forEach((e) => {\n if (e.href === l.href) {\n a = l;\n }\n });\n }\n });\n if (a) {\n const idx = active.indexOf(a);\n\n active.forEach((e) => {\n e.classList.remove('active');\n });\n if (entry.isIntersecting) {\n active.push(a);\n } else if (idx !== -1) {\n active.splice(idx, 1);\n }\n if (active[0]) {\n active[0].classList.add('active');\n active[0].offsetParent?.scrollTo({\n top: active[0].offsetTop,\n });\n }\n }\n });\n }\n createEffect(() => {\n let observer: IntersectionObserver;\n\n if (ref && props.text?.startsWith('[TOC]')) {\n list = [...ref.querySelectorAll<HTMLAnchorElement>('.n-md-toc a[href]')];\n heading = [...ref.querySelectorAll<HTMLHeadingElement>('h1, h2, h3, h4, h5, h6')];\n\n observer = new IntersectionObserver(observerEntry, {\n rootMargin: '-50px 0px',\n threshold: 0.5,\n });\n\n heading.forEach((e) => observer.observe(e));\n list.forEach((e) => {\n e.addEventListener('click', handleAnchor);\n });\n }\n onCleanup(() => {\n if (observer) {\n heading.forEach((e) => observer.unobserve(e));\n observer.disconnect();\n }\n list.forEach((e) => {\n e.removeEventListener('click', handleAnchor);\n });\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(props.css)}\n </style>\n <Switch>\n <Match when={(props.children as [])?.length}>\n <article class=\"n-md-box\" part=\"box\">\n <div class=\"n-md-body\" part=\"body\">\n <For each={props.children as []}>{(e) => <>{e}</>}</For>\n </div>\n </article>\n </Match>\n <Match when={props.text}>\n <article ref={ref} class={cx('n-md-box', props.class)} part=\"box\" />\n </Match>\n </Switch>\n </>\n );\n}\n\nexport interface MdProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** md内容 */\n text?: string;\n /** 开启图片查看器\n * @since 2.0.8\n * @default true\n */\n pictureViewer?: boolean;\n /** 显示代码块行号\n * @default true\n */\n lineNumber?: boolean;\n /** 开启代码块工具条\n * @default ['copy']\n */\n tools?: 'copy'[];\n /** 指定滚动的容器\n * @default () => window\n */\n getAnchorContainer?: () => HTMLElement;\n /** 不进行解析\n * @default false\n */\n notRender?: boolean;\n children?: JSX.Element;\n}\n\nexport type MdElement = CustomElement<MdProps>;\n\ncustomElement<MdProps>(\n 'n-md',\n {\n class: void 0,\n pictureViewer: void 0,\n lineNumber: true,\n text: void 0,\n tools: void 0,\n getAnchorContainer: void 0,\n css: void 0,\n children: void 0,\n notRender: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n text: (!_.notRender && el.textContent) || el.text,\n css: el.css,\n tools: el.tools,\n getAnchorContainer: el.getAnchorContainer,\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.replaceChildren();\n });\n return createComponent(MD, props);\n },\n);\nexport default MD;\n"],"names":["katexBlock","code","katexInline","img","src","title","alt","nImg","MD","_props","ref","renderer","marked","Renderer","baseStyle","theme","props","mergeProps","pictureViewer","text","tools","getAnchorContainer","window","createEffect","postMessage","opt","e","langToolbar","options","image","toolbar","length","lang","langLineNumber","encodeURIComponent","data","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","innerHTML","lineNumber","list","heading","active","handleAnchor","preventDefault","stopPropagation","a","target","hash","querySelector","decodeURIComponent","scrollIntoView","behavior","block","forEach","item","classList","remove","add","open","href","observerEntry","entries","entry","id","getAttribute","all","querySelectorAll","l","idx","indexOf","isIntersecting","push","splice","offsetParent","scrollTo","top","offsetTop","observer","startsWith","IntersectionObserver","rootMargin","threshold","observe","addEventListener","onCleanup","unobserve","disconnect","removeEventListener","style","css","Switch","Match","children","For","cx","class","customElement","notRender","_","el","element","textContent","removeAttribute","replaceChildren","createComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../components/md/index.tsx"],"sourcesContent":["import { For, Match, Switch, createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport marked from 'marked-completed';\nimport { customElement } from 'solid-element';\nimport '../code';\nimport '../img';\nimport mdStyle from '../md-style';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nfunction katexBlock(code: string) {\n return `<n-katex display-mode=\"true\">${code}</n-katex>`;\n}\nfunction katexInline(code: string) {\n return `<n-katex>${code}</n-katex>`;\n}\nfunction img(src: string, title: string, alt: string) {\n return `<img role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></img>`;\n}\nfunction nImg(src: string, title: string, alt: string) {\n return `<n-img role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></n-img>`;\n}\nfunction MD(_props: MdProps) {\n let ref: HTMLDivElement | undefined;\n const renderer = new marked.Renderer();\n\n renderer.katexBlock = katexBlock;\n renderer.katexInline = katexInline;\n const { baseStyle } = theme;\n const props = mergeProps(\n {\n pictureViewer: true,\n text: '',\n tools: ['copy'],\n getAnchorContainer: () => window as unknown as HTMLElement,\n },\n _props,\n );\n\n function update(e: { data: string }) {\n if (ref) {\n ref.innerHTML = e.data;\n }\n }\n function postMessage(opt: {\n text: string;\n pictureViewer?: boolean;\n langToolbar?: string[];\n langLineNumber?: boolean;\n }) {\n const { text, pictureViewer, langToolbar, ...options } = opt;\n\n renderer.image = pictureViewer ? nImg : img;\n const toolbar = !!langToolbar?.length;\n\n renderer.code = function (code: string, lang: string) {\n if (lang === 'treeview') {\n return `<n-tree data=\"${code}\" />`;\n }\n\n return `<n-code class=\"n-code\" toolbar=\"${toolbar}\" lang=\"${lang}\" ${\n options.langLineNumber ? 'line-number=\"true\"' : ''\n }>${encodeURIComponent(code)}</n-code>`;\n };\n\n update({\n data: marked(text, {\n renderer: renderer,\n langToolbar: langToolbar,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n ...options,\n }),\n });\n }\n // const work = new Worker(new URL('./worker.ts', import.meta.url));\n\n // work.addEventListener('message', update);\n // work.postMessage({\n // text: props.text,\n // langLineNumber: props.lineNumber,\n // langToolbar: props.tools,\n // pictureViewer: props.pictureViewer,\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n postMessage({\n text: props.text,\n langLineNumber: props.lineNumber,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n });\n });\n let list: HTMLAnchorElement[] = [];\n let heading: HTMLHeadingElement[] = [];\n const active: HTMLAnchorElement[] = [];\n\n function handleAnchor(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const a = e.target as HTMLAnchorElement;\n\n if (a.hash) {\n ref?.querySelector(decodeURIComponent(a.hash))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n list.forEach((item) => item.classList.remove('active'));\n a.classList.add('active');\n } else {\n window.open(a.href);\n }\n }\n function observerEntry(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n const id = entry.target.getAttribute('id');\n const all = entry.target.querySelectorAll('a');\n let a: HTMLAnchorElement | undefined;\n\n list.forEach((l) => {\n if (l.hash === `#${id}`) {\n a = l;\n } else if (!l.hash) {\n all.forEach((e) => {\n if (e.href === l.href) {\n a = l;\n }\n });\n }\n });\n if (a) {\n const idx = active.indexOf(a);\n\n active.forEach((e) => {\n e.classList.remove('active');\n });\n if (entry.isIntersecting) {\n active.push(a);\n } else if (idx !== -1) {\n active.splice(idx, 1);\n }\n if (active[0]) {\n active[0].classList.add('active');\n active[0].offsetParent?.scrollTo({\n top: active[0].offsetTop,\n });\n }\n }\n });\n }\n createEffect(() => {\n let observer: IntersectionObserver;\n\n if (ref && props.text?.startsWith('[TOC]')) {\n list = [...ref.querySelectorAll<HTMLAnchorElement>('.n-md-toc a[href]')];\n heading = [...ref.querySelectorAll<HTMLHeadingElement>('h1, h2, h3, h4, h5, h6')];\n\n observer = new IntersectionObserver(observerEntry, {\n rootMargin: '-50px 0px',\n threshold: 0.5,\n });\n\n heading.forEach((e) => observer.observe(e));\n list.forEach((e) => {\n e.addEventListener('click', handleAnchor);\n });\n }\n onCleanup(() => {\n if (observer) {\n heading.forEach((e) => observer.unobserve(e));\n observer.disconnect();\n }\n list.forEach((e) => {\n e.removeEventListener('click', handleAnchor);\n });\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {mdStyle}\n {css(props.css)}\n </style>\n <Switch>\n <Match when={(props.children as [])?.length}>\n <article class=\"n-md-box\" part=\"box\">\n <div class=\"n-md-body\" part=\"body\">\n <For each={props.children as []}>{(e) => <>{e}</>}</For>\n </div>\n </article>\n </Match>\n <Match when={props.text}>\n <article ref={ref} class={cx('n-md-box', props.class)} part=\"box\" />\n </Match>\n </Switch>\n </>\n );\n}\n\nexport interface MdProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** md内容 */\n text?: string;\n /** 开启图片查看器\n * @since 2.0.8\n * @default true\n */\n pictureViewer?: boolean;\n /** 显示代码块行号\n * @default true\n */\n lineNumber?: boolean;\n /** 开启代码块工具条\n * @default ['copy']\n */\n tools?: 'copy'[];\n /** 指定滚动的容器\n * @default () => window\n */\n getAnchorContainer?: () => HTMLElement;\n /** 不进行解析\n * @default false\n */\n notRender?: boolean;\n children?: JSX.Element;\n}\n\nexport type MdElement = CustomElement<MdProps>;\n\ncustomElement<MdProps>(\n 'n-md',\n {\n class: void 0,\n pictureViewer: void 0,\n lineNumber: true,\n text: void 0,\n tools: void 0,\n getAnchorContainer: void 0,\n css: void 0,\n children: void 0,\n notRender: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n text: (!_.notRender && el.textContent) || el.text,\n css: el.css,\n tools: el.tools,\n getAnchorContainer: el.getAnchorContainer,\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.replaceChildren();\n });\n return createComponent(MD, props);\n },\n);\nexport default MD;\n"],"names":["katexBlock","code","katexInline","img","src","title","alt","nImg","MD","_props","ref","renderer","marked","Renderer","baseStyle","theme","props","mergeProps","pictureViewer","text","tools","getAnchorContainer","window","createEffect","postMessage","opt","e","langToolbar","options","image","toolbar","length","lang","langLineNumber","encodeURIComponent","data","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","innerHTML","lineNumber","list","heading","active","handleAnchor","preventDefault","stopPropagation","a","target","hash","querySelector","decodeURIComponent","scrollIntoView","behavior","block","forEach","item","classList","remove","add","open","href","observerEntry","entries","entry","id","getAttribute","all","querySelectorAll","l","idx","indexOf","isIntersecting","push","splice","offsetParent","scrollTo","top","offsetTop","observer","startsWith","IntersectionObserver","rootMargin","threshold","observe","addEventListener","onCleanup","unobserve","disconnect","removeEventListener","mdStyle","css","Switch","Match","children","For","cx","class","customElement","notRender","_","el","element","textContent","removeAttribute","replaceChildren","createComponent"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return r}});const o=require("@moneko/css"),r=(0,o.css)`
|
|
2
2
|
:host,
|
|
3
3
|
:root {
|
|
4
4
|
--table-heading-bg: var(--border-color);
|
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
.n-photo-header > span,
|
|
8
8
|
.n-md-body,
|
|
9
9
|
.n-md-toc {
|
|
10
|
-
backdrop-filter: blur(
|
|
11
|
-
/* stylelint-disable-next-line */
|
|
12
|
-
-webkit-backdrop-filter: blur(16px);
|
|
10
|
+
backdrop-filter: blur(10px);
|
|
13
11
|
}
|
|
14
12
|
|
|
15
13
|
.n-md-box:not(.site-doc-main) {
|
|
@@ -152,7 +150,11 @@
|
|
|
152
150
|
opacity: 0.4;
|
|
153
151
|
}
|
|
154
152
|
|
|
155
|
-
a[href]::before {
|
|
153
|
+
a[href]:has(img, n-img)::before {
|
|
154
|
+
content: none !important;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
a[href]:not(.site-pagination-link)::before {
|
|
156
158
|
position: absolute;
|
|
157
159
|
inset-block-end: 0;
|
|
158
160
|
inset-inline-start: 0;
|
|
@@ -168,10 +170,6 @@
|
|
|
168
170
|
content: '';
|
|
169
171
|
}
|
|
170
172
|
|
|
171
|
-
a[href]:has(img, n-img)::before {
|
|
172
|
-
content: none !important;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
173
|
a:hover::before {
|
|
176
174
|
transform: scaleX(1);
|
|
177
175
|
}
|
|
@@ -565,4 +563,4 @@
|
|
|
565
563
|
}
|
|
566
564
|
}
|
|
567
565
|
`;
|
|
568
|
-
//# sourceMappingURL=
|
|
566
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../components/md-style/index.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nconst mdStyle = css`\n :host,\n :root {\n --table-heading-bg: var(--border-color);\n }\n\n .n-photo-header > span,\n .n-md-body,\n .n-md-toc {\n backdrop-filter: blur(10px);\n }\n\n .n-md-box:not(.site-doc-main) {\n position: relative;\n display: flex;\n margin: 0 auto;\n max-inline-size: 1280px;\n flex-direction: row-reverse;\n gap: 16px;\n }\n\n .n-md-toc,\n .n-md-body {\n border-radius: var(--border-radius);\n background-color: var(--component-bg);\n box-shadow: 0 2px 8px 0 var(--primary-shadow);\n }\n\n .n-md-body {\n overflow: hidden;\n margin: 0 auto 24px;\n padding: 24px;\n color: var(--text-color);\n max-inline-size: 100%;\n box-sizing: border-box;\n overflow-wrap: break-word;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color;\n flex: 1;\n }\n\n .n-md-body .n-md-body,\n .n-md-body n-md {\n overflow: visible;\n margin: 0;\n padding: 0;\n background-color: unset;\n backdrop-filter: none;\n box-shadow: none;\n }\n\n .n-md-body:has(div:only-child:empty) {\n margin: 0;\n padding: 0;\n background-color: unset;\n backdrop-filter: none;\n box-shadow: none;\n }\n\n a {\n position: relative;\n text-decoration: none;\n color: var(--text-color);\n }\n\n a:visited {\n color: var(--text-secondary);\n }\n\n a:hover {\n color: var(--primary-hover, #80b3ff);\n }\n\n p {\n padding: 0;\n font-size: var(--font-size);\n line-height: 1.8;\n vertical-align: baseline;\n word-wrap: break-word;\n word-break: break-word;\n content-visibility: auto;\n contain-intrinsic-size: 32px;\n margin-block-end: 1em;\n }\n\n ol {\n margin: 0;\n padding: 0 0 0 24px;\n font-size: var(--font-size);\n }\n\n .n-md-toc {\n position: sticky;\n inset-block-start: 24px;\n inset-inline-end: 0;\n z-index: 10;\n display: block;\n overflow-y: auto;\n margin: 0 0 24px;\n padding: 16px;\n max-inline-size: 200px;\n block-size: fit-content;\n max-block-size: calc(100vb - 132px);\n box-sizing: border-box;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: border-color, background-color, box-shadow;\n }\n\n .n-md-toc li,\n .n-md-toc ol {\n display: grid;\n inline-size: fit-content;\n max-inline-size: 100%;\n font-size: var(--font-size-sm);\n list-style: none;\n }\n\n .n-md-toc li a {\n overflow: hidden;\n max-inline-size: 100%;\n font-size: var(--font-size-sm);\n text-overflow: ellipsis;\n text-decoration: none;\n white-space: nowrap;\n color: var(--text-color);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: color;\n }\n\n .n-md-toc .active,\n .n-md-toc .active a {\n color: var(--primary-color, #5794ff);\n text-shadow: 0 1px var(--primary-shadow);\n }\n\n .n-md-toc a[href^='http'],\n .n-md-toc a[href^='\\/\\/'],\n .n-md-body table a[href^='http'] {\n &:not(:has(img, n-img))::after {\n content: ' ⎋';\n opacity: 0.3;\n }\n }\n\n a[href^='mailto:']::after {\n content: ' 📧';\n opacity: 0.4;\n }\n\n a[href]:has(img, n-img)::before {\n content: none !important;\n }\n\n a[href]:not(.site-pagination-link)::before {\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 2px;\n background-color: var(--primary-hover, #80b3ff);\n transform: scaleX(0);\n transform-origin: center;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: transform, background-color;\n opacity: 0.5;\n content: '';\n }\n\n a:hover::before {\n transform: scaleX(1);\n }\n\n th img[src*='browser-logos'] {\n display: block;\n inline-size: 32px;\n block-size: 32px;\n }\n\n h1::before,\n h2::before,\n h3::before,\n h4::before,\n h5::before,\n h6::before {\n color: var(--primary-color, #5794ff);\n content: attr(data-prefix);\n }\n\n h1[data-prefix]::before,\n h2[data-prefix]::before,\n h3[data-prefix]::before,\n h4[data-prefix]::before,\n h5[data-prefix]::before,\n h6[data-prefix]::before {\n color: var(--primary-color, #5794ff);\n content: attr(data-prefix) !important;\n }\n\n code:not([class]),\n mark {\n border-radius: var(--border-radius);\n padding: 2px 7px;\n font-size: 90%;\n color: var(--primary-heading);\n background-color: var(--text-selection);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color, color;\n }\n\n [data-prefix] code,\n [data-prefix] mark {\n font-size: 60%;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5 {\n margin-block: 1em;\n font-weight: 500;\n color: var(--text-heading);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: border-color, background-color, box-shadow, color;\n }\n\n table,\n tr th,\n tr td,\n blockquote,\n blockquote::after,\n blockquote::before,\n blockquote p {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n\n dl {\n padding: 0;\n margin-block-end: 1em;\n }\n\n h1 {\n font-size: 1.6em;\n line-height: 54px;\n }\n\n h2 {\n font-size: 1.5em;\n line-height: 42px;\n counter-increment: section;\n }\n\n h2::before {\n content: counter(section) '. ';\n }\n\n h1,\n h2 {\n border-block-end: 1px dotted var(--border-color);\n padding-block-end: 10px;\n }\n\n h3 {\n font-size: 1.4em;\n line-height: 30px;\n }\n\n h4 {\n font-size: 1.3em;\n line-height: 28px;\n }\n\n h5 {\n font-size: 1.2em;\n list-style: none;\n }\n\n hr {\n margin: 16px 0;\n border: 0 none;\n padding: 0;\n block-size: 2px;\n text-align: start;\n color: var(--text-color);\n background-color: var(--border-color);\n }\n\n p img,\n p n-img {\n position: relative;\n display: flex;\n overflow: hidden;\n margin: auto;\n border-radius: var(--border-radius);\n max-inline-size: 100%;\n inline-size: fit-content;\n cursor: pointer;\n }\n\n ul {\n font-size: var(--font-size);\n }\n\n dl dt {\n margin-block-start: 16px;\n padding: 10px 0;\n font-size: 1em;\n font-weight: bold;\n font-style: italic;\n }\n\n dl dd {\n margin-block-end: 16px;\n margin-inline-start: 0;\n padding: 0 16px;\n }\n\n table {\n overflow: hidden;\n margin-block-end: 16px;\n border-block-end: 1px solid var(--table-heading-bg);\n inline-size: 100%;\n max-inline-size: 100%;\n border-spacing: 0;\n transition-property: border-color;\n word-break: break-all;\n }\n\n table:last-child {\n margin-block-end: 0;\n }\n\n table tbody tr:nth-child(2n) {\n background-color: var(--primary-details-bg);\n }\n\n table tbody tr:hover {\n background-color: var(--primary-selection);\n }\n\n table tr th {\n font-weight: 500;\n min-inline-size: 54px;\n color: var(--text-heading);\n background-color: var(--table-heading-bg);\n transition-property: background-color, color;\n }\n\n table tr th,\n table td {\n padding: 8px 16px;\n }\n\n tr:first-child th:first-child {\n border-start-start-radius: var(--border-radius);\n }\n\n tr:first-child th:last-child {\n border-start-end-radius: var(--border-radius);\n }\n\n blockquote {\n position: relative;\n margin: 30px 48px;\n border-radius: var(--border-radius);\n padding: 16px;\n font-weight: 500;\n background-color: var(--primary-selection);\n transition-property: background-color;\n }\n\n blockquote::before,\n blockquote::after {\n position: absolute;\n font-size: 56px;\n font-family: sans-serif;\n color: var(--primary-active);\n transition-property: color;\n content: '❞';\n line-height: 1;\n }\n\n blockquote::before {\n inset-block-start: -8px;\n inset-inline-start: 0;\n transform: translateX(-44px) rotate(180deg);\n }\n\n blockquote::after {\n inset-inline-end: 0;\n inset-block-end: -8px;\n transform: translateX(44px);\n }\n\n blockquote.n-tip {\n margin: 16px 0 16px 8px;\n border-inline-start: 4px solid var(--primary-color, #5794ff);\n }\n\n blockquote.n-tip::after {\n content: none;\n }\n\n blockquote.n-tip::before {\n inset-block-start: 18px;\n inset-inline-start: -12px;\n border-radius: 100%;\n inline-size: 20px;\n block-size: 20px;\n font-size: 14px;\n font-weight: bold;\n text-align: center;\n color: #fff;\n background-color: var(--primary-color, #5794ff);\n transform: none;\n content: '!';\n line-height: 20px;\n }\n\n blockquote cite {\n font-size: var(--font-size);\n color: var(--cite-color, #bfbfbf);\n line-height: 20px;\n }\n\n blockquote cite::before {\n content: '\\\\2014 \\\\00A0';\n }\n\n blockquote p {\n margin: auto 0;\n font-size: var(--font-size);\n line-height: 24px;\n transition-property: color;\n }\n\n details {\n overflow: hidden;\n border-inline-start: 5px solid var(--primary-hover, #5794ff);\n border-radius: var(--border-radius);\n padding: 12px 24px;\n background: var(--primary-details-bg);\n box-sizing: border-box;\n user-select: none;\n box-shadow: 0 2px 8px 0 var(--primary-shadow, rgb(0 0 0 / 5%));\n }\n\n details,\n details summary {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color, transform, border-color;\n }\n\n details:not(:last-of-type) {\n margin-block-end: 16px;\n }\n\n details > summary,\n details > summary ~ * {\n font-size: var(--font-size);\n font-weight: normal;\n font-style: normal;\n line-height: 1.4;\n transition-property: background-color, transform, border-color, margin;\n }\n\n details > summary:not(:last-of-type) details > summary ~ *:not(:last-of-type) {\n margin-block-end: 16px;\n }\n\n details > summary {\n font-weight: 500;\n outline: none;\n cursor: pointer;\n transform: translateX(-18px);\n }\n\n details > summary::-webkit-details-marker,\n details > summary::marker {\n display: none;\n color: transparent;\n }\n\n details > summary::before {\n display: inline-block;\n margin-inline-end: 4px;\n inline-size: 14px;\n font-weight: lighter;\n text-align: center;\n opacity: 0.5;\n content: '⛌';\n transform: rotate(45deg);\n }\n\n details[open] {\n user-select: auto;\n }\n\n details[open] > details {\n margin-block-start: 10px;\n }\n\n details[open] > summary {\n margin-block-end: 10px;\n }\n\n details[open] > summary::before {\n transform: rotate(0);\n }\n\n .katex-display {\n overflow-x: auto;\n }\n\n .n-photo-header {\n display: flex;\n flex-wrap: wrap;\n padding: 16px;\n gap: 16px;\n }\n\n .n-photo-header > span {\n border-radius: 8px;\n padding: 4px 10px;\n font-size: 14px;\n font-weight: lighter;\n background-color: rgb(0 0 0 / 20%);\n }\n\n .n-code {\n display: block;\n margin-block-end: 16px;\n }\n\n .n-code:last-child {\n margin-block-end: 0;\n }\n\n @media screen and (width <= 1100px) {\n .n-md-box,\n .n-md-box:not(.site-doc-main),\n .n-md-body {\n max-inline-size: auto;\n }\n\n .n-md-toc {\n position: fixed;\n inset-inline-end: 16px;\n transform: translateX(100%);\n transition: transform var(--transition-duration) var(--transition-timing-function);\n\n &:hover {\n transform: translateX(0);\n }\n }\n }\n`;\n\nexport default mdStyle;\n"],"names":["css"],"mappings":"kGAwjBA,+CAAA,qBAxjBoB,eAwjBpB,EAtjBgBA,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAojBpB,CAAC"}
|
package/lib/menu/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return N}});const e=require("solid-js/web"),t=require("solid-js"),n=c(require("@moneko/common/lib/frameCallback")),r=c(require("@moneko/common/lib/isFunction")),s=require("@moneko/css"),l=require("solid-element"),i=require("./style"),a=require("../basic-config"),o=c(require("../get-options")),u=c(require("../theme"));function c(e){return e&&e.__esModule?e:{default:e}}const d=(0,e.template)('<span class="menu-icon" part="icon">'),m=(0,e.template)('<span class="menu-suffix" part="suffix">'),f=(0,e.template)('<div class="sub-menu-children" part="sub-menu-children"><div>'),p=(0,e.template)('<div part="sub-menu"><span class="sub-menu-title"><span class="menu-arrow">'),v=(0,e.template)('<div><span class="menu-group-title">'),g=(0,e.template)('<div part="item">'),h=(0,e.template)("<style>"),b=(0,e.template)('<section class="menu" part="menu">');function C(l){let c;let{isDark:C,baseStyle:N}=u.default,[y,E]=(0,t.splitProps)(l,["class","css","items","fieldNames","value","disabled","toggle","multiple","onChange","onOpenChange","openKeys"]),[_,w]=(0,t.createSignal)([]),[$,A]=(0,t.createSignal)([]),q=(0,t.createMemo)(()=>`:host {--sub-menu-bg: ${C()?"rgb(255 255 255 / 1%)":"rgb(0 0 0 / 1%)"} ;}`),x=(0,t.createMemo)(()=>Object.assign({},a.FieldName,y.fieldNames)),k=(0,t.createMemo)(()=>(0,o.default)(y.items,x()));function O(e){e.preventDefault(),e.stopPropagation()}function M(e,t){if(t.preventDefault(),!e.disabled&&!y.disabled){let t=[..._()],n=e[x().value];if(y.multiple){let e=t.indexOf(n);-1===e?t.push(n):t.splice(e,1)}else t=y.toggle&&t[0]===n?[]:[n];(0,r.default)(y.onChange)&&y.onChange(y.multiple?t:t[0],e),void 0===y.value&&w(t)}}function S(n){return(0,e.createComponent)(t.For,{get each(){return n.list},children:l=>{function i(){return[(0,e.createComponent)(t.Show,{get when(){return l[n.fieldNames.icon]},get children(){let t=d();return(0,e.insert)(t,()=>l[n.fieldNames.icon]),t}}),(0,e.memo)(()=>l[n.fieldNames.label]),(()=>{let t=m();return(0,e.insert)(t,()=>l[n.fieldNames.suffix]),t})()]}function a(){let a=(0,t.createMemo)(()=>$().includes(l[n.fieldNames.value])),[o,u]=(0,t.createSignal)((0,t.untrack)(a));function c(e){O(e);let t=$();t=t.includes(l[n.fieldNames.value])?t.filter(e=>e!==l[n.fieldNames.value]):t.concat(l[n.fieldNames.value]),(0,r.default)(y.onOpenChange)&&y.onOpenChange(t),void 0===y.openKeys&&A(t)}function d(){let r;let[s,i]=(0,t.createSignal)();function o(){a()||u(!1)}return(0,t.createEffect)(()=>{i(r?.offsetHeight||0)}),(()=>{let t=f(),i=t.firstChild,a=r;return(0,e.addEventListener)(t,"animationend",o),"function"==typeof a?(0,e.use)(a,i):r=i,(0,e.insert)(i,(0,e.createComponent)(S,{get fieldNames(){return n.fieldNames},get list(){return l[n.fieldNames.children]}})),(0,e.effect)(()=>(s(),t.style.setProperty("--h",`${s()}px`))),t})()}return(0,t.createEffect)(()=>{a()&&u(!0)}),(()=>{let n=p(),r=n.firstChild,u=r.firstChild;return(0,e.addEventListener)(n,"mousedown",O,!0),(0,e.addEventListener)(r,"click",c,!0),(0,e.insert)(r,(0,e.createComponent)(i,{}),u),(0,e.insert)(n,(0,e.createComponent)(t.Show,{get when(){return o()},get children(){return(0,e.createComponent)(d,{})}}),null),(0,e.effect)(()=>(0,e.className)(n,(0,s.cx)("sub-menu",l.class,`sub-menu-${a()?"open":"close"}`))),n})()}return(0,e.createComponent)(t.Switch,{get fallback(){return(()=>{let t=g();return(0,e.addEventListener)(t,"click",M.bind(null,l),!0),(0,e.addEventListener)(t,"mousedown",O,!0),(0,e.insert)(t,(0,e.createComponent)(i,{})),(0,e.effect)(r=>{let i=(0,s.cx)("menu-item",l.class,l.type),a=l.handleClosed,o=y.disabled||l.disabled,u=_().includes(l[n.fieldNames.value]);return i!==r._v$&&(0,e.className)(t,r._v$=i),a!==r._v$2&&(0,e.setAttribute)(t,"handle-closed",r._v$2=a),o!==r._v$3&&(0,e.setAttribute)(t,"aria-disabled",r._v$3=o),u!==r._v$4&&(0,e.setAttribute)(t,"aria-selected",r._v$4=u),r},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),t})()},get children(){return[(0,e.createComponent)(t.Match,{get when(){return Array.isArray(l[n.fieldNames.children])},get children(){return(0,e.createComponent)(a,{})}}),(0,e.createComponent)(t.Match,{get when(){return Array.isArray(l[n.fieldNames.options])},get children(){let t=v(),r=t.firstChild;return(0,e.addEventListener)(t,"mousedown",O,!0),(0,e.insert)(r,(0,e.createComponent)(i,{})),(0,e.insert)(t,(0,e.createComponent)(S,{get fieldNames(){return n.fieldNames},get list(){return l[n.fieldNames.options]}}),null),(0,e.effect)(()=>(0,e.className)(t,(0,s.cx)("menu-group",l.class))),t}})]}})}})}return(0,t.createEffect)(()=>{void 0!==y.value&&null!==y.value?w(Array.isArray(y.value)?y.value:[y.value]):w([])}),(0,t.createEffect)(()=>{Array.isArray(y.openKeys)&&A(y.openKeys)}),(0,t.createEffect)(()=>{_()?.length&&(0,n.default)(()=>{let e=c?.querySelector("[aria-selected=true]");if(e&&c){let t=e.offsetTop-c.offsetTop;t<c.scrollTop?c.scrollTo({top:t,behavior:"smooth"}):e.offsetTop+e.offsetHeight>c.scrollTop+c.offsetHeight+c.offsetTop&&c.scrollTo({top:t-c.offsetHeight+e.offsetHeight,behavior:"smooth"})}})}),[(()=>{let t=h();return(0,e.insert)(t,N,null),(0,e.insert)(t,i.style,null),(0,e.insert)(t,q,null),(0,e.insert)(t,()=>(0,s.css)(y.css),null),t})(),(()=>{let t=b(),n=c;return"function"==typeof n?(0,e.use)(n,t):c=t,(0,e.spread)(t,E,!1,!0),(0,e.insert)(t,(0,e.createComponent)(S,{get fieldNames(){return x()},get list(){return k()}})),t})()]}(0,l.customElement)("n-menu",{class:void 0,css:void 0,disabled:void 0,value:void 0,defaultValue:void 0,onOpenChange:void 0,openKeys:void 0,fieldNames:void 0,multiple:void 0,toggle:void 0,onChange:void 0,items:[]},(e,n)=>{let r=n.element,s={css:r.css,onChange(e,t){r.dispatchEvent(new CustomEvent("change",{detail:[e,t]}))},onOpenChange(e){r.dispatchEvent(new CustomEvent("openchange",{detail:e}))}},l=(0,t.mergeProps)(s,e);return(0,t.createEffect)(()=>{r.removeAttribute("items"),r.removeAttribute("field-names"),r.removeAttribute("css")}),(0,t.createComponent)(C,l)});const N=C;(0,e.delegateEvents)(["click","mousedown"]);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/menu/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/menu/index.tsx"],"sourcesContent":["import {\n For,\n Match,\n Show,\n Switch,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport { FieldName } from '../basic-config';\nimport getOptions from '../get-options';\nimport theme from '../theme';\nimport type { BaseOption, BasicConfig, CustomElement } from '..';\n\nfunction Menu(props: MenuProps | MenuMultipleProps) {\n let ref: HTMLDivElement | undefined;\n const { isDark, baseStyle } = theme;\n const [local, other] = splitProps(props, [\n 'class',\n 'css',\n 'items',\n 'fieldNames',\n 'value',\n 'disabled',\n 'toggle',\n 'multiple',\n 'onChange',\n 'onOpenChange',\n 'openKeys',\n ]);\n const [value, setValue] = createSignal<(string | number)[]>([]);\n const [openKeys, setOpenKeys] = createSignal<(string | number)[]>([]);\n const cssVar = createMemo(\n () => `:host {--sub-menu-bg: ${isDark() ? 'rgb(255 255 255 / 1%)' : 'rgb(0 0 0 / 1%)'} ;}`,\n );\n const fieldNames = createMemo(() => Object.assign({}, FieldName, local.fieldNames));\n const options = createMemo(() => getOptions(local.items, fieldNames()));\n\n function preventDefault(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n function change(item: MenuOption, e: MouseEvent) {\n e.preventDefault();\n if (!item.disabled && !local.disabled) {\n let _value = [...value()];\n const key = item[fieldNames().value]!;\n\n if (local.multiple) {\n const idx = _value.indexOf(key);\n\n if (idx === -1) {\n _value.push(key);\n } else {\n _value.splice(idx, 1);\n }\n } else if (local.toggle && _value[0] === key) {\n _value = [];\n } else {\n _value = [key];\n }\n if (isFunction(local.onChange)) {\n local.onChange((local.multiple ? _value : _value[0]) as never, item);\n }\n if (typeof local.value === 'undefined') {\n setValue(_value);\n }\n }\n }\n\n interface RenderMenuProps {\n list: MenuOption[];\n fieldNames: { [key in keyof typeof FieldName]: string };\n }\n function RenderMenu(_: RenderMenuProps) {\n return (\n <For each={_.list}>\n {(item) => {\n function RowTitle() {\n return (\n <>\n <Show when={item[_.fieldNames.icon]}>\n <span class=\"menu-icon\" part=\"icon\">\n {item[_.fieldNames.icon]}\n </span>\n </Show>\n {item[_.fieldNames.label]}\n <span class=\"menu-suffix\" part=\"suffix\">\n {item[_.fieldNames.suffix]}\n </span>\n </>\n );\n }\n\n function SubMenu() {\n const isOpen = createMemo(() => openKeys().includes(item[_.fieldNames.value]!));\n const [show, setShow] = createSignal<boolean>(untrack(isOpen));\n\n createEffect(() => {\n if (isOpen()) {\n setShow(true);\n }\n });\n function handleOpen(e: MouseEvent) {\n preventDefault(e);\n let _openKeys = openKeys();\n\n if (_openKeys.includes(item[_.fieldNames.value]!)) {\n _openKeys = _openKeys.filter((v) => v !== item[_.fieldNames.value]);\n } else {\n _openKeys = _openKeys.concat(item[_.fieldNames.value]!);\n }\n\n if (isFunction(local.onOpenChange)) {\n local.onOpenChange(_openKeys);\n }\n if (local.openKeys === void 0) {\n setOpenKeys(_openKeys);\n }\n }\n function Child() {\n let el: HTMLDivElement | undefined;\n const [hei, setHei] = createSignal();\n\n createEffect(() => {\n setHei(el?.offsetHeight || 0);\n });\n function onAnimationEnd() {\n if (!isOpen()) {\n setShow(false);\n }\n }\n return (\n <div\n class=\"sub-menu-children\"\n part=\"sub-menu-children\"\n style={{\n '--h': `${hei()}px`,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n <div ref={el}>\n <RenderMenu fieldNames={_.fieldNames} list={item[_.fieldNames.children]!} />\n </div>\n </div>\n );\n }\n\n return (\n <div\n class={cx('sub-menu', item.class, `sub-menu-${isOpen() ? 'open' : 'close'}`)}\n part=\"sub-menu\"\n onMouseDown={preventDefault}\n >\n <span class=\"sub-menu-title\" onClick={handleOpen}>\n <RowTitle />\n <span class=\"menu-arrow\" />\n </span>\n <Show when={show()}>\n <Child />\n </Show>\n </div>\n );\n }\n return (\n <Switch\n fallback={\n <div\n class={cx('menu-item', item.class, item.type)}\n part=\"item\"\n handle-closed={item.handleClosed}\n aria-disabled={local.disabled || item.disabled}\n aria-selected={value().includes(item[_.fieldNames.value]!)}\n onMouseDown={preventDefault}\n onClick={change.bind(null, item)}\n >\n <RowTitle />\n </div>\n }\n >\n <Match when={Array.isArray(item[_.fieldNames.children])}>\n <SubMenu />\n </Match>\n <Match when={Array.isArray(item[_.fieldNames.options])}>\n <div class={cx('menu-group', item.class)} onMouseDown={preventDefault}>\n <span class=\"menu-group-title\">\n <RowTitle />\n </span>\n <RenderMenu fieldNames={_.fieldNames} list={item[_.fieldNames.options]!} />\n </div>\n </Match>\n </Switch>\n );\n }}\n </For>\n );\n }\n\n createEffect(() => {\n if (local.value !== void 0 && local.value !== null) {\n setValue(Array.isArray(local.value) ? local.value : [local.value]);\n } else {\n setValue([]);\n }\n });\n createEffect(() => {\n if (Array.isArray(local.openKeys)) {\n setOpenKeys(local.openKeys);\n }\n });\n\n createEffect(() => {\n let timer: NodeJS.Timeout | undefined;\n\n if (value()?.length) {\n timer = setTimeout(() => {\n clearTimeout(timer);\n const el = ref?.querySelector<HTMLElement>('[aria-selected=true]');\n\n if (el && ref) {\n const next = el.offsetTop - ref.offsetTop;\n\n if (next < ref.scrollTop) {\n ref.scrollTo({\n top: next,\n behavior: 'smooth',\n });\n } else if (\n el.offsetTop + el.offsetHeight >\n ref.scrollTop + ref.offsetHeight + ref.offsetTop\n ) {\n ref.scrollTo({\n top: next - ref.offsetHeight + el.offsetHeight,\n behavior: 'smooth',\n });\n }\n }\n }, 32);\n }\n\n onCleanup(() => {\n clearTimeout(timer);\n });\n });\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {cssVar()}\n {css(local.css)}\n </style>\n <section ref={ref} class=\"menu\" part=\"menu\" {...other}>\n <RenderMenu fieldNames={fieldNames()} list={options()} />\n </section>\n </>\n );\n}\n\nexport interface BaseMenuProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 菜单展开的keys */\n openKeys?: (string | number)[];\n /** 菜单展开时触发的方法 */\n onOpenChange?: (keys: (string | number)[]) => void;\n /** 选项数据 */\n items?: (string | MenuOption)[];\n /** 自定义节点 'label'、'value'、'options' 的字段 */\n fieldNames?: BasicConfig['fieldName'];\n /** 不可用状态 */\n disabled?: boolean;\n /** 可以取消 */\n toggle?: boolean;\n}\n\nexport interface MenuProps extends BaseMenuProps {\n /** 值修改时的回调方法 */\n onChange?(val: string | number, item: MenuOption): void;\n /** 值 */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 可多选\n * @default false\n */\n multiple?: false | never;\n}\n\nexport interface MenuMultipleProps extends BaseMenuProps {\n /** 可多选\n * @default true\n */\n multiple: true;\n /** 值修改时的回调方法 */\n onChange?(val: (string | number)[], item: MenuOption): void;\n /** 值 */\n value?: (string | number)[];\n /** 默认值 */\n defaultValue?: (string | number)[];\n}\n\n/** 菜单选项 */\nexport interface MenuOption extends Omit<BaseOption, 'children' | 'options'> {\n /** 图标 */\n icon?: JSX.Element;\n /** 内置类型(状态) */\n type?: 'primary' | 'success' | 'error' | 'warning';\n /** 自定义颜色 */\n color?: string;\n /** 子菜单 */\n children?: (string | MenuOption)[];\n /** 分组子选项 */\n options?: (string | MenuOption)[];\n}\n\nexport type MenuElement = CustomElement<MenuProps, 'onChange' | 'onOpenChange'>;\nexport type MenuMultipleElement = CustomElement<MenuMultipleProps, 'onChange' | 'onOpenChange'>;\n\ncustomElement<MenuProps>(\n 'n-menu',\n {\n class: void 0,\n css: void 0,\n disabled: void 0,\n value: void 0,\n defaultValue: void 0,\n onOpenChange: void 0,\n openKeys: void 0,\n fieldNames: void 0,\n multiple: void 0,\n toggle: void 0,\n onChange: void 0,\n items: [],\n },\n (_, opt) => {\n const el = opt.element;\n const defaultProps: Partial<MenuProps> = {\n css: el.css,\n onChange(key, item) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onOpenChange(keys) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: keys,\n }),\n );\n },\n };\n const props = mergeProps(defaultProps, _);\n\n createEffect(() => {\n el.removeAttribute('items');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return createComponent(Menu, props);\n },\n);\n\nexport default Menu;\n"],"names":["Menu","props","ref","isDark","baseStyle","theme","local","other","splitProps","value","setValue","createSignal","openKeys","setOpenKeys","cssVar","createMemo","fieldNames","Object","assign","FieldName","options","getOptions","items","preventDefault","e","stopPropagation","change","item","disabled","_value","key","multiple","idx","indexOf","push","splice","toggle","isFunction","onChange","RenderMenu","_","For","list","RowTitle","Show","icon","label","suffix","SubMenu","isOpen","includes","show","setShow","untrack","handleOpen","_openKeys","filter","v","concat","onOpenChange","Child","el","hei","setHei","onAnimationEnd","createEffect","offsetHeight","children","cx","class","Switch","bind","type","handleClosed","Match","Array","isArray","timer","length","setTimeout","clearTimeout","querySelector","next","offsetTop","scrollTop","scrollTo","top","behavior","onCleanup","style","css","customElement","defaultValue","opt","element","defaultProps","dispatchEvent","CustomEvent","detail","keys","mergeProps","removeAttribute","createComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../components/menu/index.tsx"],"sourcesContent":["import {\n For,\n Match,\n Show,\n Switch,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { frameCallback, isFunction } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport { FieldName } from '../basic-config';\nimport getOptions from '../get-options';\nimport theme from '../theme';\nimport type { BaseOption, BasicConfig, CustomElement } from '..';\n\nfunction Menu(props: MenuProps | MenuMultipleProps) {\n let ref: HTMLDivElement | undefined;\n const { isDark, baseStyle } = theme;\n const [local, other] = splitProps(props, [\n 'class',\n 'css',\n 'items',\n 'fieldNames',\n 'value',\n 'disabled',\n 'toggle',\n 'multiple',\n 'onChange',\n 'onOpenChange',\n 'openKeys',\n ]);\n const [value, setValue] = createSignal<(string | number)[]>([]);\n const [openKeys, setOpenKeys] = createSignal<(string | number)[]>([]);\n const cssVar = createMemo(\n () => `:host {--sub-menu-bg: ${isDark() ? 'rgb(255 255 255 / 1%)' : 'rgb(0 0 0 / 1%)'} ;}`,\n );\n const fieldNames = createMemo(() => Object.assign({}, FieldName, local.fieldNames));\n const options = createMemo(() => getOptions(local.items, fieldNames()));\n\n function preventDefault(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n function change(item: MenuOption, e: MouseEvent) {\n e.preventDefault();\n if (!item.disabled && !local.disabled) {\n let _value = [...value()];\n const key = item[fieldNames().value]!;\n\n if (local.multiple) {\n const idx = _value.indexOf(key);\n\n if (idx === -1) {\n _value.push(key);\n } else {\n _value.splice(idx, 1);\n }\n } else if (local.toggle && _value[0] === key) {\n _value = [];\n } else {\n _value = [key];\n }\n if (isFunction(local.onChange)) {\n local.onChange((local.multiple ? _value : _value[0]) as never, item);\n }\n if (typeof local.value === 'undefined') {\n setValue(_value);\n }\n }\n }\n\n interface RenderMenuProps {\n list: MenuOption[];\n fieldNames: { [key in keyof typeof FieldName]: string };\n }\n function RenderMenu(_: RenderMenuProps) {\n return (\n <For each={_.list}>\n {(item) => {\n function RowTitle() {\n return (\n <>\n <Show when={item[_.fieldNames.icon]}>\n <span class=\"menu-icon\" part=\"icon\">\n {item[_.fieldNames.icon]}\n </span>\n </Show>\n {item[_.fieldNames.label]}\n <span class=\"menu-suffix\" part=\"suffix\">\n {item[_.fieldNames.suffix]}\n </span>\n </>\n );\n }\n\n function SubMenu() {\n const isOpen = createMemo(() => openKeys().includes(item[_.fieldNames.value]!));\n const [show, setShow] = createSignal<boolean>(untrack(isOpen));\n\n createEffect(() => {\n if (isOpen()) {\n setShow(true);\n }\n });\n function handleOpen(e: MouseEvent) {\n preventDefault(e);\n let _openKeys = openKeys();\n\n if (_openKeys.includes(item[_.fieldNames.value]!)) {\n _openKeys = _openKeys.filter((v) => v !== item[_.fieldNames.value]);\n } else {\n _openKeys = _openKeys.concat(item[_.fieldNames.value]!);\n }\n\n if (isFunction(local.onOpenChange)) {\n local.onOpenChange(_openKeys);\n }\n if (local.openKeys === void 0) {\n setOpenKeys(_openKeys);\n }\n }\n function Child() {\n let el: HTMLDivElement | undefined;\n const [hei, setHei] = createSignal();\n\n createEffect(() => {\n setHei(el?.offsetHeight || 0);\n });\n function onAnimationEnd() {\n if (!isOpen()) {\n setShow(false);\n }\n }\n return (\n <div\n class=\"sub-menu-children\"\n part=\"sub-menu-children\"\n style={{\n '--h': `${hei()}px`,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n <div ref={el}>\n <RenderMenu fieldNames={_.fieldNames} list={item[_.fieldNames.children]!} />\n </div>\n </div>\n );\n }\n\n return (\n <div\n class={cx('sub-menu', item.class, `sub-menu-${isOpen() ? 'open' : 'close'}`)}\n part=\"sub-menu\"\n onMouseDown={preventDefault}\n >\n <span class=\"sub-menu-title\" onClick={handleOpen}>\n <RowTitle />\n <span class=\"menu-arrow\" />\n </span>\n <Show when={show()}>\n <Child />\n </Show>\n </div>\n );\n }\n return (\n <Switch\n fallback={\n <div\n class={cx('menu-item', item.class, item.type)}\n part=\"item\"\n handle-closed={item.handleClosed}\n aria-disabled={local.disabled || item.disabled}\n aria-selected={value().includes(item[_.fieldNames.value]!)}\n onMouseDown={preventDefault}\n onClick={change.bind(null, item)}\n >\n <RowTitle />\n </div>\n }\n >\n <Match when={Array.isArray(item[_.fieldNames.children])}>\n <SubMenu />\n </Match>\n <Match when={Array.isArray(item[_.fieldNames.options])}>\n <div class={cx('menu-group', item.class)} onMouseDown={preventDefault}>\n <span class=\"menu-group-title\">\n <RowTitle />\n </span>\n <RenderMenu fieldNames={_.fieldNames} list={item[_.fieldNames.options]!} />\n </div>\n </Match>\n </Switch>\n );\n }}\n </For>\n );\n }\n\n createEffect(() => {\n if (local.value !== void 0 && local.value !== null) {\n setValue(Array.isArray(local.value) ? local.value : [local.value]);\n } else {\n setValue([]);\n }\n });\n createEffect(() => {\n if (Array.isArray(local.openKeys)) {\n setOpenKeys(local.openKeys);\n }\n });\n\n createEffect(() => {\n if (value()?.length) {\n frameCallback(() => {\n const el = ref?.querySelector<HTMLElement>('[aria-selected=true]');\n\n if (el && ref) {\n const next = el.offsetTop - ref.offsetTop;\n\n if (next < ref.scrollTop) {\n ref.scrollTo({\n top: next,\n behavior: 'smooth',\n });\n } else if (\n el.offsetTop + el.offsetHeight >\n ref.scrollTop + ref.offsetHeight + ref.offsetTop\n ) {\n ref.scrollTo({\n top: next - ref.offsetHeight + el.offsetHeight,\n behavior: 'smooth',\n });\n }\n }\n });\n }\n });\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {cssVar()}\n {css(local.css)}\n </style>\n <section ref={ref} class=\"menu\" part=\"menu\" {...other}>\n <RenderMenu fieldNames={fieldNames()} list={options()} />\n </section>\n </>\n );\n}\n\nexport interface BaseMenuProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 菜单展开的keys */\n openKeys?: (string | number)[];\n /** 菜单展开时触发的方法 */\n onOpenChange?: (keys: (string | number)[]) => void;\n /** 选项数据 */\n items?: (string | MenuOption)[];\n /** 自定义节点 'label'、'value'、'options' 的字段 */\n fieldNames?: BasicConfig['fieldName'];\n /** 不可用状态 */\n disabled?: boolean;\n /** 可以取消 */\n toggle?: boolean;\n}\n\nexport interface MenuProps extends BaseMenuProps {\n /** 值修改时的回调方法 */\n onChange?(val: string | number, item: MenuOption): void;\n /** 值 */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 可多选\n * @default false\n */\n multiple?: false | never;\n}\n\nexport interface MenuMultipleProps extends BaseMenuProps {\n /** 可多选\n * @default true\n */\n multiple: true;\n /** 值修改时的回调方法 */\n onChange?(val: (string | number)[], item: MenuOption): void;\n /** 值 */\n value?: (string | number)[];\n /** 默认值 */\n defaultValue?: (string | number)[];\n}\n\n/** 菜单选项 */\nexport interface MenuOption extends Omit<BaseOption, 'children' | 'options'> {\n /** 图标 */\n icon?: JSX.Element;\n /** 内置类型(状态) */\n type?: 'primary' | 'success' | 'error' | 'warning';\n /** 自定义颜色 */\n color?: string;\n /** 子菜单 */\n children?: (string | MenuOption)[];\n /** 分组子选项 */\n options?: (string | MenuOption)[];\n}\n\nexport type MenuElement = CustomElement<MenuProps, 'onChange' | 'onOpenChange'>;\nexport type MenuMultipleElement = CustomElement<MenuMultipleProps, 'onChange' | 'onOpenChange'>;\n\ncustomElement<MenuProps>(\n 'n-menu',\n {\n class: void 0,\n css: void 0,\n disabled: void 0,\n value: void 0,\n defaultValue: void 0,\n onOpenChange: void 0,\n openKeys: void 0,\n fieldNames: void 0,\n multiple: void 0,\n toggle: void 0,\n onChange: void 0,\n items: [],\n },\n (_, opt) => {\n const el = opt.element;\n const defaultProps: Partial<MenuProps> = {\n css: el.css,\n onChange(key, item) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onOpenChange(keys) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: keys,\n }),\n );\n },\n };\n const props = mergeProps(defaultProps, _);\n\n createEffect(() => {\n el.removeAttribute('items');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return createComponent(Menu, props);\n },\n);\n\nexport default Menu;\n"],"names":["Menu","props","ref","isDark","baseStyle","theme","local","other","splitProps","value","setValue","createSignal","openKeys","setOpenKeys","cssVar","createMemo","fieldNames","Object","assign","FieldName","options","getOptions","items","preventDefault","e","stopPropagation","change","item","disabled","_value","key","multiple","idx","indexOf","push","splice","toggle","isFunction","onChange","RenderMenu","_","For","list","RowTitle","Show","icon","label","suffix","SubMenu","isOpen","includes","show","setShow","untrack","handleOpen","_openKeys","filter","v","concat","onOpenChange","Child","el","hei","setHei","onAnimationEnd","createEffect","offsetHeight","children","cx","class","Switch","bind","type","handleClosed","Match","Array","isArray","length","frameCallback","querySelector","next","offsetTop","scrollTop","scrollTo","top","behavior","style","css","customElement","defaultValue","opt","element","defaultProps","dispatchEvent","CustomEvent","detail","keys","mergeProps","removeAttribute","createComponent"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../components/modal/hooks.ts"],"sourcesContent":["import { type ModalProps } from '.';\n\nconst open = (options: ModalProps) => {\n // eslint-disable-next-line no-console\n console.log(options);\n};\n\nexport default {\n open: open,\n};\n"],"names":["open","options","console","log"],"mappings":"kGAOA,+CAAA,WAAA,EAAe,CACbA,KANW,AAACC,IAEZC,QAAQC,GAAG,CAACF,EACd,CAIA"}
|