neko-ui 2.5.0 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +2 -0
  2. package/es/basic-config/index.js +1 -1
  3. package/es/basic-config/index.js.map +1 -1
  4. package/es/code/index.d.ts +1 -0
  5. package/es/code/index.js +2 -2
  6. package/es/code/index.js.map +1 -1
  7. package/es/code/worker.js +1 -1
  8. package/es/code/worker.js.map +1 -1
  9. package/es/date-picker/index.js +1 -1
  10. package/es/date-picker/index.js.map +1 -1
  11. package/es/from-schema/index.js.map +1 -1
  12. package/es/input/index.d.ts +6 -1
  13. package/es/input/index.js +1 -1
  14. package/es/input/index.js.map +1 -1
  15. package/es/input/style.js +2 -1
  16. package/es/input/style.js.map +1 -1
  17. package/es/popover/index.js +2 -2
  18. package/es/popover/index.js.map +1 -1
  19. package/es/switch/index.d.ts +1 -1
  20. package/es/switch/index.js.map +1 -1
  21. package/es/table/index.js +1 -1
  22. package/es/table/index.js.map +1 -1
  23. package/es/theme/index.js +1 -1
  24. package/es/theme/index.js.map +1 -1
  25. package/lib/basic-config/index.js +1 -1
  26. package/lib/basic-config/index.js.map +1 -1
  27. package/lib/code/index.d.ts +1 -0
  28. package/lib/code/index.js +2 -2
  29. package/lib/code/index.js.map +1 -1
  30. package/lib/code/worker.js +1 -1
  31. package/lib/code/worker.js.map +1 -1
  32. package/lib/color-palette/index.js +1 -1
  33. package/lib/color-palette/index.js.map +1 -1
  34. package/lib/cron/style.js +1 -1
  35. package/lib/cron/style.js.map +1 -1
  36. package/lib/date-picker/index.js +1 -1
  37. package/lib/date-picker/index.js.map +1 -1
  38. package/lib/date-picker/month.js +1 -1
  39. package/lib/date-picker/month.js.map +1 -1
  40. package/lib/date-picker/time.js +1 -1
  41. package/lib/date-picker/time.js.map +1 -1
  42. package/lib/dropdown/index.js +1 -1
  43. package/lib/dropdown/index.js.map +1 -1
  44. package/lib/from-schema/index.js.map +1 -1
  45. package/lib/index.js +1 -1
  46. package/lib/index.js.map +1 -1
  47. package/lib/input/index.d.ts +6 -1
  48. package/lib/input/index.js +1 -1
  49. package/lib/input/index.js.map +1 -1
  50. package/lib/input/style.js +2 -1
  51. package/lib/input/style.js.map +1 -1
  52. package/lib/popover/index.js +2 -2
  53. package/lib/popover/index.js.map +1 -1
  54. package/lib/switch/index.d.ts +1 -1
  55. package/lib/switch/index.js.map +1 -1
  56. package/lib/table/index.js +1 -1
  57. package/lib/table/index.js.map +1 -1
  58. package/lib/tabs/style.js +1 -1
  59. package/lib/tabs/style.js.map +1 -1
  60. package/lib/theme/index.js +2 -2
  61. package/lib/theme/index.js.map +1 -1
  62. package/package.json +8 -4
  63. package/umd/index.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/date-picker/month.tsx"],"sourcesContent":["import { For, createMemo } from 'solid-js';\nimport { cx } from '@moneko/css';\nimport dayjs from './dayjs';\n\ntype MonthPanelProps = { current: dayjs.Dayjs; onChange(next: dayjs.Dayjs): void };\n\nexport const months = dayjs.monthsShort();\n\nfunction MonthPanel(props: MonthPanelProps) {\n return (\n <For each={months}>\n {(m, i) => {\n const isActive = createMemo(() => {\n return props.current.get('month') === i();\n });\n\n function onChange() {\n props.onChange(props.current.set('month', i()));\n }\n\n return (\n <n-button\n type=\"primary\"\n flat={true}\n class={cx('date-picker-month', isActive() && 'date-active')}\n tag={isActive() ? 'strong' : 'button'}\n onClick={onChange}\n >\n {m}\n </n-button>\n );\n }}\n </For>\n );\n}\n\nexport default MonthPanel;\n"],"names":["months","dayjs","monthsShort","props","For","m","i","isActive","createMemo","current","get","onChange","set","cx"],"mappings":"+JAMaA,MAAM,mBAANA,GA8Bb,OAA0B,mBAA1B,oGApCgC,sBACb,0CACD,6EAILA,EAASC,SAAK,CAACC,WAAW,GA8BvC,EA5BA,SAAoBC,CAAsB,EACxC,4BACGC,KAAG,OAAOJ,WACR,CAACK,EAAGC,KACH,IAAMC,EAAWC,GAAAA,YAAU,EAAC,IACnBL,EAAMM,OAAO,CAACC,GAAG,CAAC,WAAaJ,KAGxC,SAASK,IACPR,EAAMQ,QAAQ,CAACR,EAAMM,OAAO,CAACG,GAAG,CAAC,QAASN,KAC5C,CAEA,6DAMaK,aAHH,CAAA,4CAKLN,0BAJMQ,GAAAA,IAAE,EAAC,oBAAqBN,KAAc,iBACxCA,IAAa,SAAW,qHAMnC,GAGN"}
1
+ {"version":3,"sources":["../../components/date-picker/month.tsx"],"sourcesContent":["import { For, createMemo } from 'solid-js';\nimport { cx } from '@moneko/css';\nimport dayjs from './dayjs';\n\ntype MonthPanelProps = { current: dayjs.Dayjs; onChange(next: dayjs.Dayjs): void };\n\nexport const months = dayjs.monthsShort();\n\nfunction MonthPanel(props: MonthPanelProps) {\n return (\n <For each={months}>\n {(m, i) => {\n const isActive = createMemo(() => {\n return props.current.get('month') === i();\n });\n\n function onChange() {\n props.onChange(props.current.set('month', i()));\n }\n\n return (\n <n-button\n type=\"primary\"\n flat={true}\n class={cx('date-picker-month', isActive() && 'date-active')}\n tag={isActive() ? 'strong' : 'button'}\n onClick={onChange}\n >\n {m}\n </n-button>\n );\n }}\n </For>\n );\n}\n\nexport default MonthPanel;\n"],"names":["months","dayjs","monthsShort","props","For","m","i","isActive","createMemo","current","get","onChange","set","cx"],"mappings":"+JAoCA,OAA0B,mBAA1B,GA9BaA,MAAM,mBAANA,oGANmB,sBACb,0CACD,6EAILA,EAASC,SAAK,CAACC,WAAW,GA8BvC,EA5BA,SAAoBC,CAAsB,EACxC,4BACGC,KAAG,OAAOJ,WACR,CAACK,EAAGC,KACH,IAAMC,EAAWC,GAAAA,YAAU,EAAC,IACnBL,EAAMM,OAAO,CAACC,GAAG,CAAC,WAAaJ,KAGxC,SAASK,IACPR,EAAMQ,QAAQ,CAACR,EAAMM,OAAO,CAACG,GAAG,CAAC,QAASN,KAC5C,CAEA,6DAMaK,aAHH,CAAA,4CAKLN,0BAJMQ,GAAAA,IAAE,EAAC,oBAAqBN,KAAc,iBACxCA,IAAa,SAAW,qHAMnC,GAGN"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{hours:function(){return o},minutes:function(){return i},default:function(){return s}});const e=require("solid-js/web"),t=require("solid-js"),n=/*#__PURE__*/(0,e.template)("<n-menu>",!0,!1),r=/*#__PURE__*/(0,e.template)('<section class="time-picker"><section class="time-picker-header"><n-button><strong></strong></n-button></section><section class="time-picker-items">',!0,!1),o=Array.from({length:24},(e,t)=>({label:t<10?`0${t}`:t,value:t})),i=Array.from({length:60},(e,t)=>({label:t<10?`0${t}`:t,value:t})),s=function(s){let[l,u]=(0,t.createSignal)("0px");return(0,t.createEffect)(()=>{u(`${s.datePicker?.offsetHeight}px`)}),(()=>{let u=r(),c=u.firstChild,a=c.firstChild,h=a.firstChild,f=c.nextSibling;return a.ghost=!0,a.flat=!0,a._$owner=(0,e.getOwner)(),(0,e.insert)(h,()=>s.current.format("HH:mm:ss")),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return s.showHour},get children(){let t=n();return t.addEventListener("change",e=>{let t=s.current.set("hour",e.detail[0]);s.onChange(t)}),t.items=o,t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=s.current.get("hour")),t}}),null),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return s.showMinute},get children(){let t=n();return t.addEventListener("change",e=>{let t=s.current.set("minute",e.detail[0]);s.onChange(t)}),t.items=i,t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=s.current.get("minute")),t}}),null),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return s.showSecond},get children(){let t=n();return t.addEventListener("change",e=>{let t=s.current.set("second",e.detail[0]);s.onChange(t)}),t.items=i,t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=s.current.get("second")),t}}),null),(0,e.effect)(()=>null!=l()?u.style.setProperty("max-block-size",l()):u.style.removeProperty("max-block-size")),u})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{default:function(){return s},hours:function(){return o},minutes:function(){return i}});const e=require("solid-js/web"),t=require("solid-js"),n=/*#__PURE__*/(0,e.template)("<n-menu>",!0,!1),r=/*#__PURE__*/(0,e.template)('<section class="time-picker"><section class="time-picker-header"><n-button><strong></strong></n-button></section><section class="time-picker-items">',!0,!1),o=Array.from({length:24},(e,t)=>({label:t<10?`0${t}`:t,value:t})),i=Array.from({length:60},(e,t)=>({label:t<10?`0${t}`:t,value:t})),s=function(s){let[l,u]=(0,t.createSignal)("0px");return(0,t.createEffect)(()=>{u(`${s.datePicker?.offsetHeight}px`)}),(()=>{let u=r(),c=u.firstChild,a=c.firstChild,h=a.firstChild,f=c.nextSibling;return a.ghost=!0,a.flat=!0,a._$owner=(0,e.getOwner)(),(0,e.insert)(h,()=>s.current.format("HH:mm:ss")),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return s.showHour},get children(){let t=n();return t.addEventListener("change",e=>{let t=s.current.set("hour",e.detail[0]);s.onChange(t)}),t.items=o,t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=s.current.get("hour")),t}}),null),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return s.showMinute},get children(){let t=n();return t.addEventListener("change",e=>{let t=s.current.set("minute",e.detail[0]);s.onChange(t)}),t.items=i,t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=s.current.get("minute")),t}}),null),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return s.showSecond},get children(){let t=n();return t.addEventListener("change",e=>{let t=s.current.set("second",e.detail[0]);s.onChange(t)}),t.items=i,t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=s.current.get("second")),t}}),null),(0,e.effect)(()=>null!=l()?u.style.setProperty("max-block-size",l()):u.style.removeProperty("max-block-size")),u})()};
2
2
  //# sourceMappingURL=time.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/date-picker/time.tsx"],"sourcesContent":["import { Show, createEffect, createSignal } from 'solid-js';\nimport dayjs from './dayjs';\n\ntype TimePickerProps = {\n current: dayjs.Dayjs;\n datePicker: HTMLDivElement | undefined;\n onChange(next: dayjs.Dayjs): void;\n showHour?: boolean;\n showMinute?: boolean;\n showSecond?: boolean;\n};\n\nexport const hours = Array.from({ length: 24 }, (_, i) => ({\n label: i < 10 ? `0${i}` : i,\n value: i,\n}));\nexport const minutes = Array.from({ length: 60 }, (_, i) => ({\n label: i < 10 ? `0${i}` : i,\n value: i,\n}));\n\nfunction TimePicker(props: TimePickerProps) {\n const [hei, setHei] = createSignal('0px');\n\n createEffect(() => {\n setHei(`${props.datePicker?.offsetHeight}px`);\n });\n\n return (\n <section class=\"time-picker\" style={{ 'max-block-size': hei() }}>\n <section class=\"time-picker-header\">\n <n-button ghost={true} flat={true}>\n <strong>{props.current.format('HH:mm:ss')}</strong>\n </n-button>\n </section>\n <section class=\"time-picker-items\">\n <Show when={props.showHour}>\n <n-menu\n items={hours}\n value={props.current.get('hour')}\n onChange={(e) => {\n const next = props.current.set('hour', e.detail[0] as number);\n\n props.onChange(next);\n }}\n />\n </Show>\n <Show when={props.showMinute}>\n <n-menu\n items={minutes}\n value={props.current.get('minute')}\n onChange={(e) => {\n const next = props.current.set('minute', e.detail[0] as number);\n\n props.onChange(next);\n }}\n />\n </Show>\n <Show when={props.showSecond}>\n <n-menu\n items={minutes}\n value={props.current.get('second')}\n onChange={(e) => {\n const next = props.current.set('second', e.detail[0] as number);\n\n props.onChange(next);\n }}\n />\n </Show>\n </section>\n </section>\n );\n}\n\nexport default TimePicker;\n"],"names":["hours","minutes","Array","from","length","_","i","label","value","props","hei","setHei","createSignal","createEffect","datePicker","offsetHeight","current","format","Show","showHour","e","next","set","detail","onChange","get","showMinute","showSecond"],"mappings":"+JAYaA,KAAK,mBAALA,GAIAC,OAAO,mBAAPA,GA0Db,OAA0B,mBAA1B,+CA1EiD,wPAYpCD,EAAQE,MAAMC,IAAI,CAAC,CAAEC,OAAQ,EAAG,EAAG,CAACC,EAAGC,IAAO,CAAA,CACzDC,MAAOD,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAGA,EAC1BE,MAAOF,CACT,CAAA,GACaL,EAAUC,MAAMC,IAAI,CAAC,CAAEC,OAAQ,EAAG,EAAG,CAACC,EAAGC,IAAO,CAAA,CAC3DC,MAAOD,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAGA,EAC1BE,MAAOF,CACT,CAAA,GAuDA,EArDA,SAAoBG,CAAsB,EACxC,GAAM,CAACC,EAAKC,EAAO,CAAGC,GAAAA,cAAY,EAAC,OAMnC,MAJAC,GAAAA,cAAY,EAAC,KACXF,EAAO,CAAC,EAAEF,EAAMK,UAAU,EAAEC,aAAa,EAAE,CAAC,CAC9C,+FAKuB,CAAA,SAAY,CAAA,gDAClBN,EAAMO,OAAO,CAACC,MAAM,CAAC,kDAI/BC,MAAI,oBAAOT,EAAMU,QAAQ,8DAIZ,AAACC,IACT,IAAMC,EAAOZ,EAAMO,OAAO,CAACM,GAAG,CAAC,OAAQF,EAAEG,MAAM,CAAC,EAAE,EAElDd,EAAMe,QAAQ,CAACH,EACjB,WANOrB,sDACAS,EAAMO,OAAO,CAACS,GAAG,CAAC,yDAQ5BP,MAAI,oBAAOT,EAAMiB,UAAU,8DAId,AAACN,IACT,IAAMC,EAAOZ,EAAMO,OAAO,CAACM,GAAG,CAAC,SAAUF,EAAEG,MAAM,CAAC,EAAE,EAEpDd,EAAMe,QAAQ,CAACH,EACjB,WANOpB,sDACAQ,EAAMO,OAAO,CAACS,GAAG,CAAC,2DAQ5BP,MAAI,oBAAOT,EAAMkB,UAAU,8DAId,AAACP,IACT,IAAMC,EAAOZ,EAAMO,OAAO,CAACM,GAAG,CAAC,SAAUF,EAAEG,MAAM,CAAC,EAAE,EAEpDd,EAAMe,QAAQ,CAACH,EACjB,WANOpB,sDACAQ,EAAMO,OAAO,CAACS,GAAG,CAAC,6CAhCuBf,yCAAAA,oDA2C5D"}
1
+ {"version":3,"sources":["../../components/date-picker/time.tsx"],"sourcesContent":["import { Show, createEffect, createSignal } from 'solid-js';\nimport dayjs from './dayjs';\n\ntype TimePickerProps = {\n current: dayjs.Dayjs;\n datePicker: HTMLDivElement | undefined;\n onChange(next: dayjs.Dayjs): void;\n showHour?: boolean;\n showMinute?: boolean;\n showSecond?: boolean;\n};\n\nexport const hours = Array.from({ length: 24 }, (_, i) => ({\n label: i < 10 ? `0${i}` : i,\n value: i,\n}));\nexport const minutes = Array.from({ length: 60 }, (_, i) => ({\n label: i < 10 ? `0${i}` : i,\n value: i,\n}));\n\nfunction TimePicker(props: TimePickerProps) {\n const [hei, setHei] = createSignal('0px');\n\n createEffect(() => {\n setHei(`${props.datePicker?.offsetHeight}px`);\n });\n\n return (\n <section class=\"time-picker\" style={{ 'max-block-size': hei() }}>\n <section class=\"time-picker-header\">\n <n-button ghost={true} flat={true}>\n <strong>{props.current.format('HH:mm:ss')}</strong>\n </n-button>\n </section>\n <section class=\"time-picker-items\">\n <Show when={props.showHour}>\n <n-menu\n items={hours}\n value={props.current.get('hour')}\n onChange={(e) => {\n const next = props.current.set('hour', e.detail[0] as number);\n\n props.onChange(next);\n }}\n />\n </Show>\n <Show when={props.showMinute}>\n <n-menu\n items={minutes}\n value={props.current.get('minute')}\n onChange={(e) => {\n const next = props.current.set('minute', e.detail[0] as number);\n\n props.onChange(next);\n }}\n />\n </Show>\n <Show when={props.showSecond}>\n <n-menu\n items={minutes}\n value={props.current.get('second')}\n onChange={(e) => {\n const next = props.current.set('second', e.detail[0] as number);\n\n props.onChange(next);\n }}\n />\n </Show>\n </section>\n </section>\n );\n}\n\nexport default TimePicker;\n"],"names":["hours","minutes","Array","from","length","_","i","label","value","props","hei","setHei","createSignal","createEffect","datePicker","offsetHeight","current","format","Show","showHour","e","next","set","detail","onChange","get","showMinute","showSecond"],"mappings":"+JA0EA,OAA0B,mBAA1B,GA9DaA,KAAK,mBAALA,GAIAC,OAAO,mBAAPA,+CAhBoC,wPAYpCD,EAAQE,MAAMC,IAAI,CAAC,CAAEC,OAAQ,EAAG,EAAG,CAACC,EAAGC,IAAO,CAAA,CACzDC,MAAOD,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAGA,EAC1BE,MAAOF,CACT,CAAA,GACaL,EAAUC,MAAMC,IAAI,CAAC,CAAEC,OAAQ,EAAG,EAAG,CAACC,EAAGC,IAAO,CAAA,CAC3DC,MAAOD,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAGA,EAC1BE,MAAOF,CACT,CAAA,GAuDA,EArDA,SAAoBG,CAAsB,EACxC,GAAM,CAACC,EAAKC,EAAO,CAAGC,GAAAA,cAAY,EAAC,OAMnC,MAJAC,GAAAA,cAAY,EAAC,KACXF,EAAO,CAAC,EAAEF,EAAMK,UAAU,EAAEC,aAAa,EAAE,CAAC,CAC9C,+FAKuB,CAAA,SAAY,CAAA,gDAClBN,EAAMO,OAAO,CAACC,MAAM,CAAC,kDAI/BC,MAAI,oBAAOT,EAAMU,QAAQ,8DAIZ,AAACC,IACT,IAAMC,EAAOZ,EAAMO,OAAO,CAACM,GAAG,CAAC,OAAQF,EAAEG,MAAM,CAAC,EAAE,EAElDd,EAAMe,QAAQ,CAACH,EACjB,WANOrB,sDACAS,EAAMO,OAAO,CAACS,GAAG,CAAC,yDAQ5BP,MAAI,oBAAOT,EAAMiB,UAAU,8DAId,AAACN,IACT,IAAMC,EAAOZ,EAAMO,OAAO,CAACM,GAAG,CAAC,SAAUF,EAAEG,MAAM,CAAC,EAAE,EAEpDd,EAAMe,QAAQ,CAACH,EACjB,WANOpB,sDACAQ,EAAMO,OAAO,CAACS,GAAG,CAAC,2DAQ5BP,MAAI,oBAAOT,EAAMkB,UAAU,8DAId,AAACP,IACT,IAAMC,EAAOZ,EAAMO,OAAO,CAACM,GAAG,CAAC,SAAUF,EAAEG,MAAM,CAAC,EAAE,EAEpDd,EAAMe,QAAQ,CAACH,EACjB,WANOpB,sDACAQ,EAAMO,OAAO,CAACS,GAAG,CAAC,6CAhCuBf,yCAAAA,oDA2C5D"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{defaultProps:function(){return p},default:function(){return v}});const e=require("@swc/helpers/_/_interop_require_default"),t=require("@swc/helpers/_/_interop_require_wildcard"),n=require("solid-js/web"),o=require("solid-js"),r=/*#__PURE__*/e._(require("@moneko/common/lib/isFunction")),i=require("solid-element"),l=/*#__PURE__*/e._(require("../empty"));require("../menu");const a=/*#__PURE__*/t._(require("../popover")),u=/*#__PURE__*/(0,n.template)("<n-menu>",!0,!1),s=/*#__PURE__*/(0,n.template)('<div class="container">');function d(e){let t;let[i,d]=(0,o.splitProps)(e,["popupClass","popupCss","value","defaultValue","onChange","open","onOpenChange","fieldNames","items","multiple","toggle"]),[p,v]=(0,o.createSignal)([]),[c,m]=(0,o.createSignal)(null),[f,g]=(0,o.createSignal)([]);function _(e){(0,r.default)(i.onOpenChange)&&i.onOpenChange(e),void 0===i.open&&m(e)}function h(e){let[t,n]=e.detail;(0,r.default)(i.onChange)&&i.onChange(t,n),void 0===i.value&&v(Array.isArray(t)?t:[t]),i.multiple||_(!1)}function C(e){g(e.detail)}return(0,o.createEffect)(()=>{void 0!==i.value&&null!==i.value?v(Array.isArray(i.value)?i.value:[i.value]):v([])}),(0,o.createEffect)(()=>{void 0!==i.open&&(0,o.untrack)(c)!==i.open&&m(i.open)}),(0,n.createComponent)(a.default,(0,n.mergeProps)({get popupClass(){return i.popupClass},get popupCss(){return i.popupCss},get open(){return c()},onOpenChange:_,get content(){return(()=>{let e=s(),r=t;return"function"==typeof r?(0,n.use)(r,e):t=e,(0,n.insert)(e,(0,n.createComponent)(o.Show,{get when(){return i.items?.length},get fallback(){return(0,n.createComponent)(l.default,{style:{width:"100%"}})},get children(){let e=u();return(0,n.addEventListener)(e,"openchange",C),(0,n.addEventListener)(e,"change",h),e._$owner=(0,n.getOwner)(),(0,n.effect)(t=>{let n=i.items,o=i.defaultValue,r=i.multiple,l=i.fieldNames,a=i.toggle,u=d.disabled,s=f();return n!==t._v$&&(e.items=t._v$=n),o!==t._v$2&&(e.defaultValue=t._v$2=o),r!==t._v$3&&(e.multiple=t._v$3=r),l!==t._v$4&&(e.fieldNames=t._v$4=l),a!==t._v$5&&(e.toggle=t._v$5=a),u!==t._v$6&&(e.disabled=t._v$6=u),s!==t._v$7&&(e.openKeys=t._v$7=s),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0,_v$7:void 0}),(0,n.effect)(()=>e.value=p()),e}})),e})()}},d))}const p={...a.defaultProps,fieldNames:void 0,toggle:void 0,value:void 0,defaultValue:void 0,onChange:void 0,multiple:void 0,disabled:void 0,type:void 0,onOpenChange:void 0,openKeys:void 0};(0,i.customElement)("n-dropdown",{...p,items:[]},(e,t)=>{let n=t.element,r=(0,o.mergeProps)({items:n.items,onChange(e,t){n.dispatchEvent(new CustomEvent("change",{detail:[e,t]}))},onOpenChange(e){n.dispatchEvent(new CustomEvent("openchange",{detail:e}))},children:[...n.childNodes.values()]},e);return(0,o.createEffect)(()=>{n.removeAttribute("items"),n.removeAttribute("field-names"),n.removeAttribute("css")}),(0,o.createComponent)(d,r)});const v=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{default:function(){return v},defaultProps:function(){return p}});const e=require("@swc/helpers/_/_interop_require_default"),t=require("@swc/helpers/_/_interop_require_wildcard"),n=require("solid-js/web"),o=require("solid-js"),r=/*#__PURE__*/e._(require("@moneko/common/lib/isFunction")),i=require("solid-element"),l=/*#__PURE__*/e._(require("../empty"));require("../menu");const a=/*#__PURE__*/t._(require("../popover")),u=/*#__PURE__*/(0,n.template)("<n-menu>",!0,!1),s=/*#__PURE__*/(0,n.template)('<div class="container">');function d(e){let t;let[i,d]=(0,o.splitProps)(e,["popupClass","popupCss","value","defaultValue","onChange","open","onOpenChange","fieldNames","items","multiple","toggle"]),[p,v]=(0,o.createSignal)([]),[c,m]=(0,o.createSignal)(null),[f,g]=(0,o.createSignal)([]);function _(e){(0,r.default)(i.onOpenChange)&&i.onOpenChange(e),void 0===i.open&&m(e)}function h(e){let[t,n]=e.detail;(0,r.default)(i.onChange)&&i.onChange(t,n),void 0===i.value&&v(Array.isArray(t)?t:[t]),i.multiple||_(!1)}function C(e){g(e.detail)}return(0,o.createEffect)(()=>{void 0!==i.value&&null!==i.value?v(Array.isArray(i.value)?i.value:[i.value]):v([])}),(0,o.createEffect)(()=>{void 0!==i.open&&(0,o.untrack)(c)!==i.open&&m(i.open)}),(0,n.createComponent)(a.default,(0,n.mergeProps)({get popupClass(){return i.popupClass},get popupCss(){return i.popupCss},get open(){return c()},onOpenChange:_,get content(){return(()=>{let e=s(),r=t;return"function"==typeof r?(0,n.use)(r,e):t=e,(0,n.insert)(e,(0,n.createComponent)(o.Show,{get when(){return i.items?.length},get fallback(){return(0,n.createComponent)(l.default,{style:{width:"100%"}})},get children(){let e=u();return(0,n.addEventListener)(e,"openchange",C),(0,n.addEventListener)(e,"change",h),e._$owner=(0,n.getOwner)(),(0,n.effect)(t=>{let n=i.items,o=i.defaultValue,r=i.multiple,l=i.fieldNames,a=i.toggle,u=d.disabled,s=f();return n!==t._v$&&(e.items=t._v$=n),o!==t._v$2&&(e.defaultValue=t._v$2=o),r!==t._v$3&&(e.multiple=t._v$3=r),l!==t._v$4&&(e.fieldNames=t._v$4=l),a!==t._v$5&&(e.toggle=t._v$5=a),u!==t._v$6&&(e.disabled=t._v$6=u),s!==t._v$7&&(e.openKeys=t._v$7=s),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0,_v$7:void 0}),(0,n.effect)(()=>e.value=p()),e}})),e})()}},d))}const p={...a.defaultProps,fieldNames:void 0,toggle:void 0,value:void 0,defaultValue:void 0,onChange:void 0,multiple:void 0,disabled:void 0,type:void 0,onOpenChange:void 0,openKeys:void 0};(0,i.customElement)("n-dropdown",{...p,items:[]},(e,t)=>{let n=t.element,r=(0,o.mergeProps)({items:n.items,onChange(e,t){n.dispatchEvent(new CustomEvent("change",{detail:[e,t]}))},onOpenChange(e){n.dispatchEvent(new CustomEvent("openchange",{detail:e}))},children:[...n.childNodes.values()]},e);return(0,o.createEffect)(()=>{n.removeAttribute("items"),n.removeAttribute("field-names"),n.removeAttribute("css")}),(0,o.createComponent)(d,r)});const v=d;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/dropdown/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { customElement } from 'solid-element';\nimport Empty from '../empty';\nimport '../menu';\nimport Popover, { defaultProps as popoverProps } from '../popover';\nimport type { CustomElement, MenuMultipleProps, MenuOption, MenuProps, PopoverProps } from '..';\n\nexport interface BaseDropdownProps extends Omit<PopoverProps, 'content'> {\n /** 打开内容气泡 */\n open?: boolean | null;\n}\nexport interface DropdownProps\n extends Omit<MenuProps, 'openKeys' | 'onOpenChange'>,\n BaseDropdownProps {\n /** 打开内容气泡 */\n open?: boolean | null;\n}\nexport interface DropdownMultipleProps\n extends Omit<MenuMultipleProps, 'openKeys' | 'onOpenChange'>,\n BaseDropdownProps {\n /** 打开内容气泡 */\n open?: boolean | null;\n}\nexport type DropdownElement = CustomElement<DropdownProps>;\nexport type DropdownMultipleElement = CustomElement<DropdownMultipleProps>;\n\nfunction Dropdown(props: DropdownProps | DropdownMultipleProps) {\n const [local, other] = splitProps(props, [\n 'popupClass',\n 'popupCss',\n 'value',\n 'defaultValue',\n 'onChange',\n 'open',\n 'onOpenChange',\n 'fieldNames',\n 'items',\n 'multiple',\n 'toggle',\n ]);\n let portalRef: HTMLDivElement | undefined;\n const [value, setValue] = createSignal<(string | number)[]>([]);\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [menuOpenKeys, setMenuOpenKeys] = createSignal<(string | number)[]>([]);\n\n function openChange(next: boolean | null) {\n if (isFunction(local.onOpenChange)) {\n local.onOpenChange(next);\n }\n if (local.open === void 0) {\n setOpen(next);\n }\n }\n\n function change(\n e: CustomEvent<[val: (string | number)[] | (string | number), item: MenuOption]>,\n ) {\n const [key, item] = e.detail;\n\n if (isFunction(local.onChange)) {\n local.onChange(key, item);\n }\n if (local.value === void 0) {\n setValue(Array.isArray(key) ? key : [key]);\n }\n if (!local.multiple) {\n openChange(false);\n }\n }\n function menuOpenKeysChange(e: CustomEvent<(string | number)[]>) {\n setMenuOpenKeys(e.detail);\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 (local.open !== void 0 && untrack(open) !== local.open) {\n setOpen(local.open);\n }\n });\n\n return (\n <Popover\n popupClass={local.popupClass}\n popupCss={local.popupCss}\n open={open()}\n onOpenChange={openChange}\n content={\n <div ref={portalRef} class=\"container\">\n <Show when={local.items?.length} fallback={<Empty style={{ width: '100%' }} />}>\n <n-menu\n items={local.items}\n default-value={local.defaultValue}\n multiple={local.multiple as true}\n field-names={local.fieldNames}\n toggle={local.toggle}\n disabled={other.disabled}\n value={value()}\n onChange={change}\n open-keys={menuOpenKeys()}\n onOpenChange={menuOpenKeysChange}\n />\n </Show>\n </div>\n }\n {...other}\n />\n );\n}\n\nexport const defaultProps = {\n ...popoverProps,\n fieldNames: void 0,\n toggle: void 0,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n multiple: void 0,\n disabled: void 0,\n type: void 0,\n onOpenChange: void 0,\n openKeys: void 0,\n};\n\ncustomElement<DropdownProps>(\n 'n-dropdown',\n {\n ...defaultProps,\n items: [],\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n items: el.items,\n onChange(key, item) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onOpenChange(open: boolean | null) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n children: [...el.childNodes.values()],\n } as DropdownProps,\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('items');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return createComponent(Dropdown, props);\n },\n);\nexport default Dropdown;\n"],"names":["defaultProps","Dropdown","props","portalRef","local","other","splitProps","value","setValue","createSignal","open","setOpen","menuOpenKeys","setMenuOpenKeys","openChange","next","isFunction","onOpenChange","change","e","key","item","detail","onChange","Array","isArray","multiple","menuOpenKeysChange","createEffect","untrack","Popover","popupClass","popupCss","Show","items","length","Empty","width","defaultValue","fieldNames","toggle","disabled","popoverProps","type","openKeys","customElement","_","opt","el","element","mergeProps","dispatchEvent","CustomEvent","children","childNodes","values","removeAttribute","createComponent"],"mappings":"+JA4HaA,YAAY,mBAAZA,GAoDb,OAAwB,mBAAxB,0JAxKO,uCACoB,4CACG,4CACZ,qBACX,4CAC+C,wHAsBtD,SAASC,EAASC,CAA4C,MAcxDC,EAbJ,GAAM,CAACC,EAAOC,EAAM,CAAGC,GAAAA,YAAU,EAACJ,EAAO,CACvC,aACA,WACA,QACA,eACA,WACA,OACA,eACA,aACA,QACA,WACA,SACD,EAEK,CAACK,EAAOC,EAAS,CAAGC,GAAAA,cAAY,EAAsB,EAAE,EACxD,CAACC,EAAMC,EAAQ,CAAGF,GAAAA,cAAY,EAAiB,MAC/C,CAACG,EAAcC,EAAgB,CAAGJ,GAAAA,cAAY,EAAsB,EAAE,EAE5E,SAASK,EAAWC,CAAoB,EAClCC,GAAAA,SAAU,EAACZ,EAAMa,YAAY,GAC/Bb,EAAMa,YAAY,CAACF,GAEF,KAAK,IAApBX,EAAMM,IAAI,EACZC,EAAQI,EAEZ,CAEA,SAASG,EACPC,CAAgF,EAEhF,GAAM,CAACC,EAAKC,EAAK,CAAGF,EAAEG,MAAM,CAExBN,GAAAA,SAAU,EAACZ,EAAMmB,QAAQ,GAC3BnB,EAAMmB,QAAQ,CAACH,EAAKC,GAEF,KAAK,IAArBjB,EAAMG,KAAK,EACbC,EAASgB,MAAMC,OAAO,CAACL,GAAOA,EAAM,CAACA,EAAI,EAEtChB,EAAMsB,QAAQ,EACjBZ,EAAW,CAAA,EAEf,CACA,SAASa,EAAmBR,CAAmC,EAC7DN,EAAgBM,EAAEG,MAAM,CAC1B,CAeA,MAbAM,GAAAA,cAAY,EAAC,KACPxB,AAAgB,KAAK,IAArBA,EAAMG,KAAK,EAAeH,AAAgB,OAAhBA,EAAMG,KAAK,CACvCC,EAASgB,MAAMC,OAAO,CAACrB,EAAMG,KAAK,EAAIH,EAAMG,KAAK,CAAG,CAACH,EAAMG,KAAK,CAAC,EAEjEC,EAAS,EAAE,CAEf,GACAoB,GAAAA,cAAY,EAAC,KACQ,KAAK,IAApBxB,EAAMM,IAAI,EAAemB,GAAAA,SAAO,EAACnB,KAAUN,EAAMM,IAAI,EACvDC,EAAQP,EAAMM,IAAI,CAEtB,yBAGGoB,SAAO,2CACM1B,EAAM2B,UAAU,wBAClB3B,EAAM4B,QAAQ,oBAClBtB,kBACQI,wCAEFX,4CAAAA,yCACP8B,MAAI,oBAAO7B,EAAM8B,KAAK,EAAEC,mDAAmBC,SAAK,QAAQ,CAAEC,MAAO,MAAO,0EAWvDV,qCAFJT,qDAPHd,EAAM8B,KAAK,GACH9B,EAAMkC,YAAY,GACvBlC,EAAMsB,QAAQ,GACXtB,EAAMmC,UAAU,GACrBnC,EAAMoC,MAAM,GACVnC,EAAMoC,QAAQ,GAGb7B,0WAFJL,mBAQXF,GAGV,CAEO,MAAML,EAAe,CAC1B,GAAG0C,cAAY,CACfH,WAAY,KAAK,EACjBC,OAAQ,KAAK,EACbjC,MAAO,KAAK,EACZ+B,aAAc,KAAK,EACnBf,SAAU,KAAK,EACfG,SAAU,KAAK,EACfe,SAAU,KAAK,EACfE,KAAM,KAAK,EACX1B,aAAc,KAAK,EACnB2B,SAAU,KAAK,CACjB,EAEAC,GAAAA,eAAa,EACX,aACA,CACE,GAAG7C,CAAY,CACfkC,MAAO,EAAE,AACX,EACA,CAACY,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChB/C,EAAQgD,GAAAA,YAAU,EACtB,CACEhB,MAAOc,EAAGd,KAAK,CACfX,SAASH,CAAG,CAAEC,CAAI,EAChB2B,EAAGG,aAAa,CACd,IAAIC,YAAY,SAAU,CACxB9B,OAAQ,CAACF,EAAKC,EAAK,AACrB,GAEJ,EACAJ,aAAaP,CAAoB,EAC/BsC,EAAGG,aAAa,CACd,IAAIC,YAAY,aAAc,CAC5B9B,OAAQZ,CACV,GAEJ,EACA2C,SAAU,IAAIL,EAAGM,UAAU,CAACC,MAAM,GAAG,AACvC,EACAT,GAQF,MALAlB,GAAAA,cAAY,EAAC,KACXoB,EAAGQ,eAAe,CAAC,SACnBR,EAAGQ,eAAe,CAAC,eACnBR,EAAGQ,eAAe,CAAC,MACrB,GACOC,GAAAA,iBAAe,EAACxD,EAAUC,EACnC,SAEF,EAAeD"}
1
+ {"version":3,"sources":["../../components/dropdown/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { customElement } from 'solid-element';\nimport Empty from '../empty';\nimport '../menu';\nimport Popover, { defaultProps as popoverProps } from '../popover';\nimport type { CustomElement, MenuMultipleProps, MenuOption, MenuProps, PopoverProps } from '..';\n\nexport interface BaseDropdownProps extends Omit<PopoverProps, 'content'> {\n /** 打开内容气泡 */\n open?: boolean | null;\n}\nexport interface DropdownProps\n extends Omit<MenuProps, 'openKeys' | 'onOpenChange'>,\n BaseDropdownProps {\n /** 打开内容气泡 */\n open?: boolean | null;\n}\nexport interface DropdownMultipleProps\n extends Omit<MenuMultipleProps, 'openKeys' | 'onOpenChange'>,\n BaseDropdownProps {\n /** 打开内容气泡 */\n open?: boolean | null;\n}\nexport type DropdownElement = CustomElement<DropdownProps>;\nexport type DropdownMultipleElement = CustomElement<DropdownMultipleProps>;\n\nfunction Dropdown(props: DropdownProps | DropdownMultipleProps) {\n const [local, other] = splitProps(props, [\n 'popupClass',\n 'popupCss',\n 'value',\n 'defaultValue',\n 'onChange',\n 'open',\n 'onOpenChange',\n 'fieldNames',\n 'items',\n 'multiple',\n 'toggle',\n ]);\n let portalRef: HTMLDivElement | undefined;\n const [value, setValue] = createSignal<(string | number)[]>([]);\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [menuOpenKeys, setMenuOpenKeys] = createSignal<(string | number)[]>([]);\n\n function openChange(next: boolean | null) {\n if (isFunction(local.onOpenChange)) {\n local.onOpenChange(next);\n }\n if (local.open === void 0) {\n setOpen(next);\n }\n }\n\n function change(\n e: CustomEvent<[val: (string | number)[] | (string | number), item: MenuOption]>,\n ) {\n const [key, item] = e.detail;\n\n if (isFunction(local.onChange)) {\n local.onChange(key, item);\n }\n if (local.value === void 0) {\n setValue(Array.isArray(key) ? key : [key]);\n }\n if (!local.multiple) {\n openChange(false);\n }\n }\n function menuOpenKeysChange(e: CustomEvent<(string | number)[]>) {\n setMenuOpenKeys(e.detail);\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 (local.open !== void 0 && untrack(open) !== local.open) {\n setOpen(local.open);\n }\n });\n\n return (\n <Popover\n popupClass={local.popupClass}\n popupCss={local.popupCss}\n open={open()}\n onOpenChange={openChange}\n content={\n <div ref={portalRef} class=\"container\">\n <Show when={local.items?.length} fallback={<Empty style={{ width: '100%' }} />}>\n <n-menu\n items={local.items}\n default-value={local.defaultValue}\n multiple={local.multiple as true}\n field-names={local.fieldNames}\n toggle={local.toggle}\n disabled={other.disabled}\n value={value()}\n onChange={change}\n open-keys={menuOpenKeys()}\n onOpenChange={menuOpenKeysChange}\n />\n </Show>\n </div>\n }\n {...other}\n />\n );\n}\n\nexport const defaultProps = {\n ...popoverProps,\n fieldNames: void 0,\n toggle: void 0,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n multiple: void 0,\n disabled: void 0,\n type: void 0,\n onOpenChange: void 0,\n openKeys: void 0,\n};\n\ncustomElement<DropdownProps>(\n 'n-dropdown',\n {\n ...defaultProps,\n items: [],\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n items: el.items,\n onChange(key, item) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onOpenChange(open: boolean | null) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n children: [...el.childNodes.values()],\n } as DropdownProps,\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('items');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return createComponent(Dropdown, props);\n },\n);\nexport default Dropdown;\n"],"names":["defaultProps","Dropdown","props","portalRef","local","other","splitProps","value","setValue","createSignal","open","setOpen","menuOpenKeys","setMenuOpenKeys","openChange","next","isFunction","onOpenChange","change","e","key","item","detail","onChange","Array","isArray","multiple","menuOpenKeysChange","createEffect","untrack","Popover","popupClass","popupCss","Show","items","length","Empty","width","defaultValue","fieldNames","toggle","disabled","popoverProps","type","openKeys","customElement","_","opt","el","element","mergeProps","dispatchEvent","CustomEvent","children","childNodes","values","removeAttribute","createComponent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/from-schema/index.ts"],"sourcesContent":["import { type TreeData } from '../tree';\n\nenum Type {\n string = 'string',\n number = 'number',\n integer = 'integer',\n boolean = 'boolean',\n object = 'object',\n array = 'array',\n}\ninterface BaseSchema {\n type?: keyof typeof Type;\n name?: string;\n title?: string;\n items?: never;\n [key: string]: Any;\n}\ninterface ArraySchema extends Omit<BaseSchema, 'type' | 'items'> {\n type: 'array';\n items: Schema;\n properties?: Record<string, Schema>;\n}\n\ninterface ObjectSchema extends Omit<BaseSchema, 'type'> {\n type?: Exclude<keyof typeof Type, 'array'>;\n properties?: Record<string, Schema>;\n}\n\nexport type Schema = ObjectSchema | ArraySchema;\n\nfunction fromSchema(schema: Schema, pid?: string): TreeData<string>[] {\n const treeData: TreeData<string>[] = [];\n const { properties } = schema;\n\n for (const k in properties) {\n if (Object.prototype.hasOwnProperty.call(properties, k)) {\n const name = k as keyof typeof properties;\n const { properties: _properties, items, type = 'string', ...item } = properties[name];\n\n const node: TreeData<string> = {\n ...item,\n name: name,\n type,\n subTitle: type,\n key: `${pid ? `${pid}.` : ''}${name}`,\n };\n\n if (type === 'object') {\n node.children = fromSchema({ properties: _properties }, node.key);\n } else if (type === 'array') {\n node.children = fromSchema(\n {\n properties: {\n items: {\n ...(items as Schema),\n title: 'items',\n },\n },\n },\n node.key,\n );\n }\n treeData.push(node);\n }\n }\n\n return treeData;\n}\n\nexport default fromSchema;\n"],"names":["Type","string","number","integer","boolean","object","array","fromSchema","schema","pid","treeData","properties","k","Object","prototype","hasOwnProperty","call","_properties","items","type","item","node","name","subTitle","key","children","title","push"],"mappings":"iBAEA,EAAKA,uFAmEL,+CAAA,MAnEKA,EAAAA,IAAAA,OACHC,OAAAA,SADGD,EAEHE,OAAAA,SAFGF,EAGHG,QAAAA,UAHGH,EAIHI,QAAAA,UAJGJ,EAKHK,OAAAA,SALGL,EAMHM,MAAAA,cA6DF,EAvCA,SAASC,EAAWC,CAAc,CAAEC,CAAY,EAC9C,IAAMC,EAA+B,EAAE,CACjC,CAAEC,WAAAA,CAAU,CAAE,CAAGH,EAEvB,IAAK,IAAMI,KAAKD,EACd,GAAIE,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,EAAYC,GAAI,CAEvD,GAAM,CAAED,WAAYM,CAAW,CAAEC,MAAAA,CAAK,CAAEC,KAAAA,EAAO,QAAQ,CAAE,GAAGC,EAAM,CAAGT,CAAU,CADlEC,EACwE,CAE/ES,EAAyB,CAC7B,GAAGD,CAAI,CACPE,KALWV,EAMXO,KAAAA,EACAI,SAAUJ,EACVK,IAAK,CAAC,EAAEf,EAAM,CAAC,EAAEA,EAAI,CAAC,CAAC,CAAG,GAAG,EARlBG,EAQyB,CAAC,AACvC,CAEIO,AAAS,CAAA,WAATA,EACFE,EAAKI,QAAQ,CAAGlB,EAAW,CAAEI,WAAYM,CAAY,EAAGI,EAAKG,GAAG,EAC9C,UAATL,GACTE,CAAAA,EAAKI,QAAQ,CAAGlB,EACd,CACEI,WAAY,CACVO,MAAO,CACL,GAAIA,CAAK,CACTQ,MAAO,OACT,CACF,CACF,EACAL,EAAKG,GAAG,CACV,EAEFd,EAASiB,IAAI,CAACN,EAChB,CAGF,OAAOX,CACT"}
1
+ {"version":3,"sources":["../../components/from-schema/index.ts"],"sourcesContent":["import { type TreeData } from '../tree';\n\nenum Type {\n string = 'string',\n number = 'number',\n integer = 'integer',\n boolean = 'boolean',\n object = 'object',\n array = 'array',\n}\ninterface BaseSchema {\n type?: keyof typeof Type;\n name?: string;\n title?: string;\n items?: never;\n [key: string]: Any;\n}\ninterface ArraySchema extends Omit<BaseSchema, 'type' | 'items'> {\n type: 'array';\n items: Schema;\n properties?: Record<string, Schema>;\n}\n\ninterface ObjectSchema extends Omit<BaseSchema, 'type'> {\n type?: Exclude<keyof typeof Type, 'array'>;\n properties?: Record<string, Schema>;\n}\n\nexport type Schema = ObjectSchema | ArraySchema;\n\nfunction fromSchema(schema: Schema, pid?: string): TreeData<string>[] {\n const treeData: TreeData<string>[] = [];\n const { properties } = schema;\n\n for (const k in properties) {\n if (Object.prototype.hasOwnProperty.call(properties, k)) {\n const name = k as keyof typeof properties;\n const { properties: _properties, items, type = 'string', ...item } = properties[name];\n\n const node: TreeData<string> = {\n ...item,\n name: name,\n type,\n subTitle: type,\n key: `${pid ? `${pid}.` : ''}${name}`,\n };\n\n if (type === 'object') {\n node.children = fromSchema({ properties: _properties }, node.key);\n } else if (type === 'array') {\n node.children = fromSchema(\n {\n properties: {\n items: {\n ...(items as Schema),\n title: 'items',\n },\n },\n },\n node.key,\n );\n }\n treeData.push(node);\n }\n }\n\n return treeData;\n}\n\nexport default fromSchema;\n"],"names":["Type","fromSchema","schema","pid","treeData","properties","k","Object","prototype","hasOwnProperty","call","_properties","items","type","item","node","name","subTitle","key","children","title","push"],"mappings":"mBAEKA,uFAmEL,+CAAA,MAnEKA,EAAAA,IAAAA,yHAmEL,EAvCA,SAASC,EAAWC,CAAc,CAAEC,CAAY,EAC9C,IAAMC,EAA+B,EAAE,CACjC,CAAEC,WAAAA,CAAU,CAAE,CAAGH,EAEvB,IAAK,IAAMI,KAAKD,EACd,GAAIE,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,EAAYC,GAAI,CAEvD,GAAM,CAAED,WAAYM,CAAW,CAAEC,MAAAA,CAAK,CAAEC,KAAAA,EAAO,QAAQ,CAAE,GAAGC,EAAM,CAAGT,CAAU,CADlEC,EACwE,CAE/ES,EAAyB,CAC7B,GAAGD,CAAI,CACPE,KALWV,EAMXO,KAAAA,EACAI,SAAUJ,EACVK,IAAK,CAAC,EAAEf,EAAM,CAAC,EAAEA,EAAI,CAAC,CAAC,CAAG,GAAG,EARlBG,EAQyB,CAAC,AACvC,CAEIO,AAAS,CAAA,WAATA,EACFE,EAAKI,QAAQ,CAAGlB,EAAW,CAAEI,WAAYM,CAAY,EAAGI,EAAKG,GAAG,EAC9C,UAATL,GACTE,CAAAA,EAAKI,QAAQ,CAAGlB,EACd,CACEI,WAAY,CACVO,MAAO,CACL,GAAIA,CAAK,CACTQ,MAAO,OACT,CACF,CACF,EACAL,EAAKG,GAAG,CACV,EAEFd,EAASiB,IAAI,CAACN,EAChB,CAGF,OAAOX,CACT"}
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 t.default},AvatarGroup:function(){return u.default},BackTop:function(){return n.default},FieldName:function(){return i.FieldName},Size:function(){return i.Size},Status:function(){return i.Status},Button:function(){return o.default},CaptureScreen:function(){return f.default},Carousel:function(){return a.default},Checkbox:function(){return c.default},Code:function(){return l.default},ColorPalette:function(){return d.default},ColorPicker:function(){return _.default},Cron:function(){return q.default},DatePicker:function(){return p.default},Dropdown:function(){return s.default},Empty:function(){return m.default},fromSchema:function(){return h.default},getOptions:function(){return g.default},HighlightText:function(){return S.default},Img:function(){return b.default},Input:function(){return k.default},InputNumber:function(){return w.default},Md:function(){return C.default},Menu:function(){return v.default},Pagination:function(){return y.default},Popover:function(){return T.default},Radio:function(){return P.default},Segmented:function(){return x.default},Select:function(){return E.default},Skeleton:function(){return M.default},Spin:function(){return O.default},Switch:function(){return j.default},Table:function(){return D.default},Tabs:function(){return I.default},Tag:function(){return N.default},theme:function(){return z.default},generateTheme:function(){return z.generateTheme},toneColor:function(){return z.toneColor},Tree:function(){return A.default},Typography:function(){return B.default},dayjs:function(){return F.default},Provider:function(){return G.default},hot:function(){return H.hot},customElement:function(){return H.customElement},noShadowDOM:function(){return H.noShadowDOM},withSolid:function(){return H.withSolid},getCurrentElement:function(){return H.getCurrentElement}});const e=require("@swc/helpers/_/_interop_require_default"),r=require("@swc/helpers/_/_interop_require_wildcard"),t=/*#__PURE__*/e._(require("./avatar")),u=/*#__PURE__*/e._(require("./avatar/group")),n=/*#__PURE__*/e._(require("./back-top")),i=require("./basic-config"),o=/*#__PURE__*/e._(require("./button")),f=/*#__PURE__*/e._(require("./capture-screen")),a=/*#__PURE__*/e._(require("./carousel")),c=/*#__PURE__*/e._(require("./checkbox")),l=/*#__PURE__*/e._(require("./code")),d=/*#__PURE__*/e._(require("./color-palette")),_=/*#__PURE__*/e._(require("./color-picker")),q=/*#__PURE__*/e._(require("./cron")),p=/*#__PURE__*/e._(require("./date-picker")),s=/*#__PURE__*/e._(require("./dropdown")),m=/*#__PURE__*/e._(require("./empty")),h=/*#__PURE__*/e._(require("./from-schema")),g=/*#__PURE__*/e._(require("./get-options")),S=/*#__PURE__*/e._(require("./highlight-text")),b=/*#__PURE__*/e._(require("./img")),k=/*#__PURE__*/e._(require("./input")),w=/*#__PURE__*/e._(require("./input-number")),C=/*#__PURE__*/e._(require("./md")),v=/*#__PURE__*/e._(require("./menu")),y=/*#__PURE__*/e._(require("./pagination")),T=/*#__PURE__*/e._(require("./popover")),P=/*#__PURE__*/e._(require("./radio")),x=/*#__PURE__*/e._(require("./segmented")),E=/*#__PURE__*/e._(require("./select")),M=/*#__PURE__*/e._(require("./skeleton")),O=/*#__PURE__*/e._(require("./spin")),j=/*#__PURE__*/e._(require("./switch")),D=/*#__PURE__*/e._(require("./table")),I=/*#__PURE__*/e._(require("./tabs")),N=/*#__PURE__*/e._(require("./tag")),z=/*#__PURE__*/r._(require("./theme")),A=/*#__PURE__*/e._(require("./tree")),B=/*#__PURE__*/e._(require("./typography")),F=/*#__PURE__*/e._(require("./date-picker/dayjs")),G=/*#__PURE__*/e._(require("./provider")),H=require("solid-element");
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 t.default},AvatarGroup:function(){return u.default},BackTop:function(){return n.default},Button:function(){return o.default},CaptureScreen:function(){return f.default},Carousel:function(){return a.default},Checkbox:function(){return c.default},Code:function(){return l.default},ColorPalette:function(){return d.default},ColorPicker:function(){return _.default},Cron:function(){return q.default},DatePicker:function(){return p.default},Dropdown:function(){return s.default},Empty:function(){return m.default},FieldName:function(){return i.FieldName},HighlightText:function(){return S.default},Img:function(){return b.default},Input:function(){return k.default},InputNumber:function(){return w.default},Md:function(){return C.default},Menu:function(){return v.default},Pagination:function(){return y.default},Popover:function(){return T.default},Provider:function(){return G.default},Radio:function(){return P.default},Segmented:function(){return x.default},Select:function(){return E.default},Size:function(){return i.Size},Skeleton:function(){return M.default},Spin:function(){return O.default},Status:function(){return i.Status},Switch:function(){return j.default},Table:function(){return D.default},Tabs:function(){return I.default},Tag:function(){return N.default},Tree:function(){return A.default},Typography:function(){return B.default},customElement:function(){return H.customElement},dayjs:function(){return F.default},fromSchema:function(){return h.default},generateTheme:function(){return z.generateTheme},getCurrentElement:function(){return H.getCurrentElement},getOptions:function(){return g.default},hot:function(){return H.hot},noShadowDOM:function(){return H.noShadowDOM},theme:function(){return z.default},toneColor:function(){return z.toneColor},withSolid:function(){return H.withSolid}});const e=require("@swc/helpers/_/_interop_require_default"),r=require("@swc/helpers/_/_interop_require_wildcard"),t=/*#__PURE__*/e._(require("./avatar")),u=/*#__PURE__*/e._(require("./avatar/group")),n=/*#__PURE__*/e._(require("./back-top")),i=require("./basic-config"),o=/*#__PURE__*/e._(require("./button")),f=/*#__PURE__*/e._(require("./capture-screen")),a=/*#__PURE__*/e._(require("./carousel")),c=/*#__PURE__*/e._(require("./checkbox")),l=/*#__PURE__*/e._(require("./code")),d=/*#__PURE__*/e._(require("./color-palette")),_=/*#__PURE__*/e._(require("./color-picker")),q=/*#__PURE__*/e._(require("./cron")),p=/*#__PURE__*/e._(require("./date-picker")),s=/*#__PURE__*/e._(require("./dropdown")),m=/*#__PURE__*/e._(require("./empty")),h=/*#__PURE__*/e._(require("./from-schema")),g=/*#__PURE__*/e._(require("./get-options")),S=/*#__PURE__*/e._(require("./highlight-text")),b=/*#__PURE__*/e._(require("./img")),k=/*#__PURE__*/e._(require("./input")),w=/*#__PURE__*/e._(require("./input-number")),C=/*#__PURE__*/e._(require("./md")),v=/*#__PURE__*/e._(require("./menu")),y=/*#__PURE__*/e._(require("./pagination")),T=/*#__PURE__*/e._(require("./popover")),P=/*#__PURE__*/e._(require("./radio")),x=/*#__PURE__*/e._(require("./segmented")),E=/*#__PURE__*/e._(require("./select")),M=/*#__PURE__*/e._(require("./skeleton")),O=/*#__PURE__*/e._(require("./spin")),j=/*#__PURE__*/e._(require("./switch")),D=/*#__PURE__*/e._(require("./table")),I=/*#__PURE__*/e._(require("./tabs")),N=/*#__PURE__*/e._(require("./tag")),z=/*#__PURE__*/r._(require("./theme")),A=/*#__PURE__*/e._(require("./tree")),B=/*#__PURE__*/e._(require("./typography")),F=/*#__PURE__*/e._(require("./date-picker/dayjs")),G=/*#__PURE__*/e._(require("./provider")),H=require("solid-element");
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 {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\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 { Transform } 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 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 '.';\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}\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","FieldName","Size","Status","Button","CaptureScreen","Carousel","Checkbox","Code","ColorPalette","ColorPicker","Cron","DatePicker","Dropdown","Empty","fromSchema","getOptions","HighlightText","Img","Input","InputNumber","Md","Menu","Pagination","Popover","Radio","Segmented","Select","Skeleton","Spin","Switch","Table","Tabs","Tag","theme","generateTheme","toneColor","Tree","Typography","dayjs","Provider","hot","customElement","noShadowDOM","withSolid","getCurrentElement"],"mappings":"+JAAoBA,MAAM,mBAANA,SAAM,EAEbC,WAAW,mBAAXA,SAAW,EAIJC,OAAO,mBAAPA,SAAO,EACiBC,SAAS,mBAATA,WAAS,EAAEC,IAAI,mBAAJA,MAAI,EAAEC,MAAM,mBAANA,QAAM,EAC/CC,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,EACLC,UAAU,mBAAVA,SAAU,EACVC,UAAU,mBAAVA,SAAU,EAEjBC,aAAa,mBAAbA,SAAa,EAINC,GAAG,mBAAHA,SAAG,EACHC,KAAK,mBAALA,SAAK,EAEZC,WAAW,mBAAXA,SAAW,EAIJC,EAAE,mBAAFA,SAAE,EAETC,IAAI,mBAAJA,SAAI,EAOGC,UAAU,mBAAVA,SAAU,EACVC,OAAO,mBAAPA,SAAO,EACPC,KAAK,mBAALA,SAAK,EACLC,SAAS,mBAATA,SAAS,EAEhBC,MAAM,mBAANA,SAAM,EAMCC,QAAQ,mBAARA,SAAQ,EACRC,IAAI,mBAAJA,SAAI,EACJC,MAAM,mBAANA,SAAM,EACNC,KAAK,mBAALA,SAAK,EACLC,IAAI,mBAAJA,SAAI,EACJC,GAAG,mBAAHA,SAAG,EAEVC,KAAK,mBAALA,SAAK,EAGhBC,aAAa,mBAAbA,eAAa,EACbC,SAAS,mBAATA,WAAS,EAGEC,IAAI,mBAAJA,SAAI,EAcGC,UAAU,mBAAVA,SAAU,EACVC,KAAK,mBAALA,SAAK,EACLC,QAAQ,mBAARA,SAAQ,EACnBC,GAAG,mBAAHA,KAAG,EAAEC,aAAa,mBAAbA,eAAa,EAAEC,WAAW,mBAAXA,aAAW,EAAEC,SAAS,mBAATA,WAAS,EAAEC,iBAAiB,mBAAjBA,mBAAiB,gJA5GE,wCAKjE,8CACoE,yBACA,6CACH,wCAKjE,gDACuE,0CAOvE,0CAC2D,sCAK3D,+CAKA,8CAC2D,sCACkB,6CAO7E,0CAC8D,uCAC/B,6CACA,6CAK/B,gDACwD,qCACM,uCAK9D,8CACqD,oCAQrD,sCAC6E,4CACT,yCACY,uCACN,2CAO1E,wCACuE,0CACZ,sCACM,wCACH,uCACa,sCACnB,qCAOxD,uCAeA,sCAC6E,4CACnD,mDAC6C,yBACA"}
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 {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\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 { Transform } 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 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 '.';\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}\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","Pagination","Popover","Provider","Radio","Segmented","Select","Size","Skeleton","Spin","Status","Switch","Table","Tabs","Tag","Tree","Typography","customElement","dayjs","fromSchema","generateTheme","getCurrentElement","getOptions","hot","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,EAETC,IAAI,mBAAJA,SAAI,EAOGC,UAAU,mBAAVA,SAAU,EACVC,OAAO,mBAAPA,SAAO,EAwCPC,QAAQ,mBAARA,SAAQ,EAvCRC,KAAK,mBAALA,SAAK,EACLC,SAAS,mBAATA,SAAS,EAEhBC,MAAM,mBAANA,SAAM,EAhEoCC,IAAI,mBAAJA,MAAI,EAsEvCC,QAAQ,mBAARA,SAAQ,EACRC,IAAI,mBAAJA,SAAI,EAvEqCC,MAAM,mBAANA,QAAM,EAwE/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,EA/DLC,UAAU,mBAAVA,SAAU,EA4C5BC,aAAa,mBAAbA,eAAa,EAqBsCC,iBAAiB,mBAAjBA,mBAAiB,EAhElDC,UAAU,mBAAVA,SAAU,EAgErBC,GAAG,mBAAHA,KAAG,EAAiBC,WAAW,mBAAXA,aAAW,EAxB3BC,KAAK,mBAALA,SAAK,EAIhBC,SAAS,mBAATA,WAAS,EAoB+BC,SAAS,mBAATA,WAAS,gJA5GqB,wCAKjE,8CACoE,yBACA,6CACH,wCAKjE,gDACuE,0CAOvE,0CAC2D,sCAK3D,+CAKA,8CAC2D,sCACkB,6CAO7E,0CAC8D,uCAC/B,6CACA,6CAK/B,gDACwD,qCACM,uCAK9D,8CACqD,oCAQrD,sCAC6E,4CACT,yCACY,uCACN,2CAO1E,wCACuE,0CACZ,sCACM,wCACH,uCACa,sCACnB,qCAOxD,uCAeA,sCAC6E,4CACnD,mDAC6C,yBACA"}
@@ -8,6 +8,10 @@ export interface InputProps {
8
8
  prefixIcon?: JSX.Element;
9
9
  /** 后缀 */
10
10
  suffixIcon?: JSX.Element;
11
+ /** 大写锁定图标, 可以结合密码输入框使用
12
+ * @since 2.5.2
13
+ */
14
+ capsLockIcon?: JSX.Element;
11
15
  /** 禁用 */
12
16
  disabled?: boolean;
13
17
  /** 自动完成 */
@@ -26,7 +30,7 @@ export interface InputProps {
26
30
  * @default 'text'
27
31
  */
28
32
  type?: 'email' | 'hidden' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';
29
- /** HTML input accep */
33
+ /** HTML attribute: accept */
30
34
  accept?: string;
31
35
  /** 值 */
32
36
  value?: string | number;
@@ -51,6 +55,7 @@ export declare const defaultInportProps: {
51
55
  css: undefined;
52
56
  suffixIcon: undefined;
53
57
  prefixIcon: undefined;
58
+ capsLockIcon: undefined;
54
59
  size: undefined;
55
60
  disabled: undefined;
56
61
  status: undefined;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{defaultInportProps:function(){return f},default:function(){return m}});const e=require("@swc/helpers/_/_interop_require_default"),t=require("solid-js/web"),n=require("solid-js"),r=/*#__PURE__*/e._(require("@moneko/common/lib/isFunction")),o=require("@moneko/css"),i=require("solid-element"),l=require("./style"),s=/*#__PURE__*/e._(require("../theme")),a=/*#__PURE__*/(0,t.template)("<style>"),u=/*#__PURE__*/(0,t.template)('<span class="prefix">'),d=/*#__PURE__*/(0,t.template)('<label class="label">'),c=/*#__PURE__*/(0,t.template)('<span class="suffix">'),v=/*#__PURE__*/(0,t.template)('<fieldset><input class="input" part="input">');function p(e){let i;let{baseStyle:p}=s.default,[f,m]=(0,n.createSignal)();function _(t){e.onChange?.(function(t){if(e.parser)return(0,r.default)(e.parser)?e.parser(t):e.parser;if("number"===e.type&&"string"==typeof t){let e=t.replace(/[^\d]/g,"");return e.length?parseFloat(e):void 0}return t}(t.target?.value))}function h(t){e.onMouseDown?.(t)}function b(t){e.onKeyDown?.(t)}function y(t){e.onBlur?.(t)}function g(t){e.onKeyUp?.(t)}let $=(0,n.createMemo)(()=>e.formatter?(0,r.default)(e.formatter)?e.formatter(e.value):e.formatter:e.value);return(0,n.createEffect)(()=>{e.label&&m(`.label {--x: ${i?.offsetLeft||0}px;opacity:1;}`)}),[(()=>{let n=a();return(0,t.insert)(n,p,null),(0,t.insert)(n,l.style,null),(0,t.insert)(n,f,null),(0,t.insert)(n,()=>(0,o.css)(e.css),null),n})(),(()=>{let r=v(),l=r.firstChild,s=i;return(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.prefixIcon},get children(){let n=u();return(0,t.insert)(n,()=>e.prefixIcon),n}}),l),(0,t.addEventListener)(l,"blur",y),(0,t.addEventListener)(l,"keyup",g,!0),(0,t.addEventListener)(l,"keydown",b,!0),(0,t.addEventListener)(l,"mousedown",h,!0),(0,t.addEventListener)(l,"change",_),"function"==typeof s?(0,t.use)(s,l):i=l,(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.label},get children(){let n=d();return(0,t.insert)(n,()=>e.label),n}}),null),(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.suffixIcon},get children(){let n=c();return(0,t.insert)(n,()=>e.suffixIcon),n}}),null),(0,t.effect)(n=>{let i=(0,o.cx)("fieldset",e.size,e.status,e.class),s=e.disabled,a=e.type,u=e.autoComplete,d=e.accept,c=e.placeholder;return i!==n._v$&&(0,t.className)(r,n._v$=i),s!==n._v$2&&(r.disabled=n._v$2=s),a!==n._v$3&&(0,t.setAttribute)(l,"type",n._v$3=a),u!==n._v$4&&(0,t.setAttribute)(l,"autocomplete",n._v$4=u),d!==n._v$5&&(0,t.setAttribute)(l,"accept",n._v$5=d),c!==n._v$6&&(0,t.setAttribute)(l,"placeholder",n._v$6=c),n},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0}),(0,t.effect)(()=>l.value=$()),r})()]}const f={class:void 0,css:void 0,suffixIcon:void 0,prefixIcon:void 0,size:void 0,disabled:void 0,status:void 0,type:void 0,label:void 0,value:void 0,defaultValue:void 0,formatter:void 0,parser:void 0,onChange:void 0,onMouseDown:void 0,onKeyDown:void 0,accept:void 0,autoComplete:void 0,placeholder:"请输入"};(0,i.customElement)("n-input",f,(e,t)=>{let r=t.element,o=(0,n.mergeProps)({css:r.css,size:r.size||"normal",value:r.value||r.defaultValue||"",type:r.type||"text",onChange(e){r.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return(0,n.createComponent)(p,o)});const m=p;(0,t.delegateEvents)(["keydown","keyup","mousedown"]);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{default:function(){return _},defaultInportProps:function(){return m}});const e=require("@swc/helpers/_/_interop_require_default"),t=require("solid-js/web"),n=require("solid-js"),r=/*#__PURE__*/e._(require("@moneko/common/lib/isFunction")),o=require("@moneko/css"),i=require("solid-element"),l=require("./style"),s=/*#__PURE__*/e._(require("../theme")),a=/*#__PURE__*/(0,t.template)("<style>"),u=/*#__PURE__*/(0,t.template)('<span class="prefix">'),c=/*#__PURE__*/(0,t.template)('<label class="label">'),d=/*#__PURE__*/(0,t.template)('<span class="caps-lock">'),p=/*#__PURE__*/(0,t.template)('<span class="suffix">'),v=/*#__PURE__*/(0,t.template)('<fieldset><input class="input" part="input">');function f(e){let i;let{baseStyle:f}=s.default,[m,_]=(0,n.createSignal)(),[h,g]=(0,n.createSignal)(!1);function b(t){e.onChange?.(function(t){if(e.parser)return(0,r.default)(e.parser)?e.parser(t):e.parser;if("number"===e.type&&"string"==typeof t){let e=t.replace(/[^\d]/g,"");return e.length?parseFloat(e):void 0}return t}(t.target?.value))}function y(t){e.onMouseDown?.(t)}function w(t){e.capsLockIcon&&g(t.getModifierState("CapsLock")),e.onKeyDown?.(t)}function $(t){e.onBlur?.(t)}function x(t){e.onKeyUp?.(t)}let C=(0,n.createMemo)(()=>e.formatter?(0,r.default)(e.formatter)?e.formatter(e.value):e.formatter:e.value);return(0,n.createEffect)(()=>{e.label&&_(`.label {--x: ${i?.offsetLeft||0}px;opacity:1;}`)}),[(()=>{let n=a();return(0,t.insert)(n,f,null),(0,t.insert)(n,l.style,null),(0,t.insert)(n,m,null),(0,t.insert)(n,()=>(0,o.css)(e.css),null),n})(),(()=>{let r=v(),l=r.firstChild,s=i;return(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.prefixIcon},get children(){let n=u();return(0,t.insert)(n,()=>e.prefixIcon),n}}),l),(0,t.addEventListener)(l,"blur",$),(0,t.addEventListener)(l,"keyup",x,!0),(0,t.addEventListener)(l,"keydown",w,!0),(0,t.addEventListener)(l,"mousedown",y,!0),(0,t.addEventListener)(l,"change",b),"function"==typeof s?(0,t.use)(s,l):i=l,(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.label},get children(){let n=c();return(0,t.insert)(n,()=>e.label),n}}),null),(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return(0,t.memo)(()=>!!e.capsLockIcon)()&&h()},get children(){let n=d();return(0,t.insert)(n,()=>e.capsLockIcon),n}}),null),(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.suffixIcon},get children(){let n=p();return(0,t.insert)(n,()=>e.suffixIcon),n}}),null),(0,t.effect)(n=>{let i=(0,o.cx)("fieldset",e.size,e.status,e.class),s=e.disabled,a=e.type,u=e.autoComplete,c=e.accept,d=e.placeholder;return i!==n._v$&&(0,t.className)(r,n._v$=i),s!==n._v$2&&(r.disabled=n._v$2=s),a!==n._v$3&&(0,t.setAttribute)(l,"type",n._v$3=a),u!==n._v$4&&(0,t.setAttribute)(l,"autocomplete",n._v$4=u),c!==n._v$5&&(0,t.setAttribute)(l,"accept",n._v$5=c),d!==n._v$6&&(0,t.setAttribute)(l,"placeholder",n._v$6=d),n},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0}),(0,t.effect)(()=>l.value=C()),r})()]}const m={class:void 0,css:void 0,suffixIcon:void 0,prefixIcon:void 0,capsLockIcon:void 0,size:void 0,disabled:void 0,status:void 0,type:void 0,label:void 0,value:void 0,defaultValue:void 0,formatter:void 0,parser:void 0,onChange:void 0,onMouseDown:void 0,onKeyDown:void 0,accept:void 0,autoComplete:void 0,placeholder:"请输入"};(0,i.customElement)("n-input",m,(e,t)=>{let r=t.element,o=(0,n.mergeProps)({css:r.css,size:r.size||"normal",value:r.value||r.defaultValue||"",type:r.type||"text",onChange(e){r.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return(0,n.createComponent)(f,o)});const _=f;(0,t.delegateEvents)(["keydown","keyup","mousedown"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/input/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\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 theme from '../theme';\nimport type { BasicConfig, CustomElement } from '..';\n\nexport interface InputProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 前缀 */\n prefixIcon?: JSX.Element;\n /** 后缀 */\n suffixIcon?: JSX.Element;\n /** 禁用 */\n disabled?: boolean;\n /** 自动完成 */\n autoComplete?: string;\n /** 占位文本 */\n placeholder?: string;\n /** 组件尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 描述 */\n label?: JSX.Element;\n /** 状态 */\n status?: 'error' | 'warning' | 'success';\n /** 类型\n * @default 'text'\n */\n type?: 'email' | 'hidden' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';\n /** HTML input accep */\n accept?: string;\n /** 值 */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 值变更时触发的函数 */\n onChange?: (value: InputProps['value']) => void;\n onKeyDown?(e: KeyboardEvent): void;\n onMouseDown?(e: MouseEvent): void;\n onFocus?(e: FocusEvent): void;\n onBlur?(e: FocusEvent): void;\n onKeyUp?(e: KeyboardEvent): void;\n /** 指定输入框展示值的格式 */\n formatter?: (value?: InputProps['value']) => InputProps['value'];\n /** 搭配 formatter 使用, 将转换后的值转回原来的值 */\n parser?: (value?: InputProps['value']) => InputProps['value'];\n}\n\nfunction Input(props: InputProps) {\n const { baseStyle } = theme;\n let inputRef: HTMLInputElement | undefined;\n const [x, setX] = createSignal<string>();\n\n function parserValue(val: InputProps['value']) {\n if (props.parser) {\n return isFunction(props.parser) ? props.parser(val) : props.parser;\n } else if (props.type === 'number' && typeof val === 'string') {\n const num = val.replace(/[^\\d]/g, '');\n\n return num.length ? parseFloat(num) : void 0;\n }\n return val;\n }\n\n function handleInput(e: Event & { target: HTMLInputElement }) {\n props.onChange?.(parserValue(e.target?.value));\n }\n function handleMouseDown(e: MouseEvent) {\n props.onMouseDown?.(e);\n }\n function handleKeyDown(e: KeyboardEvent) {\n props.onKeyDown?.(e);\n }\n function handleBlur(e: FocusEvent) {\n props.onBlur?.(e);\n }\n function handleKeyUp(e: KeyboardEvent) {\n props.onKeyUp?.(e);\n }\n\n const value = createMemo(() => {\n if (props.formatter) {\n return isFunction(props.formatter) ? props.formatter(props.value) : props.formatter;\n }\n return props.value;\n });\n\n createEffect(() => {\n if (props.label) {\n setX(`.label {--x: ${inputRef?.offsetLeft || 0}px;opacity:1;}`);\n }\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {x()}\n {css(props.css)}\n </style>\n <fieldset\n class={cx('fieldset', props.size, props.status, props.class)}\n disabled={props.disabled}\n >\n <Show when={props.prefixIcon}>\n <span class=\"prefix\">{props.prefixIcon}</span>\n </Show>\n <input\n ref={inputRef}\n class=\"input\"\n part=\"input\"\n onChange={handleInput}\n type={props.type}\n value={value()}\n autocomplete={props.autoComplete}\n accept={props.accept}\n placeholder={props.placeholder}\n onMouseDown={handleMouseDown}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onBlur={handleBlur}\n />\n <Show when={props.label}>\n <label class=\"label\">{props.label}</label>\n </Show>\n <Show when={props.suffixIcon}>\n <span class=\"suffix\">{props.suffixIcon}</span>\n </Show>\n </fieldset>\n </>\n );\n}\n\nexport type InputElement = CustomElement<InputProps>;\n\nexport const defaultInportProps = {\n class: void 0,\n css: void 0,\n suffixIcon: void 0,\n prefixIcon: void 0,\n size: void 0,\n disabled: void 0,\n status: void 0,\n type: void 0,\n label: void 0,\n value: void 0,\n defaultValue: void 0,\n formatter: void 0,\n parser: void 0,\n onChange: void 0,\n onMouseDown: void 0,\n onKeyDown: void 0,\n accept: void 0,\n autoComplete: void 0,\n placeholder: '请输入',\n};\n\ncustomElement<InputProps>('n-input', defaultInportProps, (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n size: el.size || 'normal',\n value: el.value || el.defaultValue || '',\n type: el.type || 'text',\n onChange(val?: number | string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(Input, props);\n});\n\nexport default Input;\n"],"names":["defaultInportProps","Input","props","inputRef","baseStyle","theme","x","setX","createSignal","handleInput","e","onChange","parserValue","val","parser","isFunction","type","num","replace","length","parseFloat","target","value","handleMouseDown","onMouseDown","handleKeyDown","onKeyDown","handleBlur","onBlur","handleKeyUp","onKeyUp","createMemo","formatter","createEffect","label","offsetLeft","style","css","Show","prefixIcon","suffixIcon","cx","size","status","class","disabled","autoComplete","accept","placeholder","defaultValue","customElement","_","opt","el","element","mergeProps","dispatchEvent","CustomEvent","detail","createComponent"],"mappings":"+JAqJaA,kBAAkB,mBAAlBA,GA4Cb,OAAqB,mBAArB,oGA1LO,uCACoB,4CACH,yBACM,2BACR,sCACJ,ySAiDlB,SAASC,EAAMC,CAAiB,MAE1BC,EADJ,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,SAAK,CAErB,CAACC,EAAGC,EAAK,CAAGC,GAAAA,cAAY,IAa9B,SAASC,EAAYC,CAAuC,EAC1DR,EAAMS,QAAQ,GAAGC,AAZnB,SAAqBC,CAAwB,EAC3C,GAAIX,EAAMY,MAAM,CACd,MAAOC,GAAAA,SAAU,EAACb,EAAMY,MAAM,EAAIZ,EAAMY,MAAM,CAACD,GAAOX,EAAMY,MAAM,CAC7D,GAAIZ,AAAe,WAAfA,EAAMc,IAAI,EAAiB,AAAe,UAAf,OAAOH,EAAkB,CAC7D,IAAMI,EAAMJ,EAAIK,OAAO,CAAC,SAAU,IAElC,OAAOD,EAAIE,MAAM,CAAGC,WAAWH,GAAO,KAAK,CAC7C,CACA,OAAOJ,CACT,EAG+BH,EAAEW,MAAM,EAAEC,OACzC,CACA,SAASC,EAAgBb,CAAa,EACpCR,EAAMsB,WAAW,GAAGd,EACtB,CACA,SAASe,EAAcf,CAAgB,EACrCR,EAAMwB,SAAS,GAAGhB,EACpB,CACA,SAASiB,EAAWjB,CAAa,EAC/BR,EAAM0B,MAAM,GAAGlB,EACjB,CACA,SAASmB,EAAYnB,CAAgB,EACnCR,EAAM4B,OAAO,GAAGpB,EAClB,CAEA,IAAMY,EAAQS,GAAAA,YAAU,EAAC,IACvB,AAAI7B,EAAM8B,SAAS,CACVjB,GAAAA,SAAU,EAACb,EAAM8B,SAAS,EAAI9B,EAAM8B,SAAS,CAAC9B,EAAMoB,KAAK,EAAIpB,EAAM8B,SAAS,CAE9E9B,EAAMoB,KAAK,EASpB,MANAW,GAAAA,cAAY,EAAC,KACP/B,EAAMgC,KAAK,EACb3B,EAAK,CAAC,aAAa,EAAEJ,GAAUgC,YAAc,EAAE,cAAc,CAAC,CAElE,yCAKO/B,uBACAgC,OAAK,sBACL9B,2BACA+B,GAAAA,KAAG,EAACnC,EAAMmC,GAAG,+CAUPlC,6CAJNmC,MAAI,oBAAOpC,EAAMqC,UAAU,oDACJrC,EAAMqC,UAAU,0CAe9BZ,oCADCE,yCADEJ,2CADEF,wCANHd,uCAHLN,yCAcNmC,MAAI,oBAAOpC,EAAMgC,KAAK,oDACChC,EAAMgC,KAAK,kDAElCI,MAAI,oBAAOpC,EAAMsC,UAAU,oDACJtC,EAAMsC,UAAU,oCAzBjCC,GAAAA,IAAE,EAAC,WAAYvC,EAAMwC,IAAI,CAAExC,EAAMyC,MAAM,CAAEzC,EAAM0C,KAAK,IACjD1C,EAAM2C,QAAQ,GAUhB3C,EAAMc,IAAI,GAEFd,EAAM4C,YAAY,GACxB5C,EAAM6C,MAAM,GACP7C,EAAM8C,WAAW,+YAHvB1B,WAkBjB,CAIO,MAAMtB,EAAqB,CAChC4C,MAAO,KAAK,EACZP,IAAK,KAAK,EACVG,WAAY,KAAK,EACjBD,WAAY,KAAK,EACjBG,KAAM,KAAK,EACXG,SAAU,KAAK,EACfF,OAAQ,KAAK,EACb3B,KAAM,KAAK,EACXkB,MAAO,KAAK,EACZZ,MAAO,KAAK,EACZ2B,aAAc,KAAK,EACnBjB,UAAW,KAAK,EAChBlB,OAAQ,KAAK,EACbH,SAAU,KAAK,EACfa,YAAa,KAAK,EAClBE,UAAW,KAAK,EAChBqB,OAAQ,KAAK,EACbD,aAAc,KAAK,EACnBE,YAAa,KACf,EAEAE,GAAAA,eAAa,EAAa,UAAWlD,EAAoB,CAACmD,EAAGC,KAC3D,IAAMC,EAAKD,EAAIE,OAAO,CAChBpD,EAAQqD,GAAAA,YAAU,EACtB,CACElB,IAAKgB,EAAGhB,GAAG,CACXK,KAAMW,EAAGX,IAAI,EAAI,SACjBpB,MAAO+B,EAAG/B,KAAK,EAAI+B,EAAGJ,YAAY,EAAI,GACtCjC,KAAMqC,EAAGrC,IAAI,EAAI,OACjBL,SAASE,CAAqB,EAC5BwC,EAAGG,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQ7C,CACV,GAEJ,CACF,EACAsC,GAGF,MAAOQ,GAAAA,iBAAe,EAAC1D,EAAOC,EAChC,SAEA,EAAeD"}
1
+ {"version":3,"sources":["../../components/input/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\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 theme from '../theme';\nimport type { BasicConfig, CustomElement } from '..';\n\nexport interface InputProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 前缀 */\n prefixIcon?: JSX.Element;\n /** 后缀 */\n suffixIcon?: JSX.Element;\n /** 大写锁定图标, 可以结合密码输入框使用\n * @since 2.5.2\n */\n capsLockIcon?: JSX.Element;\n /** 禁用 */\n disabled?: boolean;\n /** 自动完成 */\n autoComplete?: string;\n /** 占位文本 */\n placeholder?: string;\n /** 组件尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 描述 */\n label?: JSX.Element;\n /** 状态 */\n status?: 'error' | 'warning' | 'success';\n /** 类型\n * @default 'text'\n */\n type?: 'email' | 'hidden' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';\n /** HTML attribute: accept */\n accept?: string;\n /** 值 */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 值变更时触发的函数 */\n onChange?: (value: InputProps['value']) => void;\n onKeyDown?(e: KeyboardEvent): void;\n onMouseDown?(e: MouseEvent): void;\n onFocus?(e: FocusEvent): void;\n onBlur?(e: FocusEvent): void;\n onKeyUp?(e: KeyboardEvent): void;\n /** 指定输入框展示值的格式 */\n formatter?: (value?: InputProps['value']) => InputProps['value'];\n /** 搭配 formatter 使用, 将转换后的值转回原来的值 */\n parser?: (value?: InputProps['value']) => InputProps['value'];\n}\n\nfunction Input(props: InputProps) {\n const { baseStyle } = theme;\n let inputRef: HTMLInputElement | undefined;\n const [x, setX] = createSignal<string>();\n const [capsLock, setCapsLock] = createSignal(false);\n\n function parserValue(val: InputProps['value']) {\n if (props.parser) {\n return isFunction(props.parser) ? props.parser(val) : props.parser;\n } else if (props.type === 'number' && typeof val === 'string') {\n const num = val.replace(/[^\\d]/g, '');\n\n return num.length ? parseFloat(num) : void 0;\n }\n return val;\n }\n\n function handleInput(e: Event & { target: HTMLInputElement }) {\n props.onChange?.(parserValue(e.target?.value));\n }\n function handleMouseDown(e: MouseEvent) {\n props.onMouseDown?.(e);\n }\n function handleKeyDown(e: KeyboardEvent) {\n if (props.capsLockIcon) {\n setCapsLock(e.getModifierState('CapsLock'));\n }\n props.onKeyDown?.(e);\n }\n function handleBlur(e: FocusEvent) {\n props.onBlur?.(e);\n }\n function handleKeyUp(e: KeyboardEvent) {\n props.onKeyUp?.(e);\n }\n\n const value = createMemo(() => {\n if (props.formatter) {\n return isFunction(props.formatter) ? props.formatter(props.value) : props.formatter;\n }\n return props.value;\n });\n\n createEffect(() => {\n if (props.label) {\n setX(`.label {--x: ${inputRef?.offsetLeft || 0}px;opacity:1;}`);\n }\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {x()}\n {css(props.css)}\n </style>\n <fieldset\n class={cx('fieldset', props.size, props.status, props.class)}\n disabled={props.disabled}\n >\n <Show when={props.prefixIcon}>\n <span class=\"prefix\">{props.prefixIcon}</span>\n </Show>\n <input\n ref={inputRef}\n class=\"input\"\n part=\"input\"\n onChange={handleInput}\n type={props.type}\n value={value()}\n autocomplete={props.autoComplete}\n accept={props.accept}\n placeholder={props.placeholder}\n onMouseDown={handleMouseDown}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onBlur={handleBlur}\n />\n <Show when={props.label}>\n <label class=\"label\">{props.label}</label>\n </Show>\n <Show when={props.capsLockIcon && capsLock()}>\n <span class=\"caps-lock\">{props.capsLockIcon}</span>\n </Show>\n <Show when={props.suffixIcon}>\n <span class=\"suffix\">{props.suffixIcon}</span>\n </Show>\n </fieldset>\n </>\n );\n}\n\nexport type InputElement = CustomElement<InputProps>;\n\nexport const defaultInportProps = {\n class: void 0,\n css: void 0,\n suffixIcon: void 0,\n prefixIcon: void 0,\n capsLockIcon: void 0,\n size: void 0,\n disabled: void 0,\n status: void 0,\n type: void 0,\n label: void 0,\n value: void 0,\n defaultValue: void 0,\n formatter: void 0,\n parser: void 0,\n onChange: void 0,\n onMouseDown: void 0,\n onKeyDown: void 0,\n accept: void 0,\n autoComplete: void 0,\n placeholder: '请输入',\n};\n\ncustomElement<InputProps>('n-input', defaultInportProps, (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n size: el.size || 'normal',\n value: el.value || el.defaultValue || '',\n type: el.type || 'text',\n onChange(val?: number | string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(Input, props);\n});\n\nexport default Input;\n"],"names":["defaultInportProps","Input","props","inputRef","baseStyle","theme","x","setX","createSignal","capsLock","setCapsLock","handleInput","e","onChange","parserValue","val","parser","isFunction","type","num","replace","length","parseFloat","target","value","handleMouseDown","onMouseDown","handleKeyDown","capsLockIcon","getModifierState","onKeyDown","handleBlur","onBlur","handleKeyUp","onKeyUp","createMemo","formatter","createEffect","label","offsetLeft","style","css","Show","prefixIcon","suffixIcon","cx","size","status","class","disabled","autoComplete","accept","placeholder","defaultValue","customElement","_","opt","el","element","mergeProps","dispatchEvent","CustomEvent","detail","createComponent"],"mappings":"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"}
@@ -172,7 +172,8 @@
172
172
  margin-inline-end: 4px;
173
173
  }
174
174
 
175
- .suffix {
175
+ .suffix,
176
+ .caps-lock {
176
177
  margin-inline-start: 4px;
177
178
  }
178
179
  `;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/input/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .label {\n --x: 0;\n\n position: absolute;\n overflow: hidden;\n border-radius: var(--border-radius);\n padding: 0 4px;\n text-overflow: ellipsis;\n color: var(--text-secondary);\n opacity: 0;\n transition:\n transform var(--transition-duration),\n opacity var(--transition-duration),\n color var(--transition-duration),\n background-color var(--transition-duration);\n line-height: 1.45;\n pointer-events: none;\n transform-origin: left;\n max-inline-size: 100%;\n word-break: keep-all;\n }\n\n .normal {\n padding: 4px 10px;\n font-size: var(--font-size);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 10px), 0, 1px);\n }\n }\n\n .large {\n padding: 6px 16px;\n font-size: var(--font-size-lg);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 16px), 0, 1px);\n }\n }\n\n .small {\n padding: 2px;\n font-size: var(--font-size-sm);\n line-height: 20px;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 2px), 0, 1px);\n }\n }\n\n .input {\n overflow: hidden;\n border: none;\n font-size: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: inherit;\n inline-size: inherit;\n background: none;\n outline: none;\n appearance: none;\n flex: 1;\n\n &::placeholder {\n opacity: 0;\n transition:\n color var(--transition-duration),\n opacity var(--transition-duration);\n }\n\n &:focus::placeholder {\n opacity: 1;\n }\n\n &:not(:placeholder-shown) + .label,\n &:focus + .label {\n background: var(--component-bg);\n transform: translate3d(0, calc(-50% - 0.43em), 1px) scale(0.8);\n }\n\n &:focus + .label {\n color: var(--primary-color);\n }\n\n &:not(:placeholder-shown, :focus) + .label {\n color: var(--text-color);\n }\n }\n\n .fieldset {\n position: relative;\n display: flex;\n margin: 0;\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n color: var(--text-color);\n background-color: var(--component-bg);\n transition: all var(--transition-duration);\n inline-size: 100%;\n background-image: none;\n box-sizing: border-box;\n accent-color: var(--primary-color, #5794ff);\n\n &:hover {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n }\n\n &:focus-within {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n outline: 0;\n box-shadow: 0 0 0 2px var(--primary-outline);\n }\n\n &:invalid,\n &.error {\n --border-color: var(--error-border);\n --primary-hover: var(--error-hover);\n --primary-outline: var(--error-outline);\n --primary-color: var(--error-color);\n\n .label {\n --text-color: var(--error-color);\n }\n }\n\n &.success {\n --border-color: var(--success-border);\n --primary-hover: var(--success-hover);\n --primary-outline: var(--success-outline);\n --primary-color: var(--success-color);\n\n .label {\n --text-color: var(--success-color);\n }\n }\n\n &.warning {\n --border-color: var(--warning-border);\n --primary-hover: var(--warning-hover);\n --primary-outline: var(--warning-outline);\n --primary-color: var(--warning-color);\n\n .label {\n --text-color: var(--warning-color);\n }\n }\n\n &:disabled {\n --text-color: var(--disable-color);\n --border-color: var(--disable-border);\n --primary-hover: var(--disable-border);\n\n background-color: var(--disable-bg);\n cursor: not-allowed;\n\n .input {\n pointer-events: none;\n\n &:not(:placeholder-shown) + .label {\n background: var(--disable-border);\n }\n }\n }\n }\n\n .prefix {\n margin-inline-end: 4px;\n }\n\n .suffix {\n margin-inline-start: 4px;\n }\n`;\n"],"names":["style","css"],"mappings":"kGAEaA,6CAAAA,qBAFO,eAEPA,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiLzB,CAAC"}
1
+ {"version":3,"sources":["../../components/input/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .label {\n --x: 0;\n\n position: absolute;\n overflow: hidden;\n border-radius: var(--border-radius);\n padding: 0 4px;\n text-overflow: ellipsis;\n color: var(--text-secondary);\n opacity: 0;\n transition:\n transform var(--transition-duration),\n opacity var(--transition-duration),\n color var(--transition-duration),\n background-color var(--transition-duration);\n line-height: 1.45;\n pointer-events: none;\n transform-origin: left;\n max-inline-size: 100%;\n word-break: keep-all;\n }\n\n .normal {\n padding: 4px 10px;\n font-size: var(--font-size);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 10px), 0, 1px);\n }\n }\n\n .large {\n padding: 6px 16px;\n font-size: var(--font-size-lg);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 16px), 0, 1px);\n }\n }\n\n .small {\n padding: 2px;\n font-size: var(--font-size-sm);\n line-height: 20px;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 2px), 0, 1px);\n }\n }\n\n .input {\n overflow: hidden;\n border: none;\n font-size: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: inherit;\n inline-size: inherit;\n background: none;\n outline: none;\n appearance: none;\n flex: 1;\n\n &::placeholder {\n opacity: 0;\n transition:\n color var(--transition-duration),\n opacity var(--transition-duration);\n }\n\n &:focus::placeholder {\n opacity: 1;\n }\n\n &:not(:placeholder-shown) + .label,\n &:focus + .label {\n background: var(--component-bg);\n transform: translate3d(0, calc(-50% - 0.43em), 1px) scale(0.8);\n }\n\n &:focus + .label {\n color: var(--primary-color);\n }\n\n &:not(:placeholder-shown, :focus) + .label {\n color: var(--text-color);\n }\n }\n\n .fieldset {\n position: relative;\n display: flex;\n margin: 0;\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n color: var(--text-color);\n background-color: var(--component-bg);\n transition: all var(--transition-duration);\n inline-size: 100%;\n background-image: none;\n box-sizing: border-box;\n accent-color: var(--primary-color, #5794ff);\n\n &:hover {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n }\n\n &:focus-within {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n outline: 0;\n box-shadow: 0 0 0 2px var(--primary-outline);\n }\n\n &:invalid,\n &.error {\n --border-color: var(--error-border);\n --primary-hover: var(--error-hover);\n --primary-outline: var(--error-outline);\n --primary-color: var(--error-color);\n\n .label {\n --text-color: var(--error-color);\n }\n }\n\n &.success {\n --border-color: var(--success-border);\n --primary-hover: var(--success-hover);\n --primary-outline: var(--success-outline);\n --primary-color: var(--success-color);\n\n .label {\n --text-color: var(--success-color);\n }\n }\n\n &.warning {\n --border-color: var(--warning-border);\n --primary-hover: var(--warning-hover);\n --primary-outline: var(--warning-outline);\n --primary-color: var(--warning-color);\n\n .label {\n --text-color: var(--warning-color);\n }\n }\n\n &:disabled {\n --text-color: var(--disable-color);\n --border-color: var(--disable-border);\n --primary-hover: var(--disable-border);\n\n background-color: var(--disable-bg);\n cursor: not-allowed;\n\n .input {\n pointer-events: none;\n\n &:not(:placeholder-shown) + .label {\n background: var(--disable-border);\n }\n }\n }\n }\n\n .prefix {\n margin-inline-end: 4px;\n }\n\n .suffix,\n .caps-lock {\n margin-inline-start: 4px;\n }\n`;\n"],"names":["style","css"],"mappings":"kGAEaA,6CAAAA,qBAFO,eAEPA,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkLzB,CAAC"}
@@ -1,3 +1,3 @@
1
- "use strict";var e,t,n,o;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{TriggerOption:function(){return e},Placement:function(){return t},defaultProps:function(){return C},default:function(){return M}});const r=require("@swc/helpers/_/_interop_require_default"),i=require("solid-js/web"),l=require("solid-js"),s=/*#__PURE__*/r._(require("@moneko/common/lib/isElementInside")),u=/*#__PURE__*/r._(require("@moneko/common/lib/isEqual")),c=/*#__PURE__*/r._(require("@moneko/common/lib/isFunction")),a=/*#__PURE__*/r._(require("@moneko/common/lib/passiveSupported")),p=require("@moneko/css"),d=require("solid-element"),m=require("./style");require("../empty");const g=/*#__PURE__*/r._(require("../theme")),f=/*#__PURE__*/(0,i.template)("<style>"),h=/*#__PURE__*/(0,i.template)("<span>"),v=/*#__PURE__*/(0,i.template)("<div>"),w=/*#__PURE__*/(0,i.template)("<n-empty>",!0,!1);function b(e){let t,n,o,r;let{isDark:d,baseStyle:b}=g.default,C=(0,l.mergeProps)({trigger:"hover"},e),[M]=(0,l.splitProps)(C,["class","css","popupClass","popupCss","size","trigger","open","disabled","onOpenChange","dropdownMatchSelectWidth","destroyInactive","arrow","placement","getPopupContainer","children","content"]),[x,E]=(0,l.createSignal)(null),[y,P]=(0,l.createSignal)({}),[q,k]=(0,l.createSignal)(!1),[L,_]=(0,l.createSignal)("");function O(e){M.disabled||(M.onOpenChange&&M.onOpenChange(e),void 0===M.open&&E(e))}function S(){!1===x()&&(E(null),O(null))}function R(e){clearTimeout(o),o=setTimeout(()=>{if(clearTimeout(o),e.target?.getAttribute("handle-closed")==="false")return;let n=(0,s.default)(e.target,t);(x()&&!n||n&&"mousedown"!==e.type)&&O(!1)},"hover"===M.trigger?300:0)}(0,l.createEffect)(()=>{void 0!==M.open&&E(M.open)}),(0,l.createEffect)(()=>{x()&&M.dropdownMatchSelectWidth&&n&&_(`.portal {width: ${n.offsetWidth}px;}`)});let T=function(e){clearTimeout(r),r=setTimeout(()=>{if(clearTimeout(r),!t||!n||!e&&"contextMenu"===M.trigger)return;if(e?.type==="scroll"&&"contextMenu"===M.trigger){O(!1);return}let o=n.getBoundingClientRect(),i=t.getBoundingClientRect(),l=i.width/2-o.width/2,s=window.innerHeight-o.bottom,c=M.placement,a=!c?.startsWith("top")&&s>.8*t.offsetHeight&&s>o.top||c?.startsWith("bottom"),p=M.arrow?8:4,d={};switch(M.placement){case"bottomLeft":case"left":case"topLeft":d.left=o.left,d["--x"]=-i.width/2+16;break;case"bottomRight":case"right":case"topRight":d.left=o.right-i.width,d["--x"]=i.width/2-16;break;default:d.left=Math.abs(l>o.left?o.left:o.left-l),d["--x"]=-(d.left-o.left+l)}a?d.top=o.bottom+p:d.bottom=window.innerHeight-o.top+p,P(e=>(0,u.default)(e,d)?e:d),k(e=>!a===e?e:!a)},32)};function $(e){clearTimeout(o),e.stopPropagation(),"contextMenu"===M.trigger&&"contextmenu"===e.type&&(e.preventDefault(),P(n=>({...n,left:e.clientX,top:e.clientY,"--x":-(t?.getBoundingClientRect().width||0)/2+16}))),O(!0)}let j=(0,l.createMemo)(()=>(0,c.default)(M.getPopupContainer)?M.getPopupContainer(n):document.body),W=(0,l.createMemo)(()=>{let e={},t={click:"onMouseDown",hover:"onMouseEnter",contextMenu:"onContextMenu",none:null}[M.trigger],n={hover:"onMouseLeave",click:null,contextMenu:null,none:null}[M.trigger];return Object.assign(e,t&&{[t]:$},n&&{[n]:R}),e}),z=(0,l.createMemo)(()=>{let e=y();// max-block-size: calc(100vb - ${(up() ? p.bottom : p.top) || 0}px);
2
- return`.portal {${Object.keys(e).map(t=>`${t}:${e[t]}px;`).join("")}z-index: 1;}`}),I=(0,l.createMemo)(()=>(0,p.cx)("portal",M.arrow&&"arrow",`${x()?"in":"out"}-${q()?"up":"down"}`,M.size,M.popupClass)),B=(0,l.createMemo)(()=>`:host {--popover-bg: ${d()?"#1f1f1f":"var(--component-bg)"};--popover-shadow-color: rgb(0 0 0 / 5%);}`);return(0,l.createEffect)(()=>{x()&&(T(),window.addEventListener("scroll",T,{passive:a.default})),(0,l.onCleanup)(()=>{window.removeEventListener("scroll",T,!1)})}),(0,l.onMount)(()=>{"none"!==M.trigger&&document.documentElement.addEventListener("mousedown",R,!1)}),(0,l.onCleanup)(()=>{clearTimeout(o),document.documentElement.removeEventListener("mousedown",R,!1)}),[(()=>{let e=f();return(0,i.insert)(e,b,null),(0,i.insert)(e,m.popoverCss,null),(0,i.insert)(e,()=>(0,p.css)(M.css),null),e})(),(()=>{let e=h(),t=n;return"function"==typeof t?(0,i.use)(t,e):n=e,(0,i.spread)(e,(0,i.mergeProps)({get class(){return(0,p.cx)("popover",M.size,M.class)}},W),!1,!0),(0,i.insert)(e,()=>M.children),e})(),(0,i.createComponent)(l.Show,{get when(){return null!==x()||!M.destroyInactive},get children(){return(0,i.createComponent)(i.Portal,{useShadow:!0,get mount(){return j()},get children(){return[(()=>{let e=f();return(0,i.insert)(e,b,null),(0,i.insert)(e,m.portalCss,null),(0,i.insert)(e,B,null),(0,i.insert)(e,z,null),(0,i.insert)(e,L,null),(0,i.insert)(e,()=>(0,p.css)(M.popupCss),null),e})(),(()=>{let e=v(),n=t;return(0,i.addEventListener)(e,"animationend",S),"function"==typeof n?(0,i.use)(n,e):t=e,(0,i.spread)(e,(0,i.mergeProps)({get class(){return I()}},W),!1,!0),(0,i.insert)(e,(0,i.createComponent)(l.Show,{get when(){return M.content},get fallback(){return(()=>{let e=w();return e._$owner=(0,i.getOwner)(),e})()},get children(){return M.content}})),e})()]}})}})]}(n=e||(e={}))./** 鼠标移入 */hover="hover",n./** 点击 */click="click",n./** 右键 */contextMenu="contextMenu",n./** 无 */none="none",(o=t||(t={}))./** 左下 */bottomLeft="bottomLeft",o./** 下 */bottom="bottom",o./** 右下 */bottomRight="bottomRight",o./** 左上 */topLeft="topLeft",o./** 上 */top="top",o./** 右上 */topRight="topRight",o./** 左 */left="left",o./** 右 */right="right";const C={class:void 0,css:void 0,content:void 0,getPopupContainer:void 0,trigger:void 0,open:void 0,onOpenChange:void 0,popupClass:void 0,popupCss:void 0,destroyInactive:!0,disabled:void 0,arrow:void 0,placement:void 0,dropdownMatchSelectWidth:void 0};(0,d.customElement)("n-popover",C,(e,t)=>{let n=t.element,o=(0,l.mergeProps)({onOpenChange(e){n.dispatchEvent(new CustomEvent("openchange",{detail:e}))},children:[...n.childNodes.values()]},e);return(0,l.createEffect)(()=>{n.removeAttribute("css")}),(0,l.createComponent)(b,o)});const M=b;
1
+ "use strict";var e,t,n,o;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{Placement:function(){return t},TriggerOption:function(){return e},default:function(){return M},defaultProps:function(){return C}});const r=require("@swc/helpers/_/_interop_require_default"),i=require("solid-js/web"),l=require("solid-js"),s=/*#__PURE__*/r._(require("@moneko/common/lib/isElementInside")),u=/*#__PURE__*/r._(require("@moneko/common/lib/isEqual")),c=/*#__PURE__*/r._(require("@moneko/common/lib/isFunction")),a=/*#__PURE__*/r._(require("@moneko/common/lib/passiveSupported")),p=require("@moneko/css"),d=require("solid-element"),m=require("./style");require("../empty");const g=/*#__PURE__*/r._(require("../theme")),f=/*#__PURE__*/(0,i.template)("<style>"),h=/*#__PURE__*/(0,i.template)("<span>"),v=/*#__PURE__*/(0,i.template)("<div>"),w=/*#__PURE__*/(0,i.template)("<n-empty>",!0,!1);function b(e){let t,n,o,r;let{isDark:d,baseStyle:b}=g.default,C=(0,l.mergeProps)({trigger:"hover"},e),[M]=(0,l.splitProps)(C,["class","css","popupClass","popupCss","size","trigger","open","disabled","onOpenChange","dropdownMatchSelectWidth","destroyInactive","arrow","placement","getPopupContainer","children","content"]),[x,E]=(0,l.createSignal)(null),[y,P]=(0,l.createSignal)({}),[q,k]=(0,l.createSignal)(!1),[L,_]=(0,l.createSignal)("");function O(e){M.disabled||(M.onOpenChange&&M.onOpenChange(e),void 0===M.open&&E(e))}function S(){!1===x()&&(E(null),O(null))}function R(e){clearTimeout(o),o=setTimeout(()=>{if(clearTimeout(o),e.target?.getAttribute("handle-closed")==="false")return;let n=(0,s.default)(e.target,t);(x()&&!n||n&&"mousedown"!==e.type)&&O(!1)},"hover"===M.trigger?300:0)}(0,l.createEffect)(()=>{void 0!==M.open&&E(M.open)}),(0,l.createEffect)(()=>{x()&&M.dropdownMatchSelectWidth&&n&&_(`.portal {width: ${n.offsetWidth}px;}`)});let T=function(e){clearTimeout(r),r=setTimeout(()=>{if(clearTimeout(r),!t||!n||!e&&"contextMenu"===M.trigger)return;if(e?.type==="scroll"&&"contextMenu"===M.trigger){O(!1);return}let o=n.getBoundingClientRect(),i=t.getBoundingClientRect(),l=i.width/2-o.width/2,s=window.innerHeight-o.bottom,c=M.placement,a=!c?.startsWith("top")&&s>.8*t.offsetHeight&&s>o.top||c?.startsWith("bottom"),p=M.arrow?8:4,d={};switch(M.placement){case"bottomLeft":case"left":case"topLeft":d.left=o.left,d["--x"]=-i.width/2+16;break;case"bottomRight":case"right":case"topRight":d.left=o.right-i.width,d["--x"]=i.width/2-16;break;default:d.left=Math.abs(l>o.left?o.left:o.left-l),d["--x"]=-(d.left-o.left+l)}a?d.top=o.bottom+p:d.bottom=window.innerHeight-o.top+p,P(e=>(0,u.default)(e,d)?e:d),k(e=>!a===e?e:!a)},32)};function $(e){clearTimeout(o),e.stopPropagation(),"contextMenu"===M.trigger&&"contextmenu"===e.type&&(e.preventDefault(),P(n=>({...n,left:e.clientX,top:e.clientY,"--x":-(t?.getBoundingClientRect().width||0)/2+16}))),O(!0)}let j=(0,l.createMemo)(()=>(0,c.default)(M.getPopupContainer)?M.getPopupContainer(n):document.body),W=(0,l.createMemo)(()=>{let e={},t={click:"onMouseDown",hover:"onMouseEnter",contextMenu:"onContextMenu",none:null}[M.trigger],n={hover:"onMouseLeave",click:null,contextMenu:null,none:null}[M.trigger];return Object.assign(e,t&&{[t]:$},n&&{[n]:R}),e}),z=(0,l.createMemo)(()=>{let e=y();// max-block-size: calc(100vb - ${(up() ? p.bottom : p.top) || 0}px);
2
+ return`.portal {${Object.keys(e).map(t=>`${t}:${e[t]}px;`).join("")}z-index: 1;}`}),I=(0,l.createMemo)(()=>(0,p.cx)("portal",M.arrow&&"arrow",`${x()?"in":"out"}-${q()?"up":"down"}`,M.size,M.popupClass)),B=(0,l.createMemo)(()=>`:host {--popover-bg: ${d()?"#1f1f1f":"var(--component-bg)"};--popover-shadow-color: rgb(0 0 0 / 5%);}`);return(0,l.createEffect)(()=>{x()&&(T(),window.addEventListener("scroll",T,{passive:a.default})),(0,l.onCleanup)(()=>{window.removeEventListener("scroll",T,!1)})}),(0,l.onMount)(()=>{"none"!==M.trigger&&document.documentElement.addEventListener("mousedown",R,!1)}),(0,l.onCleanup)(()=>{clearTimeout(o),document.documentElement.removeEventListener("mousedown",R,!1)}),[(()=>{let e=f();return(0,i.insert)(e,b,null),(0,i.insert)(e,m.popoverCss,null),(0,i.insert)(e,()=>(0,p.css)(M.css),null),e})(),(()=>{let e=h(),t=n;return"function"==typeof t?(0,i.use)(t,e):n=e,(0,i.spread)(e,(0,i.mergeProps)({get class(){return(0,p.cx)("popover",M.size,M.class)}},W),!1,!0),(0,i.insert)(e,()=>M.children),e})(),(0,i.createComponent)(l.Show,{get when(){return null!==x()||!M.destroyInactive},get children(){return(0,i.createComponent)(i.Portal,{useShadow:!0,get mount(){return j()},get children(){return[(()=>{let e=f();return(0,i.insert)(e,b,null),(0,i.insert)(e,m.portalCss,null),(0,i.insert)(e,B,null),(0,i.insert)(e,z,null),(0,i.insert)(e,L,null),(0,i.insert)(e,()=>(0,p.css)(M.popupCss),null),e})(),(()=>{let e=v(),n=t;return(0,i.addEventListener)(e,"animationend",S),"function"==typeof n?(0,i.use)(n,e):t=e,(0,i.spread)(e,(0,i.mergeProps)({get class(){return I()}},W),!1,!0),(0,i.insert)(e,(0,i.createComponent)(l.Show,{get when(){return M.content},get fallback(){return(()=>{let e=w();return e._$owner=(0,i.getOwner)(),e})()},get children(){return M.content}})),e})()]}})}})]}(n=e||(e={})).hover="hover",n.click="click",n.contextMenu="contextMenu",n.none="none",(o=t||(t={})).bottomLeft="bottomLeft",o.bottom="bottom",o.bottomRight="bottomRight",o.topLeft="topLeft",o.top="top",o.topRight="topRight",o.left="left",o.right="right";const C={class:void 0,css:void 0,content:void 0,getPopupContainer:void 0,trigger:void 0,open:void 0,onOpenChange:void 0,popupClass:void 0,popupCss:void 0,destroyInactive:!0,disabled:void 0,arrow:void 0,placement:void 0,dropdownMatchSelectWidth:void 0};(0,d.customElement)("n-popover",C,(e,t)=>{let n=t.element,o=(0,l.mergeProps)({onOpenChange(e){n.dispatchEvent(new CustomEvent("openchange",{detail:e}))},children:[...n.childNodes.values()]},e);return(0,l.createEffect)(()=>{n.removeAttribute("css")}),(0,l.createComponent)(b,o)});const M=b;
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/popover/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n splitProps,\n} from 'solid-js';\nimport { isElementInside, isEqual, isFunction, passiveSupported } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { Portal } from 'solid-js/web';\nimport { popoverCss, portalCss } from './style';\nimport '../empty';\nimport theme from '../theme';\nimport type { BasicConfig, CustomElement } from '..';\n\nexport interface PopoverProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n content?: (() => JSX.Element) | JSX.Element;\n /** 挂载到指定的元素,值为一个返回对应 DOM 元素 默认 document.body */\n getPopupContainer?: (node?: HTMLElement | null) => HTMLElement;\n /** 触发行为\n * @default 'hover'\n */\n trigger?: keyof typeof TriggerOption;\n /** 打开内容气泡 */\n open?: boolean | null;\n /** 内容打开关闭时的回调方法 */\n onOpenChange?: (open: boolean | null) => void;\n /** 气泡的自定义类名 */\n popupClass?: string;\n /** 气泡的自定义样式表 */\n popupCss?: string;\n /** 关闭后是否销毁 */\n destroyInactive?: boolean;\n /** 不可用状态 */\n disabled?: boolean;\n /** 添加一个箭头显示 */\n arrow?: boolean;\n /** 指定气泡显示的方向 */\n placement?: keyof typeof Placement;\n /** 气泡宽度与触发dom一致 */\n dropdownMatchSelectWidth?: boolean;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n children?: JSX.Element;\n}\n\nexport enum TriggerOption {\n /** 鼠标移入 */\n hover = 'hover',\n /** 点击 */\n click = 'click',\n /** 右键 */\n contextMenu = 'contextMenu',\n /** 无 */\n none = 'none',\n}\n\nexport enum Placement {\n /** 左下 */\n bottomLeft = 'bottomLeft',\n /** 下 */\n bottom = 'bottom',\n /** 右下 */\n bottomRight = 'bottomRight',\n /** 左上 */\n topLeft = 'topLeft',\n /** 上 */\n top = 'top',\n /** 右上 */\n topRight = 'topRight',\n /** 左 */\n left = 'left',\n /** 右 */\n right = 'right',\n}\n\ntype Posi = {\n left?: number;\n top?: number;\n right?: number;\n bottom?: number;\n '--x'?: number;\n};\n\ntype EventMap = {\n click: string | null;\n hover: string | null;\n contextMenu: string | null;\n none: null;\n [key: string]: string | null;\n};\nfunction Popover(props: PopoverProps) {\n const { isDark, baseStyle } = theme;\n const mp = mergeProps(\n {\n trigger: 'hover',\n },\n props,\n );\n const [local] = splitProps(mp, [\n 'class',\n 'css',\n 'popupClass',\n 'popupCss',\n 'size',\n 'trigger',\n 'open',\n 'disabled',\n 'onOpenChange',\n 'dropdownMatchSelectWidth',\n 'destroyInactive',\n 'arrow',\n 'placement',\n 'getPopupContainer',\n 'children',\n 'content',\n ]);\n let ref: HTMLDivElement | undefined;\n let childRef: HTMLSpanElement | undefined;\n let closeTimer: NodeJS.Timeout | undefined;\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [posi, setPosi] = createSignal<Posi>({});\n const [up, setUp] = createSignal<boolean>(false);\n const [width, setWidth] = createSignal('');\n\n createEffect(() => {\n if (local.open !== void 0) {\n setOpen(local.open);\n }\n });\n function openChange(next: boolean | null) {\n if (!local.disabled) {\n if (local.onOpenChange) {\n local.onOpenChange(next);\n }\n if (local.open === void 0) {\n setOpen(next);\n }\n }\n }\n function exit() {\n if (open() === false) {\n setOpen(null);\n openChange(null);\n }\n }\n createEffect(() => {\n if (open() && local.dropdownMatchSelectWidth && childRef) {\n setWidth(`.portal {width: ${childRef.offsetWidth}px;}`);\n }\n });\n\n function close(e: MouseEvent | Event) {\n clearTimeout(closeTimer);\n closeTimer = setTimeout(\n () => {\n clearTimeout(closeTimer);\n if ((e.target as HTMLElement)?.getAttribute('handle-closed') === 'false') {\n return;\n }\n const isContains = isElementInside(e.target as Element, ref);\n\n if ((open() && !isContains) || (isContains && e.type !== 'mousedown')) {\n openChange(false);\n }\n },\n local.trigger === 'hover' ? 300 : 0,\n );\n }\n let portalTimer: NodeJS.Timeout | undefined;\n const showPortal = function (e?: Event): void {\n clearTimeout(portalTimer);\n portalTimer = setTimeout(() => {\n clearTimeout(portalTimer);\n if (!ref || !childRef || (!e && local.trigger === 'contextMenu')) {\n return;\n }\n if (e?.type === 'scroll' && local.trigger === 'contextMenu') {\n openChange(false);\n return;\n }\n const elRect = childRef!.getBoundingClientRect();\n const portalRect = ref!.getBoundingClientRect();\n const offsetX = portalRect.width / 2 - elRect.width / 2;\n const margin = window.innerHeight - elRect.bottom;\n const _placement = local.placement;\n\n const _isBottom =\n (!_placement?.startsWith('top') &&\n margin > ref!.offsetHeight * 0.8 &&\n margin > elRect.top) ||\n _placement?.startsWith('bottom');\n const arrowHeight = local.arrow ? 8 : 4;\n const _posi: Posi = {};\n\n switch (local.placement) {\n case 'bottomLeft':\n case 'left':\n case 'topLeft':\n _posi.left = elRect.left;\n _posi['--x'] = -portalRect.width / 2 + 16;\n break;\n case 'bottomRight':\n case 'right':\n case 'topRight':\n _posi.left = elRect.right - portalRect.width;\n _posi['--x'] = portalRect.width / 2 - 16;\n break;\n case 'bottom':\n case 'top':\n default:\n _posi.left = Math.abs(offsetX > elRect.left ? elRect.left : elRect.left - offsetX);\n _posi['--x'] = -(_posi.left - elRect.left + offsetX);\n break;\n }\n if (_isBottom) {\n _posi.top = elRect.bottom + arrowHeight;\n } else {\n _posi.bottom = window.innerHeight - elRect.top + arrowHeight;\n }\n setPosi((prev) => {\n return isEqual(prev, _posi) ? prev : _posi;\n });\n setUp((prev) => {\n return prev === !_isBottom ? prev : !_isBottom;\n });\n }, 32);\n };\n\n function handleOpen(e: MouseEvent) {\n clearTimeout(closeTimer);\n e.stopPropagation();\n if (local.trigger === 'contextMenu' && e.type === 'contextmenu') {\n e.preventDefault();\n setPosi((prev) => ({\n ...prev,\n left: e.clientX,\n top: e.clientY,\n ['--x']: -(ref?.getBoundingClientRect().width || 0) / 2 + 16,\n }));\n }\n openChange(true);\n }\n\n const container = createMemo(() => {\n if (isFunction(local.getPopupContainer)) {\n return local.getPopupContainer(childRef);\n }\n return document.body;\n });\n const childrenProps = createMemo(() => {\n const _props: Partial<Record<keyof EventMap, void>> = {};\n\n const openEvent: EventMap = {\n click: 'onMouseDown',\n hover: 'onMouseEnter',\n contextMenu: 'onContextMenu',\n none: null,\n };\n const closeEvent: EventMap = {\n hover: 'onMouseLeave',\n click: null,\n contextMenu: null,\n none: null,\n };\n\n const openFn = openEvent[local.trigger];\n const closeFn = closeEvent[local.trigger];\n\n Object.assign(\n _props,\n openFn && {\n [openFn]: handleOpen,\n },\n closeFn && {\n [closeFn]: close,\n },\n );\n\n return _props;\n });\n\n const portalStyle = createMemo(() => {\n const p = posi();\n\n // max-block-size: calc(100vb - ${(up() ? p.bottom : p.top) || 0}px);\n return `.portal {${Object.keys(p)\n .map((k) => `${k}:${p[k as keyof Posi]}px;`)\n .join('')}z-index: 1;}`;\n });\n const portalCls = createMemo(() => {\n return cx(\n 'portal',\n local.arrow && 'arrow',\n `${open() ? 'in' : 'out'}-${up() ? 'up' : 'down'}`,\n local.size,\n local.popupClass,\n );\n });\n const hostStyle = createMemo(() => {\n return `:host {--popover-bg: ${\n isDark() ? '#1f1f1f' : 'var(--component-bg)'\n };--popover-shadow-color: rgb(0 0 0 / 5%);}`;\n });\n\n createEffect(() => {\n if (open()) {\n showPortal();\n\n window.addEventListener('scroll', showPortal, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n window.removeEventListener('scroll', showPortal, false);\n });\n });\n onMount(() => {\n if (local.trigger !== 'none') {\n document.documentElement.addEventListener('mousedown', close, false);\n }\n });\n onCleanup(() => {\n clearTimeout(closeTimer);\n document.documentElement.removeEventListener('mousedown', close, false);\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {popoverCss}\n {css(local.css)}\n </style>\n <span ref={childRef} class={cx('popover', local.size, local.class)} {...childrenProps()}>\n {local.children}\n </span>\n <Show when={open() !== null || !local.destroyInactive}>\n <Portal useShadow mount={container()}>\n <style>\n {baseStyle()}\n {portalCss}\n {hostStyle()}\n {portalStyle()}\n {width()}\n {css(local.popupCss)}\n </style>\n <div ref={ref} onAnimationEnd={exit} class={portalCls()} {...childrenProps()}>\n <Show when={local.content} fallback={<n-empty />}>\n {local.content as JSX.Element}\n </Show>\n </div>\n </Portal>\n </Show>\n </>\n );\n}\n\nexport type PopoverElement = CustomElement<PopoverProps, 'onOpenChange'>;\n\nexport const defaultProps = {\n class: void 0,\n css: void 0,\n content: void 0,\n getPopupContainer: void 0,\n trigger: void 0,\n open: void 0,\n onOpenChange: void 0,\n popupClass: void 0,\n popupCss: void 0,\n destroyInactive: true,\n disabled: void 0,\n arrow: void 0,\n placement: void 0,\n dropdownMatchSelectWidth: void 0,\n};\ncustomElement<PopoverProps>('n-popover', defaultProps, (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onOpenChange(next: boolean | null) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: next,\n }),\n );\n },\n children: [...el.childNodes.values()],\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return createComponent(Popover, props);\n});\nexport default Popover;\n"],"names":["TriggerOption","Placement","defaultProps","Popover","props","ref","childRef","closeTimer","portalTimer","isDark","baseStyle","theme","mp","mergeProps","trigger","local","splitProps","open","setOpen","createSignal","posi","setPosi","up","setUp","width","setWidth","openChange","next","disabled","onOpenChange","exit","close","e","clearTimeout","setTimeout","target","getAttribute","isContains","isElementInside","type","createEffect","dropdownMatchSelectWidth","offsetWidth","showPortal","elRect","getBoundingClientRect","portalRect","offsetX","margin","window","innerHeight","bottom","_placement","placement","_isBottom","startsWith","offsetHeight","top","arrowHeight","arrow","_posi","left","right","Math","abs","prev","isEqual","handleOpen","stopPropagation","preventDefault","clientX","clientY","container","createMemo","isFunction","getPopupContainer","document","body","childrenProps","_props","openFn","openEvent","click","hover","contextMenu","none","closeFn","closeEvent","Object","assign","portalStyle","p","keys","map","k","join","portalCls","cx","size","popupClass","hostStyle","addEventListener","passive","passiveSupported","onCleanup","removeEventListener","onMount","documentElement","popoverCss","css","class","children","Show","destroyInactive","Portal","portalCss","popupCss","content","bottomLeft","bottomRight","topLeft","topRight","customElement","_","opt","el","element","dispatchEvent","CustomEvent","detail","childNodes","values","removeAttribute","createComponent"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/popover/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n splitProps,\n} from 'solid-js';\nimport { isElementInside, isEqual, isFunction, passiveSupported } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { Portal } from 'solid-js/web';\nimport { popoverCss, portalCss } from './style';\nimport '../empty';\nimport theme from '../theme';\nimport type { BasicConfig, CustomElement } from '..';\n\nexport interface PopoverProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n content?: (() => JSX.Element) | JSX.Element;\n /** 挂载到指定的元素,值为一个返回对应 DOM 元素 默认 document.body */\n getPopupContainer?: (node?: HTMLElement | null) => HTMLElement;\n /** 触发行为\n * @default 'hover'\n */\n trigger?: keyof typeof TriggerOption;\n /** 打开内容气泡 */\n open?: boolean | null;\n /** 内容打开关闭时的回调方法 */\n onOpenChange?: (open: boolean | null) => void;\n /** 气泡的自定义类名 */\n popupClass?: string;\n /** 气泡的自定义样式表 */\n popupCss?: string;\n /** 关闭后是否销毁 */\n destroyInactive?: boolean;\n /** 不可用状态 */\n disabled?: boolean;\n /** 添加一个箭头显示 */\n arrow?: boolean;\n /** 指定气泡显示的方向 */\n placement?: keyof typeof Placement;\n /** 气泡宽度与触发dom一致 */\n dropdownMatchSelectWidth?: boolean;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n children?: JSX.Element;\n}\n\nexport enum TriggerOption {\n /** 鼠标移入 */\n hover = 'hover',\n /** 点击 */\n click = 'click',\n /** 右键 */\n contextMenu = 'contextMenu',\n /** 无 */\n none = 'none',\n}\n\nexport enum Placement {\n /** 左下 */\n bottomLeft = 'bottomLeft',\n /** 下 */\n bottom = 'bottom',\n /** 右下 */\n bottomRight = 'bottomRight',\n /** 左上 */\n topLeft = 'topLeft',\n /** 上 */\n top = 'top',\n /** 右上 */\n topRight = 'topRight',\n /** 左 */\n left = 'left',\n /** 右 */\n right = 'right',\n}\n\ntype Posi = {\n left?: number;\n top?: number;\n right?: number;\n bottom?: number;\n '--x'?: number;\n};\n\ntype EventMap = {\n click: string | null;\n hover: string | null;\n contextMenu: string | null;\n none: null;\n [key: string]: string | null;\n};\nfunction Popover(props: PopoverProps) {\n const { isDark, baseStyle } = theme;\n const mp = mergeProps(\n {\n trigger: 'hover',\n },\n props,\n );\n const [local] = splitProps(mp, [\n 'class',\n 'css',\n 'popupClass',\n 'popupCss',\n 'size',\n 'trigger',\n 'open',\n 'disabled',\n 'onOpenChange',\n 'dropdownMatchSelectWidth',\n 'destroyInactive',\n 'arrow',\n 'placement',\n 'getPopupContainer',\n 'children',\n 'content',\n ]);\n let ref: HTMLDivElement | undefined;\n let childRef: HTMLSpanElement | undefined;\n let closeTimer: NodeJS.Timeout | undefined;\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [posi, setPosi] = createSignal<Posi>({});\n const [up, setUp] = createSignal<boolean>(false);\n const [width, setWidth] = createSignal('');\n\n createEffect(() => {\n if (local.open !== void 0) {\n setOpen(local.open);\n }\n });\n function openChange(next: boolean | null) {\n if (!local.disabled) {\n if (local.onOpenChange) {\n local.onOpenChange(next);\n }\n if (local.open === void 0) {\n setOpen(next);\n }\n }\n }\n function exit() {\n if (open() === false) {\n setOpen(null);\n openChange(null);\n }\n }\n createEffect(() => {\n if (open() && local.dropdownMatchSelectWidth && childRef) {\n setWidth(`.portal {width: ${childRef.offsetWidth}px;}`);\n }\n });\n\n function close(e: MouseEvent | Event) {\n clearTimeout(closeTimer);\n closeTimer = setTimeout(\n () => {\n clearTimeout(closeTimer);\n if ((e.target as HTMLElement)?.getAttribute('handle-closed') === 'false') {\n return;\n }\n const isContains = isElementInside(e.target as Element, ref);\n\n if ((open() && !isContains) || (isContains && e.type !== 'mousedown')) {\n openChange(false);\n }\n },\n local.trigger === 'hover' ? 300 : 0,\n );\n }\n let portalTimer: NodeJS.Timeout | undefined;\n const showPortal = function (e?: Event): void {\n clearTimeout(portalTimer);\n portalTimer = setTimeout(() => {\n clearTimeout(portalTimer);\n if (!ref || !childRef || (!e && local.trigger === 'contextMenu')) {\n return;\n }\n if (e?.type === 'scroll' && local.trigger === 'contextMenu') {\n openChange(false);\n return;\n }\n const elRect = childRef!.getBoundingClientRect();\n const portalRect = ref!.getBoundingClientRect();\n const offsetX = portalRect.width / 2 - elRect.width / 2;\n const margin = window.innerHeight - elRect.bottom;\n const _placement = local.placement;\n\n const _isBottom =\n (!_placement?.startsWith('top') &&\n margin > ref!.offsetHeight * 0.8 &&\n margin > elRect.top) ||\n _placement?.startsWith('bottom');\n const arrowHeight = local.arrow ? 8 : 4;\n const _posi: Posi = {};\n\n switch (local.placement) {\n case 'bottomLeft':\n case 'left':\n case 'topLeft':\n _posi.left = elRect.left;\n _posi['--x'] = -portalRect.width / 2 + 16;\n break;\n case 'bottomRight':\n case 'right':\n case 'topRight':\n _posi.left = elRect.right - portalRect.width;\n _posi['--x'] = portalRect.width / 2 - 16;\n break;\n case 'bottom':\n case 'top':\n default:\n _posi.left = Math.abs(offsetX > elRect.left ? elRect.left : elRect.left - offsetX);\n _posi['--x'] = -(_posi.left - elRect.left + offsetX);\n break;\n }\n if (_isBottom) {\n _posi.top = elRect.bottom + arrowHeight;\n } else {\n _posi.bottom = window.innerHeight - elRect.top + arrowHeight;\n }\n setPosi((prev) => {\n return isEqual(prev, _posi) ? prev : _posi;\n });\n setUp((prev) => {\n return prev === !_isBottom ? prev : !_isBottom;\n });\n }, 32);\n };\n\n function handleOpen(e: MouseEvent) {\n clearTimeout(closeTimer);\n e.stopPropagation();\n if (local.trigger === 'contextMenu' && e.type === 'contextmenu') {\n e.preventDefault();\n setPosi((prev) => ({\n ...prev,\n left: e.clientX,\n top: e.clientY,\n ['--x']: -(ref?.getBoundingClientRect().width || 0) / 2 + 16,\n }));\n }\n openChange(true);\n }\n\n const container = createMemo(() => {\n if (isFunction(local.getPopupContainer)) {\n return local.getPopupContainer(childRef);\n }\n return document.body;\n });\n const childrenProps = createMemo(() => {\n const _props: Partial<Record<keyof EventMap, void>> = {};\n\n const openEvent: EventMap = {\n click: 'onMouseDown',\n hover: 'onMouseEnter',\n contextMenu: 'onContextMenu',\n none: null,\n };\n const closeEvent: EventMap = {\n hover: 'onMouseLeave',\n click: null,\n contextMenu: null,\n none: null,\n };\n\n const openFn = openEvent[local.trigger];\n const closeFn = closeEvent[local.trigger];\n\n Object.assign(\n _props,\n openFn && {\n [openFn]: handleOpen,\n },\n closeFn && {\n [closeFn]: close,\n },\n );\n\n return _props;\n });\n\n const portalStyle = createMemo(() => {\n const p = posi();\n\n // max-block-size: calc(100vb - ${(up() ? p.bottom : p.top) || 0}px);\n return `.portal {${Object.keys(p)\n .map((k) => `${k}:${p[k as keyof Posi]}px;`)\n .join('')}z-index: 1;}`;\n });\n const portalCls = createMemo(() => {\n return cx(\n 'portal',\n local.arrow && 'arrow',\n `${open() ? 'in' : 'out'}-${up() ? 'up' : 'down'}`,\n local.size,\n local.popupClass,\n );\n });\n const hostStyle = createMemo(() => {\n return `:host {--popover-bg: ${\n isDark() ? '#1f1f1f' : 'var(--component-bg)'\n };--popover-shadow-color: rgb(0 0 0 / 5%);}`;\n });\n\n createEffect(() => {\n if (open()) {\n showPortal();\n\n window.addEventListener('scroll', showPortal, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n window.removeEventListener('scroll', showPortal, false);\n });\n });\n onMount(() => {\n if (local.trigger !== 'none') {\n document.documentElement.addEventListener('mousedown', close, false);\n }\n });\n onCleanup(() => {\n clearTimeout(closeTimer);\n document.documentElement.removeEventListener('mousedown', close, false);\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {popoverCss}\n {css(local.css)}\n </style>\n <span ref={childRef} class={cx('popover', local.size, local.class)} {...childrenProps()}>\n {local.children}\n </span>\n <Show when={open() !== null || !local.destroyInactive}>\n <Portal useShadow mount={container()}>\n <style>\n {baseStyle()}\n {portalCss}\n {hostStyle()}\n {portalStyle()}\n {width()}\n {css(local.popupCss)}\n </style>\n <div ref={ref} onAnimationEnd={exit} class={portalCls()} {...childrenProps()}>\n <Show when={local.content} fallback={<n-empty />}>\n {local.content as JSX.Element}\n </Show>\n </div>\n </Portal>\n </Show>\n </>\n );\n}\n\nexport type PopoverElement = CustomElement<PopoverProps, 'onOpenChange'>;\n\nexport const defaultProps = {\n class: void 0,\n css: void 0,\n content: void 0,\n getPopupContainer: void 0,\n trigger: void 0,\n open: void 0,\n onOpenChange: void 0,\n popupClass: void 0,\n popupCss: void 0,\n destroyInactive: true,\n disabled: void 0,\n arrow: void 0,\n placement: void 0,\n dropdownMatchSelectWidth: void 0,\n};\ncustomElement<PopoverProps>('n-popover', defaultProps, (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onOpenChange(next: boolean | null) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: next,\n }),\n );\n },\n children: [...el.childNodes.values()],\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return createComponent(Popover, props);\n});\nexport default Popover;\n"],"names":["TriggerOption","Placement","defaultProps","Popover","props","ref","childRef","closeTimer","portalTimer","isDark","baseStyle","theme","mp","mergeProps","trigger","local","splitProps","open","setOpen","createSignal","posi","setPosi","up","setUp","width","setWidth","openChange","next","disabled","onOpenChange","exit","close","e","clearTimeout","setTimeout","target","getAttribute","isContains","isElementInside","type","createEffect","dropdownMatchSelectWidth","offsetWidth","showPortal","elRect","getBoundingClientRect","portalRect","offsetX","margin","window","innerHeight","bottom","_placement","placement","_isBottom","startsWith","offsetHeight","top","arrowHeight","arrow","_posi","left","right","Math","abs","prev","isEqual","handleOpen","stopPropagation","preventDefault","clientX","clientY","container","createMemo","isFunction","getPopupContainer","document","body","childrenProps","_props","openFn","openEvent","click","hover","contextMenu","none","closeFn","closeEvent","Object","assign","portalStyle","p","keys","map","k","join","portalCls","cx","size","popupClass","hostStyle","addEventListener","passive","passiveSupported","onCleanup","removeEventListener","onMount","documentElement","popoverCss","css","class","children","Show","destroyInactive","Portal","portalCss","popupCss","content","customElement","_","opt","el","element","dispatchEvent","CustomEvent","detail","childNodes","values","removeAttribute","createComponent"],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { CustomElement } from '..';
2
2
  export interface SwitchProps {
3
3
  /** 自定义类名 */
4
4
  class?: string;
5
- /** 自定义类名 */
5
+ /** 自定义样式表 */
6
6
  css?: string;
7
7
  /** 值 */
8
8
  checked?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/switch/index.tsx"],"sourcesContent":["import { createComponent, createEffect, createSignal, mergeProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface SwitchProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义类名 */\n css?: string;\n /** 值 */\n checked?: boolean;\n /** 只读 */\n disabled?: boolean;\n /** 设置 为 true 时的文案 */\n checkedText?: string;\n /** 设置 为 false 时的文案 */\n unCheckedText?: string;\n /** 加载状态 */\n loading?: boolean;\n /** 值修改时的回调方法 */\n onChange?: (val: boolean) => void;\n}\n\nexport type SwitchElement = CustomElement<SwitchProps>;\n\nfunction Switch(props: SwitchProps) {\n const { baseStyle } = theme;\n const [value, setValue] = createSignal(false);\n\n function change() {\n if (!props.disabled && !props.loading) {\n setValue((prev) => !prev);\n props.onChange?.(value());\n }\n }\n\n function onKeyUp({ key }: { key: string }) {\n if (key === 'Enter') {\n change();\n }\n }\n\n createEffect(() => {\n setValue(!!props.checked);\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(props.css)}\n </style>\n <span\n class={cx('switch', props.class, value() && 'checked', props.loading && 'loading')}\n text-on={props.checkedText}\n text-off={props.unCheckedText}\n aria-disabled={props.disabled}\n onClick={change}\n onKeyUp={onKeyUp}\n tabindex={props.disabled || props.loading ? -1 : 0}\n />\n </>\n );\n}\n\ncustomElement<SwitchProps>(\n 'n-switch',\n {\n class: void 0,\n css: void 0,\n checked: void 0,\n disabled: void 0,\n checkedText: void 0,\n unCheckedText: void 0,\n loading: false,\n onChange: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n checked: el.checked,\n disabled: el.disabled,\n checkedText: el.checkedText,\n unCheckedText: el.unCheckedText,\n loading: el.loading,\n onChange(val: boolean) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return createComponent(Switch, props);\n },\n);\nexport default Switch;\n"],"names":["Switch","props","baseStyle","theme","value","setValue","createSignal","change","disabled","loading","prev","onChange","onKeyUp","key","createEffect","checked","style","css","cx","class","checkedText","unCheckedText","customElement","_","opt","el","element","mergeProps","val","dispatchEvent","CustomEvent","detail","removeAttribute","createComponent"],"mappings":"kGA4GA,+CAAA,oGA5GwE,sBAChD,yBACM,2BACR,sCACJ,8FAwBlB,SAASA,EAAOC,CAAkB,EAChC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,SAAK,CACrB,CAACC,EAAOC,EAAS,CAAGC,GAAAA,cAAY,EAAC,CAAA,GAEvC,SAASC,IACFN,EAAMO,QAAQ,EAAKP,EAAMQ,OAAO,GACnCJ,EAAS,AAACK,GAAS,CAACA,GACpBT,EAAMU,QAAQ,GAAGP,KAErB,CAEA,SAASQ,EAAQ,CAAEC,IAAAA,CAAG,CAAmB,EAC3B,UAARA,GACFN,GAEJ,CAMA,MAJAO,GAAAA,cAAY,EAAC,KACXT,EAAS,CAAC,CAACJ,EAAMc,OAAO,CAC1B,yCAKOb,uBACAc,OAAK,0BACLC,GAAAA,KAAG,EAAChB,EAAMgB,GAAG,qEAQLL,uCADAL,6BAJFW,GAAAA,IAAE,EAAC,SAAUjB,EAAMkB,KAAK,CAAEf,KAAW,UAAWH,EAAMQ,OAAO,EAAI,aAC/DR,EAAMmB,WAAW,GAChBnB,EAAMoB,aAAa,GACdpB,EAAMO,QAAQ,GAGnBP,EAAMO,QAAQ,EAAIP,EAAMQ,OAAO,CAAG,GAAK,kVAIzD,CAEAa,GAAAA,eAAa,EACX,WACA,CACEH,MAAO,KAAK,EACZF,IAAK,KAAK,EACVF,QAAS,KAAK,EACdP,SAAU,KAAK,EACfY,YAAa,KAAK,EAClBC,cAAe,KAAK,EACpBZ,QAAS,CAAA,EACTE,SAAU,KAAK,CACjB,EACA,CAACY,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBzB,EAAQ0B,GAAAA,YAAU,EACtB,CACEV,IAAKQ,EAAGR,GAAG,CACXF,QAASU,EAAGV,OAAO,CACnBP,SAAUiB,EAAGjB,QAAQ,CACrBY,YAAaK,EAAGL,WAAW,CAC3BC,cAAeI,EAAGJ,aAAa,CAC/BZ,QAASgB,EAAGhB,OAAO,CACnBE,SAASiB,CAAY,EACnBH,EAAGI,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQH,CACV,GAEJ,CACF,EACAL,GAMF,MAHAT,GAAAA,cAAY,EAAC,KACXW,EAAGO,eAAe,CAAC,MACrB,GACOC,GAAAA,iBAAe,EAACjC,EAAQC,EACjC,SAEF,EAAeD"}
1
+ {"version":3,"sources":["../../components/switch/index.tsx"],"sourcesContent":["import { createComponent, createEffect, createSignal, mergeProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface SwitchProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 值 */\n checked?: boolean;\n /** 只读 */\n disabled?: boolean;\n /** 设置 为 true 时的文案 */\n checkedText?: string;\n /** 设置 为 false 时的文案 */\n unCheckedText?: string;\n /** 加载状态 */\n loading?: boolean;\n /** 值修改时的回调方法 */\n onChange?: (val: boolean) => void;\n}\n\nexport type SwitchElement = CustomElement<SwitchProps>;\n\nfunction Switch(props: SwitchProps) {\n const { baseStyle } = theme;\n const [value, setValue] = createSignal(false);\n\n function change() {\n if (!props.disabled && !props.loading) {\n setValue((prev) => !prev);\n props.onChange?.(value());\n }\n }\n\n function onKeyUp({ key }: { key: string }) {\n if (key === 'Enter') {\n change();\n }\n }\n\n createEffect(() => {\n setValue(!!props.checked);\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(props.css)}\n </style>\n <span\n class={cx('switch', props.class, value() && 'checked', props.loading && 'loading')}\n text-on={props.checkedText}\n text-off={props.unCheckedText}\n aria-disabled={props.disabled}\n onClick={change}\n onKeyUp={onKeyUp}\n tabindex={props.disabled || props.loading ? -1 : 0}\n />\n </>\n );\n}\n\ncustomElement<SwitchProps>(\n 'n-switch',\n {\n class: void 0,\n css: void 0,\n checked: void 0,\n disabled: void 0,\n checkedText: void 0,\n unCheckedText: void 0,\n loading: false,\n onChange: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n checked: el.checked,\n disabled: el.disabled,\n checkedText: el.checkedText,\n unCheckedText: el.unCheckedText,\n loading: el.loading,\n onChange(val: boolean) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return createComponent(Switch, props);\n },\n);\nexport default Switch;\n"],"names":["Switch","props","baseStyle","theme","value","setValue","createSignal","change","disabled","loading","prev","onChange","onKeyUp","key","createEffect","checked","style","css","cx","class","checkedText","unCheckedText","customElement","_","opt","el","element","mergeProps","val","dispatchEvent","CustomEvent","detail","removeAttribute","createComponent"],"mappings":"kGA4GA,+CAAA,oGA5GwE,sBAChD,yBACM,2BACR,sCACJ,8FAwBlB,SAASA,EAAOC,CAAkB,EAChC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,SAAK,CACrB,CAACC,EAAOC,EAAS,CAAGC,GAAAA,cAAY,EAAC,CAAA,GAEvC,SAASC,IACFN,EAAMO,QAAQ,EAAKP,EAAMQ,OAAO,GACnCJ,EAAS,AAACK,GAAS,CAACA,GACpBT,EAAMU,QAAQ,GAAGP,KAErB,CAEA,SAASQ,EAAQ,CAAEC,IAAAA,CAAG,CAAmB,EAC3B,UAARA,GACFN,GAEJ,CAMA,MAJAO,GAAAA,cAAY,EAAC,KACXT,EAAS,CAAC,CAACJ,EAAMc,OAAO,CAC1B,yCAKOb,uBACAc,OAAK,0BACLC,GAAAA,KAAG,EAAChB,EAAMgB,GAAG,qEAQLL,uCADAL,6BAJFW,GAAAA,IAAE,EAAC,SAAUjB,EAAMkB,KAAK,CAAEf,KAAW,UAAWH,EAAMQ,OAAO,EAAI,aAC/DR,EAAMmB,WAAW,GAChBnB,EAAMoB,aAAa,GACdpB,EAAMO,QAAQ,GAGnBP,EAAMO,QAAQ,EAAIP,EAAMQ,OAAO,CAAG,GAAK,kVAIzD,CAEAa,GAAAA,eAAa,EACX,WACA,CACEH,MAAO,KAAK,EACZF,IAAK,KAAK,EACVF,QAAS,KAAK,EACdP,SAAU,KAAK,EACfY,YAAa,KAAK,EAClBC,cAAe,KAAK,EACpBZ,QAAS,CAAA,EACTE,SAAU,KAAK,CACjB,EACA,CAACY,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBzB,EAAQ0B,GAAAA,YAAU,EACtB,CACEV,IAAKQ,EAAGR,GAAG,CACXF,QAASU,EAAGV,OAAO,CACnBP,SAAUiB,EAAGjB,QAAQ,CACrBY,YAAaK,EAAGL,WAAW,CAC3BC,cAAeI,EAAGJ,aAAa,CAC/BZ,QAASgB,EAAGhB,OAAO,CACnBE,SAASiB,CAAY,EACnBH,EAAGI,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQH,CACV,GAEJ,CACF,EACAL,GAMF,MAHAT,GAAAA,cAAY,EAAC,KACXW,EAAGO,eAAe,CAAC,MACrB,GACOC,GAAAA,iBAAe,EAACjC,EAAQC,EACjC,SAEF,EAAeD"}
@@ -1,2 +1,2 @@
1
- "use strict";var /** 水平对齐方式 */e,/** 垂直对齐方式 */t,r,n;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return x}});const a=require("@swc/helpers/_/_interop_require_default"),l=require("solid-js/web"),i=require("solid-js"),o=/*#__PURE__*/a._(require("@moneko/common/lib/isObject")),s=/*#__PURE__*/a._(require("@moneko/common/lib/isString")),c=/*#__PURE__*/a._(require("@moneko/common/lib/isUndefined")),u=require("@moneko/css"),p=require("solid-element"),m=require("./styles");require("../pagination");const d=/*#__PURE__*/a._(require("../theme")),g=/*#__PURE__*/(0,l.template)("<span>"),h=/*#__PURE__*/(0,l.template)("<style>"),f=/*#__PURE__*/(0,l.template)('<caption class="table-title"><slot name="title">'),v=/*#__PURE__*/(0,l.template)('<th class="table-cell">'),b=/*#__PURE__*/(0,l.template)('<tfoot class="table-foot"><tr>'),y=/*#__PURE__*/(0,l.template)("<table><thead><tr></tr></thead><tbody>"),_=/*#__PURE__*/(0,l.template)('<n-pagination class="table-pagination">',!0,!1),w=/*#__PURE__*/(0,l.template)("<th>"),S=/*#__PURE__*/(0,l.template)("<tr>"),$=/*#__PURE__*/(0,l.template)('<span class="empty-val">'),C=/*#__PURE__*/(0,l.template)("<td>"),q={page:1,pageSize:20,total:0,totalText:void 0,size:void 0};function P(e){let{baseStyle:t}=d.default,[r,n]=(0,i.splitProps)(e,["class","css","loading","summary","summaryText","columns","data","emptyVal","title","align","char","charoff","valign","pagination","size"]),[a]=(0,i.splitProps)(r,["align","char","charoff","valign"]),[p,P]=(0,i.createSignal)(!1),[x,z]=(0,i.createSignal)(1),[j,k]=(0,i.createSignal)(20),[O,T]=(0,i.createSignal)(0);function M(e){return{width:e.width,align:e.align,valign:e.valign,char:e.char,charoff:e.charoff,colspan:e.colspan,rowspan:e.rowspan}}(0,i.createEffect)(()=>{(0,i.batch)(()=>{r.pagination&&(z(r.pagination.page||1),k(r.pagination.pageSize||20),T(r.pagination.total||0))})});let E=(0,i.createMemo)(()=>Object.assign(q,r.pagination)),F=(0,i.createMemo)(()=>{let e=[],t=!1;for(let n in r.columns)if(Object.prototype.hasOwnProperty.call(r.columns,n)){let a=r.columns[n],i=Object.assign({key:n,originKey:n,label:a.toString()},(0,o.default)(a)&&{label:"order"===a.type&&"序号"||n,...a});"order"===i.type&&(t=!0,i.render=function(e,t,r){return(()=>{let e=g();return(0,l.insert)(e,()=>(x()-1)*j()+r+1),e})()}),e.push(i)}return(0,i.untrack)(p)!==t&&P(t),e});function A(e){r.pagination&&(z(e.detail[0]),k(e.detail[1]),r.pagination.onChange?.(...e.detail))}return[(()=>{let e=h();return(0,l.insert)(e,t,null),(0,l.insert)(e,m.styles,null),(0,l.insert)(e,()=>(0,u.css)(r.css),null),e})(),(()=>{let e=y(),t=e.firstChild,o=t.firstChild,m=t.nextSibling;return(0,l.spread)(e,(0,l.mergeProps)(n,{get class(){return(0,u.cx)("table",r.size)},part:"table"}),!1,!0),(0,l.insert)(e,(0,l.createComponent)(i.Show,{get when(){return r.title},get children(){let e=f(),t=e.firstChild;return t._$owner=(0,l.getOwner)(),(0,l.insert)(t,()=>r.title),e}}),t),(0,l.spread)(t,(0,l.mergeProps)(a,{class:"table-head"}),!1,!0),(0,l.insert)(o,(0,l.createComponent)(i.For,{get each(){return F()},children:e=>{let t=M(e);return(()=>{let r=w();return(0,l.spread)(r,(0,l.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,l.insert)(r,()=>e.label),r})()}})),(0,l.spread)(m,(0,l.mergeProps)(a,{class:"table-body"}),!1,!0),(0,l.insert)(m,(0,l.createComponent)(i.For,{get each(){return r.data},children:(e,t)=>(()=>{let n=S();return(0,l.insert)(n,(0,l.createComponent)(i.For,{get each(){return F()},children:n=>{let a=M(n),o=(0,i.createMemo)(()=>{if("order"===n.type){let e=E();return(e.page-1)*e.pageSize+t()+1}let a=e[n.key],i=(0,c.default)(a)||null===a;return i?(()=>{let e=$();return(0,l.insert)(e,()=>r.emptyVal),e})():a});return(()=>{let r=C();return(0,l.spread)(r,(0,l.mergeProps)(a,{class:"table-cell"}),!1,!0),(0,l.insert)(r,(0,l.createComponent)(i.Show,{get when(){return n.render},get fallback(){return(0,l.createComponent)(o,{})},get children(){return n.render?.(e[n.key],e,t())}})),r})()}})),n})()})),(0,l.insert)(e,(0,l.createComponent)(i.Show,{get when(){return r.summary?.length},get children(){let e=b(),t=e.firstChild;return(0,l.spread)(e,a,!1,!0),(0,l.insert)(t,(0,l.createComponent)(i.Show,{get when(){return p()},get children(){let e=v();return(0,l.spread)(e,(0,l.mergeProps)(()=>M(F()[0])),!1,!0),(0,l.insert)(e,()=>r.summaryText),e}}),null),(0,l.insert)(t,(0,l.createComponent)(i.For,{get each(){return F().filter(e=>!e.type||!["order"].includes(e.type))},children:e=>{let t=M(e),n=(0,i.createMemo)(()=>{if(r.data?.length&&r.summary?.includes(e.originKey)){var t,n;return t=r.data,n=e.key,t.reduce(function(e,t){let r=t[n];return(0,s.default)(r)||(0,c.default)(r)||null===r?e:e+t[n]},0)}return null});return(()=>{let e=C();return(0,l.spread)(e,(0,l.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,l.insert)(e,n),e})()}}),null),e}}),null),e})(),(0,l.createComponent)(i.Show,{get when(){return r.pagination},get children(){let e=_();return(0,l.addEventListener)(e,"change",A),e._$owner=(0,l.getOwner)(),(0,l.effect)(t=>{let n=x(),a=j(),l=O(),i=E().totalText,o=E().size||r.size;return n!==t._v$&&(e.page=t._v$=n),a!==t._v$2&&(e.pageSize=t._v$2=a),l!==t._v$3&&(e.total=t._v$3=l),i!==t._v$4&&(e.totalText=t._v$4=i),o!==t._v$5&&(e.size=t._v$5=o),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0}),e}})]}(r=e||(e={}))./** 左对齐 */left="left",r./** 右对齐 */right="right",r./** 居中对齐 */center="center",r./** 对行进行伸展,这样每行都可以有相等的长度 */justify="justify",r./** 将内容对准指定字符 */char="char",(n=t||(t={}))./** 上对齐 */top="top",n./** 居中对齐 */middle="middle",n./** 下对齐 */bottom="bottom",n./** 与基线对齐 */baseline="baseline",(0,p.customElement)("n-table",{class:void 0,css:void 0,loading:!1,columns:{},data:[],emptyVal:"-",title:void 0,char:void 0,charoff:void 0,align:"left",valign:"middle",summary:void 0,summaryText:"合计",pagination:void 0,size:void 0},(e,t)=>{let r=t.element,n=(0,i.mergeProps)({css:r.css,columns:r.columns,data:r.data,pagination:r.pagination,summary:r.summary,summaryText:r.summaryText},e,{title:!!r.querySelector("[slot='title']")||e.title});return(0,i.createEffect)(()=>{r.removeAttribute("css"),r.removeAttribute("title"),r.removeAttribute("data")}),(0,i.createComponent)(P,n)});const x=P;
1
+ "use strict";var e,t,r,n;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return x}});const a=require("@swc/helpers/_/_interop_require_default"),l=require("solid-js/web"),i=require("solid-js"),o=/*#__PURE__*/a._(require("@moneko/common/lib/isObject")),s=/*#__PURE__*/a._(require("@moneko/common/lib/isString")),c=/*#__PURE__*/a._(require("@moneko/common/lib/isUndefined")),u=require("@moneko/css"),p=require("solid-element"),m=require("./styles");require("../pagination");const d=/*#__PURE__*/a._(require("../theme")),g=/*#__PURE__*/(0,l.template)("<span>"),h=/*#__PURE__*/(0,l.template)("<style>"),f=/*#__PURE__*/(0,l.template)('<caption class="table-title"><slot name="title">'),v=/*#__PURE__*/(0,l.template)('<th class="table-cell">'),b=/*#__PURE__*/(0,l.template)('<tfoot class="table-foot"><tr>'),y=/*#__PURE__*/(0,l.template)("<table><thead><tr></tr></thead><tbody>"),_=/*#__PURE__*/(0,l.template)('<n-pagination class="table-pagination">',!0,!1),w=/*#__PURE__*/(0,l.template)("<th>"),S=/*#__PURE__*/(0,l.template)("<tr>"),$=/*#__PURE__*/(0,l.template)('<span class="empty-val">'),C=/*#__PURE__*/(0,l.template)("<td>"),q={page:1,pageSize:20,total:0,totalText:void 0,size:void 0};function P(e){let{baseStyle:t}=d.default,[r,n]=(0,i.splitProps)(e,["class","css","loading","summary","summaryText","columns","data","emptyVal","title","align","char","charoff","valign","pagination","size"]),[a]=(0,i.splitProps)(r,["align","char","charoff","valign"]),[p,P]=(0,i.createSignal)(!1),[x,z]=(0,i.createSignal)(1),[j,k]=(0,i.createSignal)(20),[O,T]=(0,i.createSignal)(0);function M(e){return{width:e.width,align:e.align,valign:e.valign,char:e.char,charoff:e.charoff,colspan:e.colspan,rowspan:e.rowspan}}(0,i.createEffect)(()=>{(0,i.batch)(()=>{r.pagination&&(z(r.pagination.page||1),k(r.pagination.pageSize||20),T(r.pagination.total||0))})});let E=(0,i.createMemo)(()=>Object.assign(q,r.pagination)),F=(0,i.createMemo)(()=>{let e=[],t=!1;for(let n in r.columns)if(Object.prototype.hasOwnProperty.call(r.columns,n)){let a=r.columns[n],i=Object.assign({key:n,originKey:n,label:a.toString()},(0,o.default)(a)&&{label:"order"===a.type&&"序号"||n,...a});"order"===i.type&&(t=!0,i.render=function(e,t,r){return(()=>{let e=g();return(0,l.insert)(e,()=>(x()-1)*j()+r+1),e})()}),e.push(i)}return(0,i.untrack)(p)!==t&&P(t),e});function A(e){r.pagination&&(z(e.detail[0]),k(e.detail[1]),r.pagination.onChange?.(...e.detail))}return[(()=>{let e=h();return(0,l.insert)(e,t,null),(0,l.insert)(e,m.styles,null),(0,l.insert)(e,()=>(0,u.css)(r.css),null),e})(),(()=>{let e=y(),t=e.firstChild,o=t.firstChild,m=t.nextSibling;return(0,l.spread)(e,(0,l.mergeProps)(n,{get class(){return(0,u.cx)("table",r.size)},part:"table"}),!1,!0),(0,l.insert)(e,(0,l.createComponent)(i.Show,{get when(){return r.title},get children(){let e=f(),t=e.firstChild;return t._$owner=(0,l.getOwner)(),(0,l.insert)(t,()=>r.title),e}}),t),(0,l.spread)(t,(0,l.mergeProps)(a,{class:"table-head"}),!1,!0),(0,l.insert)(o,(0,l.createComponent)(i.For,{get each(){return F()},children:e=>{let t=M(e);return(()=>{let r=w();return(0,l.spread)(r,(0,l.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,l.insert)(r,()=>e.label),r})()}})),(0,l.spread)(m,(0,l.mergeProps)(a,{class:"table-body"}),!1,!0),(0,l.insert)(m,(0,l.createComponent)(i.For,{get each(){return r.data},children:(e,t)=>(()=>{let n=S();return(0,l.insert)(n,(0,l.createComponent)(i.For,{get each(){return F()},children:n=>{let a=M(n),o=(0,i.createMemo)(()=>{if("order"===n.type){let e=E();return(e.page-1)*e.pageSize+t()+1}let a=e[n.key],i=(0,c.default)(a)||null===a;return i?(()=>{let e=$();return(0,l.insert)(e,()=>r.emptyVal),e})():a});return(()=>{let r=C();return(0,l.spread)(r,(0,l.mergeProps)(a,{class:"table-cell"}),!1,!0),(0,l.insert)(r,(0,l.createComponent)(i.Show,{get when(){return n.render},get fallback(){return(0,l.createComponent)(o,{})},get children(){return n.render?.(e[n.key],e,t())}})),r})()}})),n})()})),(0,l.insert)(e,(0,l.createComponent)(i.Show,{get when(){return r.summary?.length},get children(){let e=b(),t=e.firstChild;return(0,l.spread)(e,a,!1,!0),(0,l.insert)(t,(0,l.createComponent)(i.Show,{get when(){return p()},get children(){let e=v();return(0,l.spread)(e,(0,l.mergeProps)(()=>M(F()[0])),!1,!0),(0,l.insert)(e,()=>r.summaryText),e}}),null),(0,l.insert)(t,(0,l.createComponent)(i.For,{get each(){return F().filter(e=>!e.type||!["order"].includes(e.type))},children:e=>{let t=M(e),n=(0,i.createMemo)(()=>{if(r.data?.length&&r.summary?.includes(e.originKey)){var t,n;return t=r.data,n=e.key,t.reduce(function(e,t){let r=t[n];return(0,s.default)(r)||(0,c.default)(r)||null===r?e:e+t[n]},0)}return null});return(()=>{let e=C();return(0,l.spread)(e,(0,l.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,l.insert)(e,n),e})()}}),null),e}}),null),e})(),(0,l.createComponent)(i.Show,{get when(){return r.pagination},get children(){let e=_();return(0,l.addEventListener)(e,"change",A),e._$owner=(0,l.getOwner)(),(0,l.effect)(t=>{let n=x(),a=j(),l=O(),i=E().totalText,o=E().size||r.size;return n!==t._v$&&(e.page=t._v$=n),a!==t._v$2&&(e.pageSize=t._v$2=a),l!==t._v$3&&(e.total=t._v$3=l),i!==t._v$4&&(e.totalText=t._v$4=i),o!==t._v$5&&(e.size=t._v$5=o),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0}),e}})]}(r=e||(e={})).left="left",r.right="right",r.center="center",r.justify="justify",r.char="char",(n=t||(t={})).top="top",n.middle="middle",n.bottom="bottom",n.baseline="baseline",(0,p.customElement)("n-table",{class:void 0,css:void 0,loading:!1,columns:{},data:[],emptyVal:"-",title:void 0,char:void 0,charoff:void 0,align:"left",valign:"middle",summary:void 0,summaryText:"合计",pagination:void 0,size:void 0},(e,t)=>{let r=t.element,n=(0,i.mergeProps)({css:r.css,columns:r.columns,data:r.data,pagination:r.pagination,summary:r.summary,summaryText:r.summaryText},e,{title:!!r.querySelector("[slot='title']")||e.title});return(0,i.createEffect)(()=>{r.removeAttribute("css"),r.removeAttribute("title"),r.removeAttribute("data")}),(0,i.createComponent)(P,n)});const x=P;
2
2
  //# sourceMappingURL=index.js.map