neko-ui 2.7.5 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/es/basic-config/index.d.ts +9 -1
  2. package/es/basic-config/index.js +1 -1
  3. package/es/basic-config/index.js.map +1 -1
  4. package/es/tree/index.js +1 -1
  5. package/es/tree/index.js.map +1 -1
  6. package/es/tree/register.js +1 -1
  7. package/es/tree/register.js.map +1 -1
  8. package/es/tree/type.d.ts +2 -0
  9. package/lib/basic-config/index.d.ts +9 -1
  10. package/lib/basic-config/index.js +1 -1
  11. package/lib/basic-config/index.js.map +1 -1
  12. package/lib/tree/index.js +1 -1
  13. package/lib/tree/index.js.map +1 -1
  14. package/lib/tree/register.js +1 -1
  15. package/lib/tree/register.js.map +1 -1
  16. package/lib/tree/type.d.ts +2 -0
  17. package/package.json +1 -10
  18. package/umd/index.js +1 -1
  19. package/CHANGELOG.md +0 -587
  20. package/SECURITY.md +0 -25
  21. package/es/@moneko/coverage/index.d.ts +0 -35
  22. package/es/@moneko/coverage/index.js +0 -2
  23. package/es/@moneko/coverage/index.js.map +0 -1
  24. package/es/@moneko/info/index.d.ts +0 -51
  25. package/es/@moneko/info/index.js +0 -2
  26. package/es/@moneko/info/index.js.map +0 -1
  27. package/es/@moneko/locales/index.d.ts +0 -11
  28. package/es/@moneko/locales/index.js +0 -2
  29. package/es/@moneko/locales/index.js.map +0 -1
  30. package/es/@moneko/routes/index.d.ts +0 -27
  31. package/es/@moneko/routes/index.js +0 -2
  32. package/es/@moneko/routes/index.js.map +0 -1
  33. package/lib/@moneko/coverage/index.d.ts +0 -35
  34. package/lib/@moneko/coverage/index.js +0 -2
  35. package/lib/@moneko/coverage/index.js.map +0 -1
  36. package/lib/@moneko/info/index.d.ts +0 -51
  37. package/lib/@moneko/info/index.js +0 -2
  38. package/lib/@moneko/info/index.js.map +0 -1
  39. package/lib/@moneko/locales/index.d.ts +0 -11
  40. package/lib/@moneko/locales/index.js +0 -2
  41. package/lib/@moneko/locales/index.js.map +0 -1
  42. package/lib/@moneko/routes/index.d.ts +0 -27
  43. package/lib/@moneko/routes/index.js +0 -2
  44. package/lib/@moneko/routes/index.js.map +0 -1
@@ -67,5 +67,13 @@ export declare enum FieldName {
67
67
  /** 图标 */
68
68
  icon = "icon",
69
69
  /** 后缀图标 */
70
- suffix = "suffix"
70
+ suffix = "suffix",
71
+ /** 标题 */
72
+ title = "title",
73
+ /** 副标题 */
74
+ subTitle = "subTitle",
75
+ /** 键 */
76
+ key = "key",
77
+ /** 名称 */
78
+ name = "name"
71
79
  }
@@ -1,2 +1,2 @@
1
- var r,a,e;export var Size;(r=Size||(Size={})).small="small",r.normal="normal",r.large="large";export var Status;(a=Status||(Status={})).normal="normal",a.success="success",a.warning="warning",a.error="error",a.info="info",a.primary="primary";export var FieldName;(e=FieldName||(FieldName={})).label="label",e.value="value",e.options="options",e.children="children",e.icon="icon",e.suffix="suffix";
1
+ var e,a,r;export var Size;(e=Size||(Size={})).small="small",e.normal="normal",e.large="large";export var Status;(a=Status||(Status={})).normal="normal",a.success="success",a.warning="warning",a.error="error",a.info="info",a.primary="primary";export var FieldName;(r=FieldName||(FieldName={})).label="label",r.value="value",r.options="options",r.children="children",r.icon="icon",r.suffix="suffix",r.title="title",r.subTitle="subTitle",r.key="key",r.name="name";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/basic-config/index.ts"],"sourcesContent":["export interface BasicConfig {\n /** 组件状态\n * @default 'normal'\n */\n status: keyof typeof Status;\n /** 组件尺寸\n * @default 'normal'\n */\n size: keyof typeof Size;\n /** 自定义 'label'、'value'、'options' 等映射的key */\n fieldName: Partial<{ [key in keyof typeof FieldName]: string }>;\n}\n\nexport enum Size {\n /** 小 */\n small = 'small',\n /** 默认: 中 */\n normal = 'normal',\n /** 大 */\n large = 'large',\n}\n\nexport enum Status {\n /** 默认 */\n normal = 'normal',\n /** 成功 */\n success = 'success',\n /** 警告 */\n warning = 'warning',\n /** 错误 */\n error = 'error',\n /** 详细 */\n info = 'info',\n /** 主要 */\n primary = 'primary',\n}\n\nexport interface BaseOption {\n /** 图标 */\n icon?: JSX.Element;\n /** 值 */\n value?: string | number;\n /** 标题 */\n label?: JSX.Element;\n /** 不可用状态 */\n disabled?: boolean;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式 */\n style?: Record<string, unknown>;\n /** 选项状态\n * @default 'normal'\n */\n status?: Status;\n /** 分组子选项 */\n options?: (BaseOption | string)[];\n [key: string]: Any;\n}\n\nexport enum FieldName {\n /** 标题 */\n label = 'label',\n /** 值 */\n value = 'value',\n /** 分组子选项 */\n options = 'options',\n /** 子选项 */\n children = 'children',\n /** 图标 */\n icon = 'icon',\n /** 后缀图标 */\n suffix = 'suffix',\n}\n"],"names":["Size","Status","FieldName"],"rangeMappings":"","mappings":"IAaYA,EASAC,EAqCAC,mBA9CAF,EAAAA,OAAAA,6EASAC,EAAAA,SAAAA,4IAqCAC,EAAAA,YAAAA"}
1
+ {"version":3,"sources":["../../components/basic-config/index.ts"],"sourcesContent":["export interface BasicConfig {\n /** 组件状态\n * @default 'normal'\n */\n status: keyof typeof Status;\n /** 组件尺寸\n * @default 'normal'\n */\n size: keyof typeof Size;\n /** 自定义 'label'、'value'、'options' 等映射的key */\n fieldName: Partial<{ [key in keyof typeof FieldName]: string }>;\n}\n\nexport enum Size {\n /** 小 */\n small = 'small',\n /** 默认: 中 */\n normal = 'normal',\n /** 大 */\n large = 'large',\n}\n\nexport enum Status {\n /** 默认 */\n normal = 'normal',\n /** 成功 */\n success = 'success',\n /** 警告 */\n warning = 'warning',\n /** 错误 */\n error = 'error',\n /** 详细 */\n info = 'info',\n /** 主要 */\n primary = 'primary',\n}\n\nexport interface BaseOption {\n /** 图标 */\n icon?: JSX.Element;\n /** 值 */\n value?: string | number;\n /** 标题 */\n label?: JSX.Element;\n /** 不可用状态 */\n disabled?: boolean;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式 */\n style?: Record<string, unknown>;\n /** 选项状态\n * @default 'normal'\n */\n status?: Status;\n /** 分组子选项 */\n options?: (BaseOption | string)[];\n [key: string]: Any;\n}\n\nexport enum FieldName {\n /** 标题 */\n label = 'label',\n /** 值 */\n value = 'value',\n /** 分组子选项 */\n options = 'options',\n /** 子选项 */\n children = 'children',\n /** 图标 */\n icon = 'icon',\n /** 后缀图标 */\n suffix = 'suffix',\n /** 标题 */\n title = 'title',\n /** 副标题 */\n subTitle = 'subTitle',\n /** 键 */\n key = 'key',\n /** 名称 */\n name = 'name',\n}\n"],"names":["Size","Status","FieldName"],"rangeMappings":"","mappings":"IAaYA,EASAC,EAqCAC,mBA9CAF,EAAAA,OAAAA,6EASAC,EAAAA,SAAAA,4IAqCAC,EAAAA,YAAAA"}
package/es/tree/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{style as l}from"solid-js/web";import{setAttribute as o}from"solid-js/web";import{memo as r}from"solid-js/web";import{insert as n}from"solid-js/web";import{effect as i}from"solid-js/web";import{delegateEvents as s}from"solid-js/web";import{createComponent as a}from"solid-js/web";import{className as m}from"solid-js/web";let c=t("<li>"),u=t('<span class="title">'),d=t('<span class="sub-title">'),p=t("<style>"),f=t("<ul>");import{For as h,createEffect as v,createMemo as g,createSignal as y}from"solid-js";import $ from"@moneko/common/lib/frameCallback";import b from"@moneko/common/lib/isFunction";import k from"@moneko/common/lib/isString";import{css as w,cx as j}from"@moneko/css";import"./register";import{style as _}from"./style";import C from"../from-schema";import R from"../theme";export*from"./type";export default function(t){let s;let S={small:6,normal:8,large:10},{baseStyle:x}=R,[A,P]=y([]),[z,B]=y([]),D=g(()=>"rtl"===t.direction),q=g(()=>void 0!==t.value&&null!==t.value?Array.isArray(t.value)?t.value:[t.value]:[]),E=Symbol("path"),F=Symbol("path-end");return v(()=>{let e=t.fromSchema?C(t.data):k(t.data)?function(e){let t=/[^\s|`│├└]/,l=e.trim().split("\n"),o=[{title:l[0],key:l[0]}];for(let e=1;e<l.length;e++){let r=l[e].search(t);if(-1===r)continue;let n={title:l[e].slice(r+3),depth:r};for(;o.length&&r<=(o[o.length-1].depth||0);)o.pop();if(!o.length)return[];let i=o[o.length-1];i.children||(i.children=[]),n.key=`${i.key}-${n.title}-${r}-${e}`,i.children.push(n),o.push(n)}return[o[0]]}(t.data):t.data;P([...new Set(function e(t,l=0){let o=t.length-1,r=t[o],n=t[0],i=[];for(let s=0,a=t.length;s<a;s++){let a=t[s],m=s===o;a[E]=void 0,a[F]=void 0,(0===s||m)&&(a[E]=n.key+(1===t.length?"":`>${r.key}`),m&&(a[F]=""),i.push(a[E])),a.children&&(i=i.concat(e(a.children,l+1)))}return i}(e))]),B(e)}),v(()=>{let e=A(),l=t.size||"normal";$(()=>{let t=e.length;if(s&&t){let o=S[l];for(let l=0;l<t;l++){let t=s.querySelectorAll(`li[data-path="${e[l]}"]`);if(t.length){let e=t[0].getBoundingClientRect(),r=e.height/2+o;if(t.length>1){let{bottom:n,height:i,top:s}=t[1].getBoundingClientRect();r=0===l?s-e.top:n-e.top-i/2+o,t[1].style.setProperty("--c","none")}else 0===l&&t[0].style.setProperty("--c","none");(1!==t.length||0!==l)&&t[0].style.setProperty("--line",`${Math.abs(r)}px`)}}}})}),[(()=>{let e=p();return n(e,x,null),n(e,_,null),n(e,()=>w(t.css),null),e})(),(()=>{let p=f(),v=s;return"function"==typeof v?e(v,p):s=p,n(p,()=>(function e(s,p=0){return a(h,{each:s,children:s=>{let{name:a,title:f,subTitle:h,key:v,children:g}=s,y=a!==f&&a?[a,f]:[f];return[(()=>{let e=c();return e.$$dblclick=e=>null==t.onRowDoubleClick?void 0:t.onRowDoubleClick.call(t,e,v,s),e.$$click=e=>{(function(e,l){if(!t.readonly&&b(t.onChange)){let o=[...q()];if(t.multiple){let t=o.indexOf(e);-1===t?o.push(e):o.splice(t,1)}else o=t.toggle&&o[0]===e?[]:[e];t.onChange(t.multiple?o:o[0],l)}})(s.key,s),null==t.onRowClick||t.onRowClick.call(t,e,s.key,s)},n(e,()=>(function(e,l,o){let r=(null==t.renderRow?void 0:t.renderRow.call(t,e,l,o))||[l,o];return D()?r.reverse():r})(s,(()=>{let e=u();return n(e,()=>(D()?y.reverse():y).join(": ")),e})(),h&&(()=>{let e=d();return n(e,h),e})())),i(r=>{let n=j("row",q().includes(v)&&"active",(t.readonly||!b(t.onChange))&&"non"),i=p?{"--depth":`${2*p}em`}:void 0,a=s[F],c=s[E];return n!==r._v$&&m(e,r._v$=n),r._v$2=l(e,i,r._v$2),a!==r._v$3&&o(e,"data-path-end",r._v$3=a),c!==r._v$4&&o(e,"data-path",r._v$4=c),r},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),e})(),r(()=>g?e(g,p+1):null)]}})})(z())),i(()=>m(p,j("tree",t.size,t.class,D()&&"rtl"))),p})()]}s(["click","dblclick"]);
1
+ import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{style as l}from"solid-js/web";import{setAttribute as o}from"solid-js/web";import{insert as r}from"solid-js/web";import{effect as n}from"solid-js/web";import{delegateEvents as i}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as a}from"solid-js/web";let m=t("<li>"),c=t('<span class="title">'),u=t('<span class="sub-title">'),d=t("<style>"),p=t("<ul>");import{For as f,Show as h,createEffect as v,createMemo as g,createSignal as b}from"solid-js";import $ from"@moneko/common/lib/frameCallback";import y from"@moneko/common/lib/isFunction";import k from"@moneko/common/lib/isString";import{css as w,cx as j}from"@moneko/css";import"./register";import{style as _}from"./style";import{FieldName as C}from"../basic-config";import R from"../from-schema";import S from"../theme";export*from"./type";export default function(t){let i;let x={small:6,normal:8,large:10},{baseStyle:A}=S,[P,z]=b([]),[B,D]=b([]),N=g(()=>Object.assign({},C,t.fieldNames)),O=g(()=>"rtl"===t.direction),q=g(()=>void 0!==t.value&&null!==t.value?Array.isArray(t.value)?t.value:[t.value]:[]),E=Symbol("path"),F=Symbol("path-end");return v(()=>{let e=t.fromSchema?R(t.data):k(t.data)?function(e){let t=N(),l=t.key,o=t.title,r=t.children,n=/[^\s|`│├└]/,i=e.trim().split("\n"),s=[{[o]:i[0],[l]:i[0]}];for(let e=1;e<i.length;e++){let t=i[e].search(n);if(-1===t)continue;let a={[o]:i[e].slice(t+3),depth:t};for(;s.length&&t<=(s[s.length-1].depth||0);)s.pop();if(!s.length)return[];let m=s[s.length-1];m[r]||(m[r]=[]),a[l]=`${m[l]}-${a[o]}-${t}-${e}`,m[r].push(a),s.push(a)}return[s[0]]}(t.data):t.data;z([...new Set(function e(t,l=0){let o=t.length-1,r=t[o],n=t[0],i=[],s=N(),a=s.key,m=s.children;for(let s=0,c=t.length;s<c;s++){let c=t[s],u=s===o;c[E]=void 0,c[F]=void 0,(0===s||u)&&(c[E]=n[a]+(1===t.length?"":`>${r[a]}`),u&&(c[F]=""),i.push(c[E])),c[m]&&(i=i.concat(e(c[m],l+1)))}return i}(e))]),D(e)}),v(()=>{let e=P(),l=t.size||"normal";$(()=>{let t=e.length;if(i&&t){let o=x[l];for(let l=0;l<t;l++){let t=i.querySelectorAll(`li[data-path="${e[l]}"]`);if(t.length){let e=t[0].getBoundingClientRect(),r=e.height/2+o;if(t.length>1){let{bottom:n,height:i,top:s}=t[1].getBoundingClientRect();r=0===l?s-e.top:n-e.top-i/2+o,t[1].style.setProperty("--c","none")}else 0===l&&t[0].style.setProperty("--c","none");(1!==t.length||0!==l)&&t[0].style.setProperty("--line",`${Math.abs(r)}px`)}}}})}),[(()=>{let e=d();return r(e,A,null),r(e,_,null),r(e,()=>w(t.css),null),e})(),(()=>{let d=p(),v=i;return"function"==typeof v?e(v,d):i=d,r(d,()=>(function e(i,d=0){return s(f,{each:i,children:i=>{let p=N(),f=i[p.title],v=i[p.key],g=i[p.name],b=i[p.subTitle],$=i[p.children],k=g!==f&&g?[g,f]:[f];return[(()=>{let e=m();return e.$$dblclick=e=>null==t.onRowDoubleClick?void 0:t.onRowDoubleClick.call(t,e,v,i),e.$$click=e=>(function(e,l){let o=N();(function(e,l){if(!t.readonly&&y(t.onChange)){let o=[...q()];if(t.multiple){let t=o.indexOf(e);-1===t?o.push(e):o.splice(t,1)}else o=t.toggle&&o[0]===e?[]:[e];t.onChange(t.multiple?o:o[0],l)}})(l[o.key],l),null==t.onRowClick||t.onRowClick.call(t,e,l[o.key],l)})(e,i),r(e,()=>(function(e,l,o){let r=(null==t.renderRow?void 0:t.renderRow.call(t,e,l,o))||[l,o];return O()?r.reverse():r})(i,(()=>{let e=c();return r(e,()=>(O()?k.reverse():k).join(": ")),e})(),b&&(()=>{let e=u();return r(e,b),e})())),n(r=>{let n=j("row",q().includes(v)&&"active",(t.readonly||!y(t.onChange))&&"non"),s=d?{"--depth":`${2*d}em`}:void 0,m=i[F],c=i[E];return n!==r._v$&&a(e,r._v$=n),r._v$2=l(e,s,r._v$2),m!==r._v$3&&o(e,"data-path-end",r._v$3=m),c!==r._v$4&&o(e,"data-path",r._v$4=c),r},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),e})(),s(h,{when:$,get children(){return e($,d+1)}})]}})})(B())),n(()=>a(d,j("tree",t.size,t.class,O()&&"rtl"))),d})()]}i(["click","dblclick"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/tree/index.tsx"],"sourcesContent":["import { For, createEffect, createMemo, createSignal } from 'solid-js';\nimport { frameCallback, isFunction, isString } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport './register';\nimport { style } from './style';\nimport schema from '../from-schema';\nimport theme from '../theme';\nimport type {\n TreeData,\n TreeMultipleProps,\n TreeMultipleSchemaProps,\n TreeMultipleStringProps,\n TreeProps,\n TreeSchemaProps,\n TreeStack,\n TreeStringProps,\n} from './type';\n\nfunction Tree(\n _:\n | TreeProps\n | TreeMultipleProps\n | TreeMultipleSchemaProps\n | TreeSchemaProps\n | TreeMultipleStringProps\n | TreeStringProps,\n) {\n const sizeCnt = {\n small: 6,\n normal: 8,\n large: 10,\n };\n const { baseStyle } = theme;\n let el: HTMLUListElement | undefined;\n const [lines, setLines] = createSignal<string[]>([]);\n const [treeData, setTreeData] = createSignal<TreeData[]>([]);\n const rtl = createMemo(() => _.direction === 'rtl');\n const current = createMemo(() => {\n if (_.value !== void 0 && _.value !== null) {\n return Array.isArray(_.value) ? _.value : [_.value];\n }\n return [];\n });\n const path = Symbol('path');\n const pathEnd = Symbol('path-end');\n\n function countLineLen(tree: TreeData[], depth = 0) {\n const lastIdx = tree.length - 1;\n const last = tree[lastIdx];\n const frist = tree[0];\n let line: string[] = [];\n\n for (let i = 0, len = tree.length; i < len; i++) {\n const item = tree[i],\n isLast = i === lastIdx;\n\n item[path] = void 0;\n item[pathEnd] = void 0;\n if (i === 0 || isLast) {\n item[path] = frist.key + (tree.length === 1 ? '' : `>${last.key}`);\n if (isLast) {\n item[pathEnd] = '';\n }\n line.push(item[path]);\n }\n if (item.children) {\n line = line.concat(countLineLen(item.children, depth + 1));\n }\n }\n return line;\n }\n\n function parseTree(str: string): TreeData[] {\n const depthRegex = /[^\\s|`│├└]/;\n const rows = str.trim().split('\\n');\n const stack: TreeStack[] = [{ title: rows[0], key: rows[0] }];\n\n for (let i = 1; i < rows.length; i++) {\n const depth = rows[i].search(depthRegex);\n\n if (depth === -1) {\n continue;\n }\n const node: Partial<TreeData> = {\n title: rows[i].slice(depth + 3),\n depth,\n };\n\n while (stack.length && depth <= (stack[stack.length - 1].depth || 0)) {\n stack.pop();\n }\n if (!stack.length) {\n return [];\n }\n const parent = stack[stack.length - 1];\n\n if (!parent.children) {\n parent.children = [];\n }\n node.key = `${parent.key}-${node.title}-${depth}-${i}`;\n parent.children.push(node as TreeData);\n stack.push(node as TreeData);\n }\n\n return [stack[0]];\n }\n\n function handleChange(key: string, item: TreeData) {\n if (!_.readonly && isFunction(_.onChange)) {\n let _current = [...current()];\n\n if (_.multiple) {\n const idx = _current.indexOf(key);\n\n if (idx === -1) {\n _current.push(key);\n } else {\n _current.splice(idx, 1);\n }\n } else if (_.toggle && _current[0] === key) {\n _current = [];\n } else {\n _current = [key];\n }\n _.onChange(_.multiple ? _current : _current[0], item);\n }\n }\n function handleClick(e: MouseEvent, item: TreeData) {\n handleChange(item.key, item);\n _.onRowClick?.(e, item.key as never, item as TreeData<never>);\n }\n function renderItem(item: TreeData, title: JSX.Element, subTitle?: JSX.Element): JSX.Element[] {\n const row = _.renderRow?.(item, title, subTitle) || [title, subTitle];\n\n return rtl() ? row.reverse() : row;\n }\n\n function renderTreeRow(list: TreeData[], depth = 0): JSX.Element {\n return (\n <For each={list}>\n {(item) => {\n const { name, title, subTitle, key, children } = item;\n const _title = name === title || !name ? [title] : [name, title];\n\n return (\n <>\n <li\n class={cx(\n 'row',\n current().includes(key) && 'active',\n (_.readonly || !isFunction(_.onChange)) && 'non',\n )}\n onClick={(e) => handleClick(e, item)}\n onDblClick={(e) => _.onRowDoubleClick?.(e, key, item)}\n style={depth ? { '--depth': `${depth * 2}em` } : void 0}\n data-path-end={item[pathEnd]}\n data-path={item[path]}\n >\n {renderItem(\n item,\n <span class=\"title\">{(rtl() ? _title.reverse() : _title).join(': ')}</span>,\n subTitle && <span class=\"sub-title\">{subTitle}</span>,\n )}\n </li>\n {children ? renderTreeRow(children, depth + 1) : null}\n </>\n );\n }}\n </For>\n );\n }\n createEffect(() => {\n const data = _.fromSchema ? schema(_.data) : isString(_.data) ? parseTree(_.data) : _.data;\n\n setLines([...new Set(countLineLen(data))]);\n setTreeData(data);\n });\n\n createEffect(() => {\n const list = lines();\n const size = _.size || 'normal';\n\n frameCallback(() => {\n const len = list.length;\n\n if (el && len) {\n const prefixSize = sizeCnt[size];\n\n for (let i = 0; i < len; i++) {\n const al: NodeListOf<HTMLLIElement> = el.querySelectorAll(`li[data-path=\"${list[i]}\"]`);\n\n if (al.length) {\n const rect1 = al[0].getBoundingClientRect();\n let sideLen = rect1.height / 2 + prefixSize;\n\n if (al.length > 1) {\n const { bottom, height, top } = al[1].getBoundingClientRect();\n\n sideLen = i === 0 ? top - rect1.top : bottom - rect1.top - height / 2 + prefixSize;\n al[1].style.setProperty('--c', 'none');\n } else if (i === 0) {\n al[0].style.setProperty('--c', 'none');\n }\n if (al.length !== 1 || i !== 0) {\n al[0].style.setProperty('--line', `${Math.abs(sideLen)}px`);\n }\n }\n }\n }\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(_.css)}\n </style>\n <ul ref={el} class={cx('tree', _.size, _.class, rtl() && 'rtl')}>\n {renderTreeRow(treeData())}\n </ul>\n </>\n );\n}\n\nexport * from './type';\nexport default Tree;\n"],"names":["For","createEffect","createMemo","createSignal","frameCallback","isFunction","isString","css","cx","style","schema","theme","_","el","sizeCnt","small","normal","large","baseStyle","lines","setLines","treeData","setTreeData","rtl","direction","current","value","Array","isArray","path","Symbol","pathEnd","data","fromSchema","parseTree","str","depthRegex","rows","trim","split","stack","title","key","i","length","depth","search","node","slice","pop","parent","children","push","Set","countLineLen","tree","lastIdx","last","frist","line","len","item","isLast","concat","list","size","prefixSize","al","querySelectorAll","rect1","getBoundingClientRect","sideLen","height","bottom","top","setProperty","Math","abs","renderTreeRow","name","subTitle","_title","e","onRowDoubleClick","handleChange","readonly","onChange","_current","multiple","idx","indexOf","splice","toggle","onRowClick","renderItem","row","renderRow","reverse","join","includes","class"],"rangeMappings":"","mappings":"wfAAA,QAASA,OAAAA,CAAG,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,CAAEC,gBAAAA,CAAY,KAAQ,UAAW,AACvE,QAASC,MAA2C,kCAAiB,AAArE,QAAwBC,MAA4B,+BAAiB,AAArE,QAAoCC,MAAgB,6BAAiB,AACrE,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,OAAO,YAAa,AACpB,QAASC,SAAAA,CAAK,KAAQ,SAAU,AAChC,QAAOC,MAAY,gBAAiB,AACpC,QAAOC,MAAW,UAAW,AA4N7B,YAAc,QAAS,AACvB,gBAjNA,SACEC,CAMmB,MAQfC,EANJ,IAAMC,EAAU,CACdC,MAAO,EACPC,OAAQ,EACRC,MAAO,EACT,EACM,CAAEC,UAAAA,CAAS,CAAE,CAAGP,EAEhB,CAACQ,EAAOC,EAAS,CAAGjB,EAAuB,EAAE,EAC7C,CAACkB,EAAUC,EAAY,CAAGnB,EAAyB,EAAE,EACrDoB,EAAMrB,EAAW,IAAMU,AAAgB,QAAhBA,EAAEY,SAAS,EAClCC,EAAUvB,EAAW,IACzB,AAAIU,AAAY,KAAK,IAAjBA,EAAEc,KAAK,EAAed,AAAY,OAAZA,EAAEc,KAAK,CACxBC,MAAMC,OAAO,CAAChB,EAAEc,KAAK,EAAId,EAAEc,KAAK,CAAG,CAACd,EAAEc,KAAK,CAAC,CAE9C,EAAE,EAELG,EAAOC,OAAO,QACdC,EAAUD,OAAO,YAwKvB,OAzCA7B,EAAa,KACX,IAAM+B,EAAOpB,EAAEqB,UAAU,CAAGvB,EAAOE,EAAEoB,IAAI,EAAI1B,EAASM,EAAEoB,IAAI,EAAIE,AApGlE,SAAmBC,CAAW,EAC5B,IAAMC,EAAa,aACbC,EAAOF,EAAIG,IAAI,GAAGC,KAAK,CAAC,MACxBC,EAAqB,CAAC,CAAEC,MAAOJ,CAAI,CAAC,EAAE,CAAEK,IAAKL,CAAI,CAAC,EAAE,AAAC,EAAE,CAE7D,IAAK,IAAIM,EAAI,EAAGA,EAAIN,EAAKO,MAAM,CAAED,IAAK,CACpC,IAAME,EAAQR,CAAI,CAACM,EAAE,CAACG,MAAM,CAACV,GAE7B,GAAIS,AAAU,KAAVA,EACF,SAEF,IAAME,EAA0B,CAC9BN,MAAOJ,CAAI,CAACM,EAAE,CAACK,KAAK,CAACH,EAAQ,GAC7BA,MAAAA,CACF,EAEA,KAAOL,EAAMI,MAAM,EAAIC,GAAUL,CAAAA,CAAK,CAACA,EAAMI,MAAM,CAAG,EAAE,CAACC,KAAK,EAAI,CAAA,GAChEL,EAAMS,GAAG,GAEX,GAAI,CAACT,EAAMI,MAAM,CACf,MAAO,EAAE,CAEX,IAAMM,EAASV,CAAK,CAACA,EAAMI,MAAM,CAAG,EAAE,AAEjCM,CAAAA,EAAOC,QAAQ,EAClBD,CAAAA,EAAOC,QAAQ,CAAG,EAAE,AAAD,EAErBJ,EAAKL,GAAG,CAAG,CAAC,EAAEQ,EAAOR,GAAG,CAAC,CAAC,EAAEK,EAAKN,KAAK,CAAC,CAAC,EAAEI,EAAM,CAAC,EAAEF,EAAE,CAAC,CACtDO,EAAOC,QAAQ,CAACC,IAAI,CAACL,GACrBP,EAAMY,IAAI,CAACL,EACb,CAEA,MAAO,CAACP,CAAK,CAAC,EAAE,CAAC,AACnB,EAmE4E5B,EAAEoB,IAAI,EAAIpB,EAAEoB,IAAI,CAE1FZ,EAAS,IAAI,IAAIiC,IAAIC,AAhIvB,SAASA,EAAaC,CAAgB,CAAEV,EAAQ,CAAC,EAC/C,IAAMW,EAAUD,EAAKX,MAAM,CAAG,EACxBa,EAAOF,CAAI,CAACC,EAAQ,CACpBE,EAAQH,CAAI,CAAC,EAAE,CACjBI,EAAiB,EAAE,CAEvB,IAAK,IAAIhB,EAAI,EAAGiB,EAAML,EAAKX,MAAM,CAAED,EAAIiB,EAAKjB,IAAK,CAC/C,IAAMkB,EAAON,CAAI,CAACZ,EAAE,CAClBmB,EAASnB,IAAMa,CAEjBK,CAAAA,CAAI,CAAChC,EAAK,CAAG,KAAK,EAClBgC,CAAI,CAAC9B,EAAQ,CAAG,KAAK,EACjBY,CAAAA,AAAM,IAANA,GAAWmB,CAAK,IAClBD,CAAI,CAAChC,EAAK,CAAG6B,EAAMhB,GAAG,CAAIa,CAAAA,AAAgB,IAAhBA,EAAKX,MAAM,CAAS,GAAK,CAAC,CAAC,EAAEa,EAAKf,GAAG,CAAC,CAAC,AAAD,EAC5DoB,GACFD,CAAAA,CAAI,CAAC9B,EAAQ,CAAG,EAAC,EAEnB4B,EAAKP,IAAI,CAACS,CAAI,CAAChC,EAAK,GAElBgC,EAAKV,QAAQ,EACfQ,CAAAA,EAAOA,EAAKI,MAAM,CAACT,EAAaO,EAAKV,QAAQ,CAAEN,EAAQ,GAAE,CAE7D,CACA,OAAOc,CACT,EAwGoC3B,IAAO,EACzCV,EAAYU,EACd,GAEA/B,EAAa,KACX,IAAM+D,EAAO7C,IACP8C,EAAOrD,EAAEqD,IAAI,EAAI,SAEvB7D,EAAc,KACZ,IAAMwD,EAAMI,EAAKpB,MAAM,CAEvB,GAAI/B,GAAM+C,EAAK,CACb,IAAMM,EAAapD,CAAO,CAACmD,EAAK,CAEhC,IAAK,IAAItB,EAAI,EAAGA,EAAIiB,EAAKjB,IAAK,CAC5B,IAAMwB,EAAgCtD,EAAGuD,gBAAgB,CAAC,CAAC,cAAc,EAAEJ,CAAI,CAACrB,EAAE,CAAC,EAAE,CAAC,EAEtF,GAAIwB,EAAGvB,MAAM,CAAE,CACb,IAAMyB,EAAQF,CAAE,CAAC,EAAE,CAACG,qBAAqB,GACrCC,EAAUF,EAAMG,MAAM,CAAG,EAAIN,EAEjC,GAAIC,EAAGvB,MAAM,CAAG,EAAG,CACjB,GAAM,CAAE6B,OAAAA,CAAM,CAAED,OAAAA,CAAM,CAAEE,IAAAA,CAAG,CAAE,CAAGP,CAAE,CAAC,EAAE,CAACG,qBAAqB,GAE3DC,EAAU5B,AAAM,IAANA,EAAU+B,EAAML,EAAMK,GAAG,CAAGD,EAASJ,EAAMK,GAAG,CAAGF,EAAS,EAAIN,EACxEC,CAAE,CAAC,EAAE,CAAC1D,KAAK,CAACkE,WAAW,CAAC,MAAO,OACjC,MAAiB,IAANhC,GACTwB,CAAE,CAAC,EAAE,CAAC1D,KAAK,CAACkE,WAAW,CAAC,MAAO,QAE7BR,CAAAA,AAAc,IAAdA,EAAGvB,MAAM,EAAUD,AAAM,IAANA,CAAM,GAC3BwB,CAAE,CAAC,EAAE,CAAC1D,KAAK,CAACkE,WAAW,CAAC,SAAU,CAAC,EAAEC,KAAKC,GAAG,CAACN,GAAS,EAAE,CAAC,CAE9D,CACF,CACF,CACF,EACF,+BAKOrD,YACAT,gBACAF,EAAIK,EAAEL,GAAG,gCAEHM,oCAAAA,YACNiE,AAnFP,CAAA,SAASA,EAAcd,CAAgB,CAAEnB,EAAQ,CAAC,EAChD,SACG7C,QAAUgE,WACR,AAACH,IACA,GAAM,CAAEkB,KAAAA,CAAI,CAAEtC,MAAAA,CAAK,CAAEuC,SAAAA,CAAQ,CAAEtC,IAAAA,CAAG,CAAES,SAAAA,CAAQ,CAAE,CAAGU,EAC3CoB,EAASF,IAAStC,GAAUsC,EAAiB,CAACA,EAAMtC,EAAM,CAAvB,CAACA,EAAM,CAEhD,2CASkB,AAACyC,SAAMtE,EAAEuE,gBAAgB,QAAlBvE,EAAEuE,gBAAgB,MAAlBvE,EAAqBsE,EAAGxC,EAAKmB,aADvC,AAACqB,IAxBtBE,AArBF,CAAA,SAAsB1C,CAAW,CAAEmB,CAAc,EAC/C,GAAI,CAACjD,EAAEyE,QAAQ,EAAIhF,EAAWO,EAAE0E,QAAQ,EAAG,CACzC,IAAIC,EAAW,IAAI9D,IAAU,CAE7B,GAAIb,EAAE4E,QAAQ,CAAE,CACd,IAAMC,EAAMF,EAASG,OAAO,CAAChD,EAEzB+C,AAAQ,CAAA,KAARA,EACFF,EAASnC,IAAI,CAACV,GAEd6C,EAASI,MAAM,CAACF,EAAK,EAEzB,MACEF,EADS3E,EAAEgF,MAAM,EAAIL,CAAQ,CAAC,EAAE,GAAK7C,EAC1B,EAAE,CAEF,CAACA,EAAI,CAElB9B,EAAE0E,QAAQ,CAAC1E,EAAE4E,QAAQ,CAAGD,EAAWA,CAAQ,CAAC,EAAE,CAAE1B,EAClD,CACF,CAAA,EAEeA,AAwB8BA,EAxBzBnB,GAAG,CAwBsBmB,SAvB3CjD,EAAEiF,UAAU,EAAZjF,EAAEiF,UAAU,MAAZjF,EAuBwCsE,EAvBtBrB,AAuByBA,EAvBpBnB,GAAG,CAuBiBmB,YAM9BiC,AA3Bf,CAAA,SAAoBjC,CAAc,CAAEpB,CAAkB,CAAEuC,CAAsB,EAC5E,IAAMe,EAAMnF,OAAAA,EAAEoF,SAAS,QAAXpF,EAAEoF,SAAS,MAAXpF,EAAciD,EAAMpB,EAAOuC,KAAa,CAACvC,EAAOuC,EAAS,CAErE,OAAOzD,IAAQwE,EAAIE,OAAO,GAAKF,CACjC,CAAA,EAwBgBlC,iCACqB,AAACtC,CAAAA,IAAQ0D,EAAOgB,OAAO,GAAKhB,CAAK,EAAGiB,IAAI,CAAC,aAC9DlB,8BAAqCA,uBAdhCxE,EACL,MACAiB,IAAU0E,QAAQ,CAACzD,IAAQ,SAC3B,AAAC9B,CAAAA,EAAEyE,QAAQ,EAAI,CAAChF,EAAWO,EAAE0E,QAAQ,CAAA,GAAM,SAItCzC,EAAQ,CAAE,UAAW,CAAC,EAAEA,AAAQ,EAARA,EAAU,EAAE,CAAC,AAAC,EAAI,KAAK,IACvCgB,CAAI,CAAC9B,EAAQ,GACjB8B,CAAI,CAAChC,EAAK,sMAQtBsB,EAAW2B,EAAc3B,EAAUN,EAAQ,GAAK,MAGvD,GAGN,CAAA,EAkDqBxB,gBADGb,EAAG,OAAQI,EAAEqD,IAAI,CAAErD,EAAEwF,KAAK,CAAE7E,KAAS,eAK/D"}
1
+ {"version":3,"sources":["../../components/tree/index.tsx"],"sourcesContent":["import { For, Show, createEffect, createMemo, createSignal } from 'solid-js';\nimport { frameCallback, isFunction, isString } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport './register';\nimport { style } from './style';\nimport { FieldName } from '../basic-config';\nimport schema from '../from-schema';\nimport theme from '../theme';\nimport type {\n TreeData,\n TreeMultipleProps,\n TreeMultipleSchemaProps,\n TreeMultipleStringProps,\n TreeProps,\n TreeSchemaProps,\n TreeStack,\n TreeStringProps,\n} from './type';\n\nfunction Tree(\n _:\n | TreeProps\n | TreeMultipleProps\n | TreeMultipleSchemaProps\n | TreeSchemaProps\n | TreeMultipleStringProps\n | TreeStringProps,\n) {\n const sizeCnt = {\n small: 6,\n normal: 8,\n large: 10,\n };\n const { baseStyle } = theme;\n let el: HTMLUListElement | undefined;\n const [lines, setLines] = createSignal<string[]>([]);\n const [treeData, setTreeData] = createSignal<TreeData[]>([]);\n const fieldNames = createMemo(() => Object.assign({}, FieldName, _.fieldNames));\n const rtl = createMemo(() => _.direction === 'rtl');\n const current = createMemo(() => {\n if (_.value !== void 0 && _.value !== null) {\n return Array.isArray(_.value) ? _.value : [_.value];\n }\n return [];\n });\n const path = Symbol('path');\n const pathEnd = Symbol('path-end');\n\n function countLineLen(tree: TreeData[], depth = 0) {\n const lastIdx = tree.length - 1;\n const last = tree[lastIdx];\n const frist = tree[0];\n let line: string[] = [];\n const fields = fieldNames();\n const key = fields.key;\n const children = fields.children;\n\n for (let i = 0, len = tree.length; i < len; i++) {\n const item = tree[i],\n isLast = i === lastIdx;\n\n item[path] = void 0;\n item[pathEnd] = void 0;\n if (i === 0 || isLast) {\n item[path] = frist[key] + (tree.length === 1 ? '' : `>${last[key]}`);\n if (isLast) {\n item[pathEnd] = '';\n }\n line.push(item[path]);\n }\n if (item[children]) {\n line = line.concat(countLineLen(item[children]!, depth + 1));\n }\n }\n return line;\n }\n\n function parseTree(str: string): TreeData[] {\n const fields = fieldNames();\n const key = fields.key as 'key';\n const title = fields.title as 'title';\n const children = fields.children as 'children';\n const depthRegex = /[^\\s|`│├└]/;\n const rows = str.trim().split('\\n');\n const stack: TreeStack[] = [{ [title]: rows[0], [key]: rows[0] }];\n\n for (let i = 1; i < rows.length; i++) {\n const depth = rows[i].search(depthRegex);\n\n if (depth === -1) {\n continue;\n }\n const node: Partial<TreeData> = {\n [title]: rows[i].slice(depth + 3),\n depth,\n };\n\n while (stack.length && depth <= (stack[stack.length - 1].depth || 0)) {\n stack.pop();\n }\n if (!stack.length) {\n return [];\n }\n const parent = stack[stack.length - 1];\n\n if (!parent[children]) {\n parent[children] = [];\n }\n node[key] = `${parent[key]}-${node[title]}-${depth}-${i}`;\n parent[children].push(node as TreeData);\n stack.push(node as TreeData);\n }\n\n return [stack[0]];\n }\n\n function handleChange(key: string, item: TreeData) {\n if (!_.readonly && isFunction(_.onChange)) {\n let _current = [...current()];\n\n if (_.multiple) {\n const idx = _current.indexOf(key);\n\n if (idx === -1) {\n _current.push(key);\n } else {\n _current.splice(idx, 1);\n }\n } else if (_.toggle && _current[0] === key) {\n _current = [];\n } else {\n _current = [key];\n }\n _.onChange(_.multiple ? _current : _current[0], item);\n }\n }\n function handleClick(e: MouseEvent, item: TreeData) {\n const fields = fieldNames();\n\n handleChange(item[fields.key], item);\n _.onRowClick?.(e, item[fields.key] as never, item as TreeData<never>);\n }\n function renderItem(item: TreeData, title: JSX.Element, subTitle?: JSX.Element): JSX.Element[] {\n const row = _.renderRow?.(item, title, subTitle) || [title, subTitle];\n\n return rtl() ? row.reverse() : row;\n }\n\n function renderTreeRow(list: TreeData[], depth = 0): JSX.Element {\n return (\n <For each={list}>\n {(item) => {\n const fields = fieldNames();\n const title = item[fields.title];\n const key = item[fields.key];\n const name = item[fields.name];\n const subTitle = item[fields.subTitle];\n const children = item[fields.children];\n const _title = name === title || !name ? [title] : [name, title];\n\n return (\n <>\n <li\n class={cx(\n 'row',\n current().includes(key) && 'active',\n (_.readonly || !isFunction(_.onChange)) && 'non',\n )}\n onClick={(e) => handleClick(e, item)}\n onDblClick={(e) => _.onRowDoubleClick?.(e, key, item)}\n style={depth ? { '--depth': `${depth * 2}em` } : void 0}\n data-path-end={item[pathEnd]}\n data-path={item[path]}\n >\n {renderItem(\n item,\n <span class=\"title\">{(rtl() ? _title.reverse() : _title).join(': ')}</span>,\n subTitle && <span class=\"sub-title\">{subTitle}</span>,\n )}\n </li>\n <Show when={children}>{renderTreeRow(children!, depth + 1)}</Show>\n </>\n );\n }}\n </For>\n );\n }\n createEffect(() => {\n const data = _.fromSchema ? schema(_.data) : isString(_.data) ? parseTree(_.data) : _.data;\n\n setLines([...new Set(countLineLen(data))]);\n setTreeData(data);\n });\n\n createEffect(() => {\n const list = lines();\n const size = _.size || 'normal';\n\n frameCallback(() => {\n const len = list.length;\n\n if (el && len) {\n const prefixSize = sizeCnt[size];\n\n for (let i = 0; i < len; i++) {\n const al: NodeListOf<HTMLLIElement> = el.querySelectorAll(`li[data-path=\"${list[i]}\"]`);\n\n if (al.length) {\n const rect1 = al[0].getBoundingClientRect();\n let sideLen = rect1.height / 2 + prefixSize;\n\n if (al.length > 1) {\n const { bottom, height, top } = al[1].getBoundingClientRect();\n\n sideLen = i === 0 ? top - rect1.top : bottom - rect1.top - height / 2 + prefixSize;\n al[1].style.setProperty('--c', 'none');\n } else if (i === 0) {\n al[0].style.setProperty('--c', 'none');\n }\n if (al.length !== 1 || i !== 0) {\n al[0].style.setProperty('--line', `${Math.abs(sideLen)}px`);\n }\n }\n }\n }\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(_.css)}\n </style>\n <ul ref={el} class={cx('tree', _.size, _.class, rtl() && 'rtl')}>\n {renderTreeRow(treeData())}\n </ul>\n </>\n );\n}\n\nexport * from './type';\nexport default Tree;\n"],"names":["For","Show","createEffect","createMemo","createSignal","frameCallback","isFunction","isString","css","cx","style","FieldName","schema","theme","_","el","sizeCnt","small","normal","large","baseStyle","lines","setLines","treeData","setTreeData","fieldNames","Object","assign","rtl","direction","current","value","Array","isArray","path","Symbol","pathEnd","data","fromSchema","parseTree","str","fields","key","title","children","depthRegex","rows","trim","split","stack","i","length","depth","search","node","slice","pop","parent","push","Set","countLineLen","tree","lastIdx","last","frist","line","len","item","isLast","concat","list","size","prefixSize","al","querySelectorAll","rect1","getBoundingClientRect","sideLen","height","bottom","top","setProperty","Math","abs","renderTreeRow","name","subTitle","_title","e","onRowDoubleClick","handleClick","handleChange","readonly","onChange","_current","multiple","idx","indexOf","splice","toggle","onRowClick","renderItem","row","renderRow","reverse","join","includes","class"],"rangeMappings":"","mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createComponent as e,createEffect as o,mergeProps as i}from"solid-js";import{customElement as t}from"solid-element";import d from"./index";t("n-tree",{fromSchema:void 0,size:void 0,data:[],multiple:void 0,value:void 0,onChange:void 0,class:void 0,css:void 0,readonly:void 0,toggle:void 0,direction:void 0,onRowClick:void 0,onRowDoubleClick:void 0,renderRow:void 0},(t,l)=>{let n=l.element,a=i({data:n.data,value:n.value,multiple:n.multiple,fromSchema:n.fromSchema,size:n.size,css:n.css,readonly:n.readonly,toggle:n.toggle,direction:n.direction,onChange(e,o){n.dispatchEvent(new CustomEvent("change",{detail:[e,o]}))},onRowClick(e,o,i){n.dispatchEvent(new CustomEvent("rowclick",{detail:[e,o,i]}))},onRowDoubleClick(e,o,i){n.dispatchEvent(new CustomEvent("rowdoubleclick",{detail:[e,o,i]}))}},t);return o(()=>{n.removeAttribute("css"),n.removeAttribute("data")}),e(d,a)});
1
+ import{createComponent as e,createEffect as o,mergeProps as i}from"solid-js";import{customElement as t}from"solid-element";import d from"./index";t("n-tree",{fieldNames:{},fromSchema:void 0,size:void 0,data:[],multiple:void 0,value:void 0,onChange:void 0,class:void 0,css:void 0,readonly:void 0,toggle:void 0,direction:void 0,onRowClick:void 0,onRowDoubleClick:void 0,renderRow:void 0},(t,l)=>{let n=l.element,a=i({data:n.data,value:n.value,multiple:n.multiple,fromSchema:n.fromSchema,size:n.size,css:n.css,readonly:n.readonly,toggle:n.toggle,direction:n.direction,onChange(e,o){n.dispatchEvent(new CustomEvent("change",{detail:[e,o]}))},onRowClick(e,o,i){n.dispatchEvent(new CustomEvent("rowclick",{detail:[e,o,i]}))},onRowDoubleClick(e,o,i){n.dispatchEvent(new CustomEvent("rowdoubleclick",{detail:[e,o,i]}))}},t);return o(()=>{n.removeAttribute("css"),n.removeAttribute("field-names"),n.removeAttribute("data")}),e(d,a)});
2
2
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/tree/register.ts"],"sourcesContent":["import { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { customElement } from 'solid-element';\nimport Tree from './index';\nimport type { TreeData, TreeProps } from './type';\n\ncustomElement<TreeProps>(\n 'n-tree',\n {\n fromSchema: void 0,\n size: void 0,\n data: [],\n multiple: void 0,\n value: void 0,\n onChange: void 0,\n class: void 0,\n css: void 0,\n readonly: void 0,\n toggle: void 0,\n direction: void 0,\n onRowClick: void 0,\n onRowDoubleClick: void 0,\n renderRow: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n data: el.data,\n value: el.value,\n multiple: el.multiple,\n fromSchema: el.fromSchema,\n size: el.size,\n css: el.css,\n readonly: el.readonly,\n toggle: el.toggle,\n direction: el.direction,\n onChange(key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onRowClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowclick', {\n detail: [e, key, item],\n }),\n );\n },\n onRowDoubleClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowdoubleclick', {\n detail: [e, key, item],\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.removeAttribute('data');\n });\n return createComponent(Tree, props);\n },\n);\n"],"names":["createComponent","createEffect","mergeProps","customElement","Tree","fromSchema","size","data","multiple","value","onChange","class","css","readonly","toggle","direction","onRowClick","onRowDoubleClick","renderRow","_","opt","el","element","props","key","item","dispatchEvent","CustomEvent","detail","e","removeAttribute"],"rangeMappings":"","mappings":"AAAA,OAASA,mBAAAA,CAAe,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AACrE,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAAOC,MAAU,SAAU,CAG3BD,EACE,SACA,CACEE,WAAY,KAAK,EACjBC,KAAM,KAAK,EACXC,KAAM,EAAE,CACRC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,IAAK,KAAK,EACVC,SAAU,KAAK,EACfC,OAAQ,KAAK,EACbC,UAAW,KAAK,EAChBC,WAAY,KAAK,EACjBC,iBAAkB,KAAK,EACvBC,UAAW,KAAK,CAClB,EACA,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBC,EAAQrB,EACZ,CACEK,KAAMc,EAAGd,IAAI,CACbE,MAAOY,EAAGZ,KAAK,CACfD,SAAUa,EAAGb,QAAQ,CACrBH,WAAYgB,EAAGhB,UAAU,CACzBC,KAAMe,EAAGf,IAAI,CACbM,IAAKS,EAAGT,GAAG,CACXC,SAAUQ,EAAGR,QAAQ,CACrBC,OAAQO,EAAGP,MAAM,CACjBC,UAAWM,EAAGN,SAAS,CACvBL,SAASc,CAAW,CAAEC,CAAc,EAClCJ,EAAGK,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQ,CAACJ,EAAKC,EAAK,AACrB,GAEJ,EACAT,WAAWa,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACnDJ,EAAGK,aAAa,CACd,IAAIC,YAAY,WAAY,CAC1BC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,EACAR,iBAAiBY,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACzDJ,EAAGK,aAAa,CACd,IAAIC,YAAY,iBAAkB,CAChCC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,CACF,EACAN,GAOF,OAJAlB,EAAa,KACXoB,EAAGS,eAAe,CAAC,OACnBT,EAAGS,eAAe,CAAC,OACrB,GACO9B,EAAgBI,EAAMmB,EAC/B"}
1
+ {"version":3,"sources":["../../components/tree/register.ts"],"sourcesContent":["import { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { customElement } from 'solid-element';\nimport Tree from './index';\nimport type { TreeData, TreeProps } from './type';\n\ncustomElement<TreeProps>(\n 'n-tree',\n {\n fieldNames: {},\n fromSchema: void 0,\n size: void 0,\n data: [],\n multiple: void 0,\n value: void 0,\n onChange: void 0,\n class: void 0,\n css: void 0,\n readonly: void 0,\n toggle: void 0,\n direction: void 0,\n onRowClick: void 0,\n onRowDoubleClick: void 0,\n renderRow: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n data: el.data,\n value: el.value,\n multiple: el.multiple,\n fromSchema: el.fromSchema,\n size: el.size,\n css: el.css,\n readonly: el.readonly,\n toggle: el.toggle,\n direction: el.direction,\n onChange(key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onRowClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowclick', {\n detail: [e, key, item],\n }),\n );\n },\n onRowDoubleClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowdoubleclick', {\n detail: [e, key, item],\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.removeAttribute('field-names');\n el.removeAttribute('data');\n });\n return createComponent(Tree, props);\n },\n);\n"],"names":["createComponent","createEffect","mergeProps","customElement","Tree","fieldNames","fromSchema","size","data","multiple","value","onChange","class","css","readonly","toggle","direction","onRowClick","onRowDoubleClick","renderRow","_","opt","el","element","props","key","item","dispatchEvent","CustomEvent","detail","e","removeAttribute"],"rangeMappings":"","mappings":"AAAA,OAASA,mBAAAA,CAAe,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AACrE,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAAOC,MAAU,SAAU,CAG3BD,EACE,SACA,CACEE,WAAY,CAAC,EACbC,WAAY,KAAK,EACjBC,KAAM,KAAK,EACXC,KAAM,EAAE,CACRC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,IAAK,KAAK,EACVC,SAAU,KAAK,EACfC,OAAQ,KAAK,EACbC,UAAW,KAAK,EAChBC,WAAY,KAAK,EACjBC,iBAAkB,KAAK,EACvBC,UAAW,KAAK,CAClB,EACA,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBC,EAAQtB,EACZ,CACEM,KAAMc,EAAGd,IAAI,CACbE,MAAOY,EAAGZ,KAAK,CACfD,SAAUa,EAAGb,QAAQ,CACrBH,WAAYgB,EAAGhB,UAAU,CACzBC,KAAMe,EAAGf,IAAI,CACbM,IAAKS,EAAGT,GAAG,CACXC,SAAUQ,EAAGR,QAAQ,CACrBC,OAAQO,EAAGP,MAAM,CACjBC,UAAWM,EAAGN,SAAS,CACvBL,SAASc,CAAW,CAAEC,CAAc,EAClCJ,EAAGK,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQ,CAACJ,EAAKC,EAAK,AACrB,GAEJ,EACAT,WAAWa,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACnDJ,EAAGK,aAAa,CACd,IAAIC,YAAY,WAAY,CAC1BC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,EACAR,iBAAiBY,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACzDJ,EAAGK,aAAa,CACd,IAAIC,YAAY,iBAAkB,CAChCC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,CACF,EACAN,GAQF,OALAnB,EAAa,KACXqB,EAAGS,eAAe,CAAC,OACnBT,EAAGS,eAAe,CAAC,eACnBT,EAAGS,eAAe,CAAC,OACrB,GACO/B,EAAgBI,EAAMoB,EAC/B"}
package/es/tree/type.d.ts CHANGED
@@ -27,6 +27,8 @@ export interface TreeBaseProp {
27
27
  * @default false
28
28
  */
29
29
  fromSchema?: false;
30
+ /** 自定义节点字段 */
31
+ fieldNames?: BasicConfig['fieldName'];
30
32
  }
31
33
  interface TreeBaseProps extends TreeBaseProp {
32
34
  /** 选中的值, 多选模式时为数组 */
@@ -67,5 +67,13 @@ export declare enum FieldName {
67
67
  /** 图标 */
68
68
  icon = "icon",
69
69
  /** 后缀图标 */
70
- suffix = "suffix"
70
+ suffix = "suffix",
71
+ /** 标题 */
72
+ title = "title",
73
+ /** 副标题 */
74
+ subTitle = "subTitle",
75
+ /** 键 */
76
+ key = "key",
77
+ /** 名称 */
78
+ name = "name"
71
79
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r,e,n,i,o,a;Object.defineProperty(exports,"__esModule",{value:!0}),function(r,e){for(var n in e)Object.defineProperty(r,n,{enumerable:!0,get:e[n]})}(exports,{FieldName:function(){return n},Size:function(){return r},Status:function(){return e}}),(i=r||(r={})).small="small",i.normal="normal",i.large="large",(o=e||(e={})).normal="normal",o.success="success",o.warning="warning",o.error="error",o.info="info",o.primary="primary",(a=n||(n={})).label="label",a.value="value",a.options="options",a.children="children",a.icon="icon",a.suffix="suffix";
1
+ "use strict";var e,r,n,i,l,t;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var n in r)Object.defineProperty(e,n,{enumerable:!0,get:r[n]})}(exports,{FieldName:function(){return n},Size:function(){return e},Status:function(){return r}}),(i=e||(e={})).small="small",i.normal="normal",i.large="large",(l=r||(r={})).normal="normal",l.success="success",l.warning="warning",l.error="error",l.info="info",l.primary="primary",(t=n||(n={})).label="label",t.value="value",t.options="options",t.children="children",t.icon="icon",t.suffix="suffix",t.title="title",t.subTitle="subTitle",t.key="key",t.name="name";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/basic-config/index.ts"],"sourcesContent":["export interface BasicConfig {\n /** 组件状态\n * @default 'normal'\n */\n status: keyof typeof Status;\n /** 组件尺寸\n * @default 'normal'\n */\n size: keyof typeof Size;\n /** 自定义 'label'、'value'、'options' 等映射的key */\n fieldName: Partial<{ [key in keyof typeof FieldName]: string }>;\n}\n\nexport enum Size {\n /** 小 */\n small = 'small',\n /** 默认: 中 */\n normal = 'normal',\n /** 大 */\n large = 'large',\n}\n\nexport enum Status {\n /** 默认 */\n normal = 'normal',\n /** 成功 */\n success = 'success',\n /** 警告 */\n warning = 'warning',\n /** 错误 */\n error = 'error',\n /** 详细 */\n info = 'info',\n /** 主要 */\n primary = 'primary',\n}\n\nexport interface BaseOption {\n /** 图标 */\n icon?: JSX.Element;\n /** 值 */\n value?: string | number;\n /** 标题 */\n label?: JSX.Element;\n /** 不可用状态 */\n disabled?: boolean;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式 */\n style?: Record<string, unknown>;\n /** 选项状态\n * @default 'normal'\n */\n status?: Status;\n /** 分组子选项 */\n options?: (BaseOption | string)[];\n [key: string]: Any;\n}\n\nexport enum FieldName {\n /** 标题 */\n label = 'label',\n /** 值 */\n value = 'value',\n /** 分组子选项 */\n options = 'options',\n /** 子选项 */\n children = 'children',\n /** 图标 */\n icon = 'icon',\n /** 后缀图标 */\n suffix = 'suffix',\n}\n"],"names":["Size","Status","FieldName"],"rangeMappings":"","mappings":"uBAaYA,EASAC,EAqCAC,4OA9CAF,EAAAA,IAAAA,wDASAC,EAAAA,IAAAA,kHAqCAC,EAAAA,IAAAA"}
1
+ {"version":3,"sources":["../../components/basic-config/index.ts"],"sourcesContent":["export interface BasicConfig {\n /** 组件状态\n * @default 'normal'\n */\n status: keyof typeof Status;\n /** 组件尺寸\n * @default 'normal'\n */\n size: keyof typeof Size;\n /** 自定义 'label'、'value'、'options' 等映射的key */\n fieldName: Partial<{ [key in keyof typeof FieldName]: string }>;\n}\n\nexport enum Size {\n /** 小 */\n small = 'small',\n /** 默认: 中 */\n normal = 'normal',\n /** 大 */\n large = 'large',\n}\n\nexport enum Status {\n /** 默认 */\n normal = 'normal',\n /** 成功 */\n success = 'success',\n /** 警告 */\n warning = 'warning',\n /** 错误 */\n error = 'error',\n /** 详细 */\n info = 'info',\n /** 主要 */\n primary = 'primary',\n}\n\nexport interface BaseOption {\n /** 图标 */\n icon?: JSX.Element;\n /** 值 */\n value?: string | number;\n /** 标题 */\n label?: JSX.Element;\n /** 不可用状态 */\n disabled?: boolean;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式 */\n style?: Record<string, unknown>;\n /** 选项状态\n * @default 'normal'\n */\n status?: Status;\n /** 分组子选项 */\n options?: (BaseOption | string)[];\n [key: string]: Any;\n}\n\nexport enum FieldName {\n /** 标题 */\n label = 'label',\n /** 值 */\n value = 'value',\n /** 分组子选项 */\n options = 'options',\n /** 子选项 */\n children = 'children',\n /** 图标 */\n icon = 'icon',\n /** 后缀图标 */\n suffix = 'suffix',\n /** 标题 */\n title = 'title',\n /** 副标题 */\n subTitle = 'subTitle',\n /** 键 */\n key = 'key',\n /** 名称 */\n name = 'name',\n}\n"],"names":["Size","Status","FieldName"],"rangeMappings":"","mappings":"uBAaYA,EASAC,EAqCAC,4OA9CAF,EAAAA,IAAAA,wDASAC,EAAAA,IAAAA,kHAqCAC,EAAAA,IAAAA"}
package/lib/tree/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return m}});const e=require("solid-js/web"),t=require("solid-js"),l=u(require("@moneko/common/lib/frameCallback")),n=u(require("@moneko/common/lib/isFunction")),r=u(require("@moneko/common/lib/isString")),i=require("@moneko/css");require("./register");const o=require("./style"),a=u(require("../from-schema")),c=u(require("../theme"));function u(e){return e&&e.__esModule?e:{default:e}}!function(e,t){Object.keys(e).forEach(function(l){"default"===l||Object.prototype.hasOwnProperty.call(t,l)||Object.defineProperty(t,l,{enumerable:!0,get:function(){return e[l]}})})}(require("./type"),exports);const s=(0,e.template)("<li>"),d=(0,e.template)('<span class="title">'),f=(0,e.template)('<span class="sub-title">'),h=(0,e.template)("<style>"),p=(0,e.template)("<ul>"),m=function(u){let m;let y={small:6,normal:8,large:10},{baseStyle:g}=c.default,[v,$]=(0,t.createSignal)([]),[b,k]=(0,t.createSignal)([]),_=(0,t.createMemo)(()=>"rtl"===u.direction),q=(0,t.createMemo)(()=>void 0!==u.value&&null!==u.value?Array.isArray(u.value)?u.value:[u.value]:[]),C=Symbol("path"),j=Symbol("path-end");return(0,t.createEffect)(()=>{let e=u.fromSchema?(0,a.default)(u.data):(0,r.default)(u.data)?function(e){let t=/[^\s|`│├└]/,l=e.trim().split("\n"),n=[{title:l[0],key:l[0]}];for(let e=1;e<l.length;e++){let r=l[e].search(t);if(-1===r)continue;let i={title:l[e].slice(r+3),depth:r};for(;n.length&&r<=(n[n.length-1].depth||0);)n.pop();if(!n.length)return[];let o=n[n.length-1];o.children||(o.children=[]),i.key=`${o.key}-${i.title}-${r}-${e}`,o.children.push(i),n.push(i)}return[n[0]]}(u.data):u.data;$([...new Set(function e(t,l=0){let n=t.length-1,r=t[n],i=t[0],o=[];for(let a=0,c=t.length;a<c;a++){let c=t[a],u=a===n;c[C]=void 0,c[j]=void 0,(0===a||u)&&(c[C]=i.key+(1===t.length?"":`>${r.key}`),u&&(c[j]=""),o.push(c[C])),c.children&&(o=o.concat(e(c.children,l+1)))}return o}(e))]),k(e)}),(0,t.createEffect)(()=>{let e=v(),t=u.size||"normal";(0,l.default)(()=>{let l=e.length;if(m&&l){let n=y[t];for(let t=0;t<l;t++){let l=m.querySelectorAll(`li[data-path="${e[t]}"]`);if(l.length){let e=l[0].getBoundingClientRect(),r=e.height/2+n;if(l.length>1){let{bottom:i,height:o,top:a}=l[1].getBoundingClientRect();r=0===t?a-e.top:i-e.top-o/2+n,l[1].style.setProperty("--c","none")}else 0===t&&l[0].style.setProperty("--c","none");(1!==l.length||0!==t)&&l[0].style.setProperty("--line",`${Math.abs(r)}px`)}}}})}),[(()=>{let t=h();return(0,e.insert)(t,g,null),(0,e.insert)(t,o.style,null),(0,e.insert)(t,()=>(0,i.css)(u.css),null),t})(),(()=>{let l=p(),r=m;return"function"==typeof r?(0,e.use)(r,l):m=l,(0,e.insert)(l,()=>(function l(r,o=0){return(0,e.createComponent)(t.For,{each:r,children:t=>{let{name:r,title:a,subTitle:c,key:h,children:p}=t,m=r!==a&&r?[r,a]:[a];return[(()=>{let l=s();return l.$$dblclick=e=>u.onRowDoubleClick?.(e,h,t),l.$$click=e=>{(function(e,t){if(!u.readonly&&(0,n.default)(u.onChange)){let l=[...q()];if(u.multiple){let t=l.indexOf(e);-1===t?l.push(e):l.splice(t,1)}else l=u.toggle&&l[0]===e?[]:[e];u.onChange(u.multiple?l:l[0],t)}})(t.key,t),u.onRowClick?.(e,t.key,t)},(0,e.insert)(l,()=>(function(e,t,l){let n=u.renderRow?.(e,t,l)||[t,l];return _()?n.reverse():n})(t,(()=>{let t=d();return(0,e.insert)(t,()=>(_()?m.reverse():m).join(": ")),t})(),c&&(()=>{let t=f();return(0,e.insert)(t,c),t})())),(0,e.effect)(r=>{let a=(0,i.cx)("row",q().includes(h)&&"active",(u.readonly||!(0,n.default)(u.onChange))&&"non"),c=o?{"--depth":`${2*o}em`}:void 0,s=t[j],d=t[C];return a!==r._v$&&(0,e.className)(l,r._v$=a),r._v$2=(0,e.style)(l,c,r._v$2),s!==r._v$3&&(0,e.setAttribute)(l,"data-path-end",r._v$3=s),d!==r._v$4&&(0,e.setAttribute)(l,"data-path",r._v$4=d),r},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),l})(),(0,e.memo)(()=>p?l(p,o+1):null)]}})})(b())),(0,e.effect)(()=>(0,e.className)(l,(0,i.cx)("tree",u.size,u.class,_()&&"rtl"))),l})()]};(0,e.delegateEvents)(["click","dblclick"]);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return g}});const e=require("solid-js/web"),t=require("solid-js"),l=s(require("@moneko/common/lib/frameCallback")),n=s(require("@moneko/common/lib/isFunction")),r=s(require("@moneko/common/lib/isString")),i=require("@moneko/css");require("./register");const o=require("./style"),a=require("../basic-config"),c=s(require("../from-schema")),u=s(require("../theme"));function s(e){return e&&e.__esModule?e:{default:e}}!function(e,t){Object.keys(e).forEach(function(l){"default"===l||Object.prototype.hasOwnProperty.call(t,l)||Object.defineProperty(t,l,{enumerable:!0,get:function(){return e[l]}})})}(require("./type"),exports);const d=(0,e.template)("<li>"),f=(0,e.template)('<span class="title">'),h=(0,e.template)('<span class="sub-title">'),p=(0,e.template)("<style>"),m=(0,e.template)("<ul>"),g=function(s){let g;let v={small:6,normal:8,large:10},{baseStyle:y}=u.default,[b,$]=(0,t.createSignal)([]),[k,_]=(0,t.createSignal)([]),q=(0,t.createMemo)(()=>Object.assign({},a.FieldName,s.fieldNames)),C=(0,t.createMemo)(()=>"rtl"===s.direction),j=(0,t.createMemo)(()=>void 0!==s.value&&null!==s.value?Array.isArray(s.value)?s.value:[s.value]:[]),w=Symbol("path"),S=Symbol("path-end");return(0,t.createEffect)(()=>{let e=s.fromSchema?(0,c.default)(s.data):(0,r.default)(s.data)?function(e){let t=q(),l=t.key,n=t.title,r=t.children,i=/[^\s|`│├└]/,o=e.trim().split("\n"),a=[{[n]:o[0],[l]:o[0]}];for(let e=1;e<o.length;e++){let t=o[e].search(i);if(-1===t)continue;let c={[n]:o[e].slice(t+3),depth:t};for(;a.length&&t<=(a[a.length-1].depth||0);)a.pop();if(!a.length)return[];let u=a[a.length-1];u[r]||(u[r]=[]),c[l]=`${u[l]}-${c[n]}-${t}-${e}`,u[r].push(c),a.push(c)}return[a[0]]}(s.data):s.data;$([...new Set(function e(t,l=0){let n=t.length-1,r=t[n],i=t[0],o=[],a=q(),c=a.key,u=a.children;for(let a=0,s=t.length;a<s;a++){let s=t[a],d=a===n;s[w]=void 0,s[S]=void 0,(0===a||d)&&(s[w]=i[c]+(1===t.length?"":`>${r[c]}`),d&&(s[S]=""),o.push(s[w])),s[u]&&(o=o.concat(e(s[u],l+1)))}return o}(e))]),_(e)}),(0,t.createEffect)(()=>{let e=b(),t=s.size||"normal";(0,l.default)(()=>{let l=e.length;if(g&&l){let n=v[t];for(let t=0;t<l;t++){let l=g.querySelectorAll(`li[data-path="${e[t]}"]`);if(l.length){let e=l[0].getBoundingClientRect(),r=e.height/2+n;if(l.length>1){let{bottom:i,height:o,top:a}=l[1].getBoundingClientRect();r=0===t?a-e.top:i-e.top-o/2+n,l[1].style.setProperty("--c","none")}else 0===t&&l[0].style.setProperty("--c","none");(1!==l.length||0!==t)&&l[0].style.setProperty("--line",`${Math.abs(r)}px`)}}}})}),[(()=>{let t=p();return(0,e.insert)(t,y,null),(0,e.insert)(t,o.style,null),(0,e.insert)(t,()=>(0,i.css)(s.css),null),t})(),(()=>{let l=m(),r=g;return"function"==typeof r?(0,e.use)(r,l):g=l,(0,e.insert)(l,()=>(function l(r,o=0){return(0,e.createComponent)(t.For,{each:r,children:r=>{let a=q(),c=r[a.title],u=r[a.key],p=r[a.name],m=r[a.subTitle],g=r[a.children],v=p!==c&&p?[p,c]:[c];return[(()=>{let t=d();return t.$$dblclick=e=>s.onRowDoubleClick?.(e,u,r),t.$$click=e=>(function(e,t){let l=q();(function(e,t){if(!s.readonly&&(0,n.default)(s.onChange)){let l=[...j()];if(s.multiple){let t=l.indexOf(e);-1===t?l.push(e):l.splice(t,1)}else l=s.toggle&&l[0]===e?[]:[e];s.onChange(s.multiple?l:l[0],t)}})(t[l.key],t),s.onRowClick?.(e,t[l.key],t)})(e,r),(0,e.insert)(t,()=>(function(e,t,l){let n=s.renderRow?.(e,t,l)||[t,l];return C()?n.reverse():n})(r,(()=>{let t=f();return(0,e.insert)(t,()=>(C()?v.reverse():v).join(": ")),t})(),m&&(()=>{let t=h();return(0,e.insert)(t,m),t})())),(0,e.effect)(l=>{let a=(0,i.cx)("row",j().includes(u)&&"active",(s.readonly||!(0,n.default)(s.onChange))&&"non"),c=o?{"--depth":`${2*o}em`}:void 0,d=r[S],f=r[w];return a!==l._v$&&(0,e.className)(t,l._v$=a),l._v$2=(0,e.style)(t,c,l._v$2),d!==l._v$3&&(0,e.setAttribute)(t,"data-path-end",l._v$3=d),f!==l._v$4&&(0,e.setAttribute)(t,"data-path",l._v$4=f),l},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),t})(),(0,e.createComponent)(t.Show,{when:g,get children(){return l(g,o+1)}})]}})})(k())),(0,e.effect)(()=>(0,e.className)(l,(0,i.cx)("tree",s.size,s.class,C()&&"rtl"))),l})()]};(0,e.delegateEvents)(["click","dblclick"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/tree/index.tsx"],"sourcesContent":["import { For, createEffect, createMemo, createSignal } from 'solid-js';\nimport { frameCallback, isFunction, isString } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport './register';\nimport { style } from './style';\nimport schema from '../from-schema';\nimport theme from '../theme';\nimport type {\n TreeData,\n TreeMultipleProps,\n TreeMultipleSchemaProps,\n TreeMultipleStringProps,\n TreeProps,\n TreeSchemaProps,\n TreeStack,\n TreeStringProps,\n} from './type';\n\nfunction Tree(\n _:\n | TreeProps\n | TreeMultipleProps\n | TreeMultipleSchemaProps\n | TreeSchemaProps\n | TreeMultipleStringProps\n | TreeStringProps,\n) {\n const sizeCnt = {\n small: 6,\n normal: 8,\n large: 10,\n };\n const { baseStyle } = theme;\n let el: HTMLUListElement | undefined;\n const [lines, setLines] = createSignal<string[]>([]);\n const [treeData, setTreeData] = createSignal<TreeData[]>([]);\n const rtl = createMemo(() => _.direction === 'rtl');\n const current = createMemo(() => {\n if (_.value !== void 0 && _.value !== null) {\n return Array.isArray(_.value) ? _.value : [_.value];\n }\n return [];\n });\n const path = Symbol('path');\n const pathEnd = Symbol('path-end');\n\n function countLineLen(tree: TreeData[], depth = 0) {\n const lastIdx = tree.length - 1;\n const last = tree[lastIdx];\n const frist = tree[0];\n let line: string[] = [];\n\n for (let i = 0, len = tree.length; i < len; i++) {\n const item = tree[i],\n isLast = i === lastIdx;\n\n item[path] = void 0;\n item[pathEnd] = void 0;\n if (i === 0 || isLast) {\n item[path] = frist.key + (tree.length === 1 ? '' : `>${last.key}`);\n if (isLast) {\n item[pathEnd] = '';\n }\n line.push(item[path]);\n }\n if (item.children) {\n line = line.concat(countLineLen(item.children, depth + 1));\n }\n }\n return line;\n }\n\n function parseTree(str: string): TreeData[] {\n const depthRegex = /[^\\s|`│├└]/;\n const rows = str.trim().split('\\n');\n const stack: TreeStack[] = [{ title: rows[0], key: rows[0] }];\n\n for (let i = 1; i < rows.length; i++) {\n const depth = rows[i].search(depthRegex);\n\n if (depth === -1) {\n continue;\n }\n const node: Partial<TreeData> = {\n title: rows[i].slice(depth + 3),\n depth,\n };\n\n while (stack.length && depth <= (stack[stack.length - 1].depth || 0)) {\n stack.pop();\n }\n if (!stack.length) {\n return [];\n }\n const parent = stack[stack.length - 1];\n\n if (!parent.children) {\n parent.children = [];\n }\n node.key = `${parent.key}-${node.title}-${depth}-${i}`;\n parent.children.push(node as TreeData);\n stack.push(node as TreeData);\n }\n\n return [stack[0]];\n }\n\n function handleChange(key: string, item: TreeData) {\n if (!_.readonly && isFunction(_.onChange)) {\n let _current = [...current()];\n\n if (_.multiple) {\n const idx = _current.indexOf(key);\n\n if (idx === -1) {\n _current.push(key);\n } else {\n _current.splice(idx, 1);\n }\n } else if (_.toggle && _current[0] === key) {\n _current = [];\n } else {\n _current = [key];\n }\n _.onChange(_.multiple ? _current : _current[0], item);\n }\n }\n function handleClick(e: MouseEvent, item: TreeData) {\n handleChange(item.key, item);\n _.onRowClick?.(e, item.key as never, item as TreeData<never>);\n }\n function renderItem(item: TreeData, title: JSX.Element, subTitle?: JSX.Element): JSX.Element[] {\n const row = _.renderRow?.(item, title, subTitle) || [title, subTitle];\n\n return rtl() ? row.reverse() : row;\n }\n\n function renderTreeRow(list: TreeData[], depth = 0): JSX.Element {\n return (\n <For each={list}>\n {(item) => {\n const { name, title, subTitle, key, children } = item;\n const _title = name === title || !name ? [title] : [name, title];\n\n return (\n <>\n <li\n class={cx(\n 'row',\n current().includes(key) && 'active',\n (_.readonly || !isFunction(_.onChange)) && 'non',\n )}\n onClick={(e) => handleClick(e, item)}\n onDblClick={(e) => _.onRowDoubleClick?.(e, key, item)}\n style={depth ? { '--depth': `${depth * 2}em` } : void 0}\n data-path-end={item[pathEnd]}\n data-path={item[path]}\n >\n {renderItem(\n item,\n <span class=\"title\">{(rtl() ? _title.reverse() : _title).join(': ')}</span>,\n subTitle && <span class=\"sub-title\">{subTitle}</span>,\n )}\n </li>\n {children ? renderTreeRow(children, depth + 1) : null}\n </>\n );\n }}\n </For>\n );\n }\n createEffect(() => {\n const data = _.fromSchema ? schema(_.data) : isString(_.data) ? parseTree(_.data) : _.data;\n\n setLines([...new Set(countLineLen(data))]);\n setTreeData(data);\n });\n\n createEffect(() => {\n const list = lines();\n const size = _.size || 'normal';\n\n frameCallback(() => {\n const len = list.length;\n\n if (el && len) {\n const prefixSize = sizeCnt[size];\n\n for (let i = 0; i < len; i++) {\n const al: NodeListOf<HTMLLIElement> = el.querySelectorAll(`li[data-path=\"${list[i]}\"]`);\n\n if (al.length) {\n const rect1 = al[0].getBoundingClientRect();\n let sideLen = rect1.height / 2 + prefixSize;\n\n if (al.length > 1) {\n const { bottom, height, top } = al[1].getBoundingClientRect();\n\n sideLen = i === 0 ? top - rect1.top : bottom - rect1.top - height / 2 + prefixSize;\n al[1].style.setProperty('--c', 'none');\n } else if (i === 0) {\n al[0].style.setProperty('--c', 'none');\n }\n if (al.length !== 1 || i !== 0) {\n al[0].style.setProperty('--line', `${Math.abs(sideLen)}px`);\n }\n }\n }\n }\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(_.css)}\n </style>\n <ul ref={el} class={cx('tree', _.size, _.class, rtl() && 'rtl')}>\n {renderTreeRow(treeData())}\n </ul>\n </>\n );\n}\n\nexport * from './type';\nexport default Tree;\n"],"names":["_","el","sizeCnt","small","normal","large","baseStyle","theme","lines","setLines","createSignal","treeData","setTreeData","rtl","createMemo","direction","current","value","Array","isArray","path","Symbol","pathEnd","createEffect","data","fromSchema","schema","isString","parseTree","str","depthRegex","rows","trim","split","stack","title","key","i","length","depth","search","node","slice","pop","parent","children","push","Set","countLineLen","tree","lastIdx","last","frist","line","len","item","isLast","concat","list","size","frameCallback","prefixSize","al","querySelectorAll","rect1","getBoundingClientRect","sideLen","height","bottom","top","style","setProperty","Math","abs","css","renderTreeRow","For","name","subTitle","_title","e","onRowDoubleClick","handleChange","readonly","isFunction","onChange","_current","multiple","idx","indexOf","splice","toggle","onRowClick","renderItem","row","renderRow","reverse","join","cx","includes","class"],"rangeMappings":"","mappings":"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"}
1
+ {"version":3,"sources":["../../components/tree/index.tsx"],"sourcesContent":["import { For, Show, createEffect, createMemo, createSignal } from 'solid-js';\nimport { frameCallback, isFunction, isString } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport './register';\nimport { style } from './style';\nimport { FieldName } from '../basic-config';\nimport schema from '../from-schema';\nimport theme from '../theme';\nimport type {\n TreeData,\n TreeMultipleProps,\n TreeMultipleSchemaProps,\n TreeMultipleStringProps,\n TreeProps,\n TreeSchemaProps,\n TreeStack,\n TreeStringProps,\n} from './type';\n\nfunction Tree(\n _:\n | TreeProps\n | TreeMultipleProps\n | TreeMultipleSchemaProps\n | TreeSchemaProps\n | TreeMultipleStringProps\n | TreeStringProps,\n) {\n const sizeCnt = {\n small: 6,\n normal: 8,\n large: 10,\n };\n const { baseStyle } = theme;\n let el: HTMLUListElement | undefined;\n const [lines, setLines] = createSignal<string[]>([]);\n const [treeData, setTreeData] = createSignal<TreeData[]>([]);\n const fieldNames = createMemo(() => Object.assign({}, FieldName, _.fieldNames));\n const rtl = createMemo(() => _.direction === 'rtl');\n const current = createMemo(() => {\n if (_.value !== void 0 && _.value !== null) {\n return Array.isArray(_.value) ? _.value : [_.value];\n }\n return [];\n });\n const path = Symbol('path');\n const pathEnd = Symbol('path-end');\n\n function countLineLen(tree: TreeData[], depth = 0) {\n const lastIdx = tree.length - 1;\n const last = tree[lastIdx];\n const frist = tree[0];\n let line: string[] = [];\n const fields = fieldNames();\n const key = fields.key;\n const children = fields.children;\n\n for (let i = 0, len = tree.length; i < len; i++) {\n const item = tree[i],\n isLast = i === lastIdx;\n\n item[path] = void 0;\n item[pathEnd] = void 0;\n if (i === 0 || isLast) {\n item[path] = frist[key] + (tree.length === 1 ? '' : `>${last[key]}`);\n if (isLast) {\n item[pathEnd] = '';\n }\n line.push(item[path]);\n }\n if (item[children]) {\n line = line.concat(countLineLen(item[children]!, depth + 1));\n }\n }\n return line;\n }\n\n function parseTree(str: string): TreeData[] {\n const fields = fieldNames();\n const key = fields.key as 'key';\n const title = fields.title as 'title';\n const children = fields.children as 'children';\n const depthRegex = /[^\\s|`│├└]/;\n const rows = str.trim().split('\\n');\n const stack: TreeStack[] = [{ [title]: rows[0], [key]: rows[0] }];\n\n for (let i = 1; i < rows.length; i++) {\n const depth = rows[i].search(depthRegex);\n\n if (depth === -1) {\n continue;\n }\n const node: Partial<TreeData> = {\n [title]: rows[i].slice(depth + 3),\n depth,\n };\n\n while (stack.length && depth <= (stack[stack.length - 1].depth || 0)) {\n stack.pop();\n }\n if (!stack.length) {\n return [];\n }\n const parent = stack[stack.length - 1];\n\n if (!parent[children]) {\n parent[children] = [];\n }\n node[key] = `${parent[key]}-${node[title]}-${depth}-${i}`;\n parent[children].push(node as TreeData);\n stack.push(node as TreeData);\n }\n\n return [stack[0]];\n }\n\n function handleChange(key: string, item: TreeData) {\n if (!_.readonly && isFunction(_.onChange)) {\n let _current = [...current()];\n\n if (_.multiple) {\n const idx = _current.indexOf(key);\n\n if (idx === -1) {\n _current.push(key);\n } else {\n _current.splice(idx, 1);\n }\n } else if (_.toggle && _current[0] === key) {\n _current = [];\n } else {\n _current = [key];\n }\n _.onChange(_.multiple ? _current : _current[0], item);\n }\n }\n function handleClick(e: MouseEvent, item: TreeData) {\n const fields = fieldNames();\n\n handleChange(item[fields.key], item);\n _.onRowClick?.(e, item[fields.key] as never, item as TreeData<never>);\n }\n function renderItem(item: TreeData, title: JSX.Element, subTitle?: JSX.Element): JSX.Element[] {\n const row = _.renderRow?.(item, title, subTitle) || [title, subTitle];\n\n return rtl() ? row.reverse() : row;\n }\n\n function renderTreeRow(list: TreeData[], depth = 0): JSX.Element {\n return (\n <For each={list}>\n {(item) => {\n const fields = fieldNames();\n const title = item[fields.title];\n const key = item[fields.key];\n const name = item[fields.name];\n const subTitle = item[fields.subTitle];\n const children = item[fields.children];\n const _title = name === title || !name ? [title] : [name, title];\n\n return (\n <>\n <li\n class={cx(\n 'row',\n current().includes(key) && 'active',\n (_.readonly || !isFunction(_.onChange)) && 'non',\n )}\n onClick={(e) => handleClick(e, item)}\n onDblClick={(e) => _.onRowDoubleClick?.(e, key, item)}\n style={depth ? { '--depth': `${depth * 2}em` } : void 0}\n data-path-end={item[pathEnd]}\n data-path={item[path]}\n >\n {renderItem(\n item,\n <span class=\"title\">{(rtl() ? _title.reverse() : _title).join(': ')}</span>,\n subTitle && <span class=\"sub-title\">{subTitle}</span>,\n )}\n </li>\n <Show when={children}>{renderTreeRow(children!, depth + 1)}</Show>\n </>\n );\n }}\n </For>\n );\n }\n createEffect(() => {\n const data = _.fromSchema ? schema(_.data) : isString(_.data) ? parseTree(_.data) : _.data;\n\n setLines([...new Set(countLineLen(data))]);\n setTreeData(data);\n });\n\n createEffect(() => {\n const list = lines();\n const size = _.size || 'normal';\n\n frameCallback(() => {\n const len = list.length;\n\n if (el && len) {\n const prefixSize = sizeCnt[size];\n\n for (let i = 0; i < len; i++) {\n const al: NodeListOf<HTMLLIElement> = el.querySelectorAll(`li[data-path=\"${list[i]}\"]`);\n\n if (al.length) {\n const rect1 = al[0].getBoundingClientRect();\n let sideLen = rect1.height / 2 + prefixSize;\n\n if (al.length > 1) {\n const { bottom, height, top } = al[1].getBoundingClientRect();\n\n sideLen = i === 0 ? top - rect1.top : bottom - rect1.top - height / 2 + prefixSize;\n al[1].style.setProperty('--c', 'none');\n } else if (i === 0) {\n al[0].style.setProperty('--c', 'none');\n }\n if (al.length !== 1 || i !== 0) {\n al[0].style.setProperty('--line', `${Math.abs(sideLen)}px`);\n }\n }\n }\n }\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(_.css)}\n </style>\n <ul ref={el} class={cx('tree', _.size, _.class, rtl() && 'rtl')}>\n {renderTreeRow(treeData())}\n </ul>\n </>\n );\n}\n\nexport * from './type';\nexport default Tree;\n"],"names":["_","el","sizeCnt","small","normal","large","baseStyle","theme","lines","setLines","createSignal","treeData","setTreeData","fieldNames","createMemo","Object","assign","FieldName","rtl","direction","current","value","Array","isArray","path","Symbol","pathEnd","createEffect","data","fromSchema","schema","isString","parseTree","str","fields","key","title","children","depthRegex","rows","trim","split","stack","i","length","depth","search","node","slice","pop","parent","push","Set","countLineLen","tree","lastIdx","last","frist","line","len","item","isLast","concat","list","size","frameCallback","prefixSize","al","querySelectorAll","rect1","getBoundingClientRect","sideLen","height","bottom","top","style","setProperty","Math","abs","css","renderTreeRow","For","name","subTitle","_title","e","onRowDoubleClick","handleClick","handleChange","readonly","isFunction","onChange","_current","multiple","idx","indexOf","splice","toggle","onRowClick","renderItem","row","renderRow","reverse","join","cx","includes","Show","class"],"rangeMappings":"","mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0});const o=require("solid-js"),t=require("solid-element"),i=(e=require("./index"))&&e.__esModule?e:{default:e};(0,t.customElement)("n-tree",{fromSchema:void 0,size:void 0,data:[],multiple:void 0,value:void 0,onChange:void 0,class:void 0,css:void 0,readonly:void 0,toggle:void 0,direction:void 0,onRowClick:void 0,onRowDoubleClick:void 0,renderRow:void 0},(e,t)=>{let d=t.element,l=(0,o.mergeProps)({data:d.data,value:d.value,multiple:d.multiple,fromSchema:d.fromSchema,size:d.size,css:d.css,readonly:d.readonly,toggle:d.toggle,direction:d.direction,onChange(e,o){d.dispatchEvent(new CustomEvent("change",{detail:[e,o]}))},onRowClick(e,o,t){d.dispatchEvent(new CustomEvent("rowclick",{detail:[e,o,t]}))},onRowDoubleClick(e,o,t){d.dispatchEvent(new CustomEvent("rowdoubleclick",{detail:[e,o,t]}))}},e);return(0,o.createEffect)(()=>{d.removeAttribute("css"),d.removeAttribute("data")}),(0,o.createComponent)(i.default,l)});
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0});const o=require("solid-js"),t=require("solid-element"),i=(e=require("./index"))&&e.__esModule?e:{default:e};(0,t.customElement)("n-tree",{fieldNames:{},fromSchema:void 0,size:void 0,data:[],multiple:void 0,value:void 0,onChange:void 0,class:void 0,css:void 0,readonly:void 0,toggle:void 0,direction:void 0,onRowClick:void 0,onRowDoubleClick:void 0,renderRow:void 0},(e,t)=>{let d=t.element,l=(0,o.mergeProps)({data:d.data,value:d.value,multiple:d.multiple,fromSchema:d.fromSchema,size:d.size,css:d.css,readonly:d.readonly,toggle:d.toggle,direction:d.direction,onChange(e,o){d.dispatchEvent(new CustomEvent("change",{detail:[e,o]}))},onRowClick(e,o,t){d.dispatchEvent(new CustomEvent("rowclick",{detail:[e,o,t]}))},onRowDoubleClick(e,o,t){d.dispatchEvent(new CustomEvent("rowdoubleclick",{detail:[e,o,t]}))}},e);return(0,o.createEffect)(()=>{d.removeAttribute("css"),d.removeAttribute("field-names"),d.removeAttribute("data")}),(0,o.createComponent)(i.default,l)});
2
2
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/tree/register.ts"],"sourcesContent":["import { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { customElement } from 'solid-element';\nimport Tree from './index';\nimport type { TreeData, TreeProps } from './type';\n\ncustomElement<TreeProps>(\n 'n-tree',\n {\n fromSchema: void 0,\n size: void 0,\n data: [],\n multiple: void 0,\n value: void 0,\n onChange: void 0,\n class: void 0,\n css: void 0,\n readonly: void 0,\n toggle: void 0,\n direction: void 0,\n onRowClick: void 0,\n onRowDoubleClick: void 0,\n renderRow: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n data: el.data,\n value: el.value,\n multiple: el.multiple,\n fromSchema: el.fromSchema,\n size: el.size,\n css: el.css,\n readonly: el.readonly,\n toggle: el.toggle,\n direction: el.direction,\n onChange(key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onRowClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowclick', {\n detail: [e, key, item],\n }),\n );\n },\n onRowDoubleClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowdoubleclick', {\n detail: [e, key, item],\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.removeAttribute('data');\n });\n return createComponent(Tree, props);\n },\n);\n"],"names":["customElement","fromSchema","size","data","multiple","value","onChange","class","css","readonly","toggle","direction","onRowClick","onRowDoubleClick","renderRow","_","opt","el","element","props","mergeProps","key","item","dispatchEvent","CustomEvent","detail","e","createEffect","removeAttribute","createComponent","Tree"],"rangeMappings":"","mappings":"0FAA0D,sBAC5B,8BACb,wCAGjBA,GAAAA,eAAa,EACX,SACA,CACEC,WAAY,KAAK,EACjBC,KAAM,KAAK,EACXC,KAAM,EAAE,CACRC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,IAAK,KAAK,EACVC,SAAU,KAAK,EACfC,OAAQ,KAAK,EACbC,UAAW,KAAK,EAChBC,WAAY,KAAK,EACjBC,iBAAkB,KAAK,EACvBC,UAAW,KAAK,CAClB,EACA,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBC,EAAQC,GAAAA,YAAU,EACtB,CACEjB,KAAMc,EAAGd,IAAI,CACbE,MAAOY,EAAGZ,KAAK,CACfD,SAAUa,EAAGb,QAAQ,CACrBH,WAAYgB,EAAGhB,UAAU,CACzBC,KAAMe,EAAGf,IAAI,CACbM,IAAKS,EAAGT,GAAG,CACXC,SAAUQ,EAAGR,QAAQ,CACrBC,OAAQO,EAAGP,MAAM,CACjBC,UAAWM,EAAGN,SAAS,CACvBL,SAASe,CAAW,CAAEC,CAAc,EAClCL,EAAGM,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQ,CAACJ,EAAKC,EAAK,AACrB,GAEJ,EACAV,WAAWc,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACnDL,EAAGM,aAAa,CACd,IAAIC,YAAY,WAAY,CAC1BC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,EACAT,iBAAiBa,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACzDL,EAAGM,aAAa,CACd,IAAIC,YAAY,iBAAkB,CAChCC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,CACF,EACAP,GAOF,MAJAY,GAAAA,cAAY,EAAC,KACXV,EAAGW,eAAe,CAAC,OACnBX,EAAGW,eAAe,CAAC,OACrB,GACOC,GAAAA,iBAAe,EAACC,SAAI,CAAEX,EAC/B"}
1
+ {"version":3,"sources":["../../components/tree/register.ts"],"sourcesContent":["import { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { customElement } from 'solid-element';\nimport Tree from './index';\nimport type { TreeData, TreeProps } from './type';\n\ncustomElement<TreeProps>(\n 'n-tree',\n {\n fieldNames: {},\n fromSchema: void 0,\n size: void 0,\n data: [],\n multiple: void 0,\n value: void 0,\n onChange: void 0,\n class: void 0,\n css: void 0,\n readonly: void 0,\n toggle: void 0,\n direction: void 0,\n onRowClick: void 0,\n onRowDoubleClick: void 0,\n renderRow: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n data: el.data,\n value: el.value,\n multiple: el.multiple,\n fromSchema: el.fromSchema,\n size: el.size,\n css: el.css,\n readonly: el.readonly,\n toggle: el.toggle,\n direction: el.direction,\n onChange(key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onRowClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowclick', {\n detail: [e, key, item],\n }),\n );\n },\n onRowDoubleClick(e: MouseEvent, key: string, item: TreeData) {\n el.dispatchEvent(\n new CustomEvent('rowdoubleclick', {\n detail: [e, key, item],\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.removeAttribute('field-names');\n el.removeAttribute('data');\n });\n return createComponent(Tree, props);\n },\n);\n"],"names":["customElement","fieldNames","fromSchema","size","data","multiple","value","onChange","class","css","readonly","toggle","direction","onRowClick","onRowDoubleClick","renderRow","_","opt","el","element","props","mergeProps","key","item","dispatchEvent","CustomEvent","detail","e","createEffect","removeAttribute","createComponent","Tree"],"rangeMappings":"","mappings":"0FAA0D,sBAC5B,8BACb,wCAGjBA,GAAAA,eAAa,EACX,SACA,CACEC,WAAY,CAAC,EACbC,WAAY,KAAK,EACjBC,KAAM,KAAK,EACXC,KAAM,EAAE,CACRC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfC,MAAO,KAAK,EACZC,IAAK,KAAK,EACVC,SAAU,KAAK,EACfC,OAAQ,KAAK,EACbC,UAAW,KAAK,EAChBC,WAAY,KAAK,EACjBC,iBAAkB,KAAK,EACvBC,UAAW,KAAK,CAClB,EACA,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBC,EAAQC,GAAAA,YAAU,EACtB,CACEjB,KAAMc,EAAGd,IAAI,CACbE,MAAOY,EAAGZ,KAAK,CACfD,SAAUa,EAAGb,QAAQ,CACrBH,WAAYgB,EAAGhB,UAAU,CACzBC,KAAMe,EAAGf,IAAI,CACbM,IAAKS,EAAGT,GAAG,CACXC,SAAUQ,EAAGR,QAAQ,CACrBC,OAAQO,EAAGP,MAAM,CACjBC,UAAWM,EAAGN,SAAS,CACvBL,SAASe,CAAW,CAAEC,CAAc,EAClCL,EAAGM,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQ,CAACJ,EAAKC,EAAK,AACrB,GAEJ,EACAV,WAAWc,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACnDL,EAAGM,aAAa,CACd,IAAIC,YAAY,WAAY,CAC1BC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,EACAT,iBAAiBa,CAAa,CAAEL,CAAW,CAAEC,CAAc,EACzDL,EAAGM,aAAa,CACd,IAAIC,YAAY,iBAAkB,CAChCC,OAAQ,CAACC,EAAGL,EAAKC,EAAK,AACxB,GAEJ,CACF,EACAP,GAQF,MALAY,GAAAA,cAAY,EAAC,KACXV,EAAGW,eAAe,CAAC,OACnBX,EAAGW,eAAe,CAAC,eACnBX,EAAGW,eAAe,CAAC,OACrB,GACOC,GAAAA,iBAAe,EAACC,SAAI,CAAEX,EAC/B"}
@@ -27,6 +27,8 @@ export interface TreeBaseProp {
27
27
  * @default false
28
28
  */
29
29
  fromSchema?: false;
30
+ /** 自定义节点字段 */
31
+ fieldNames?: BasicConfig['fieldName'];
30
32
  }
31
33
  interface TreeBaseProps extends TreeBaseProp {
32
34
  /** 选中的值, 多选模式时为数组 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neko-ui",
3
- "version": "2.7.5",
3
+ "version": "2.8.0",
4
4
  "description": "WebComponents UI Libraries",
5
5
  "main": "es/index.js",
6
6
  "scripts": {
@@ -70,15 +70,6 @@
70
70
  "solid-element": "1.8.0",
71
71
  "solid-js": "1.8.17"
72
72
  },
73
- "files": [
74
- "es",
75
- "lib",
76
- "umd",
77
- "README.md",
78
- "CHANGELOG.md",
79
- "SECURITY.md",
80
- "LICENSE"
81
- ],
82
73
  "browserslist": [
83
74
  "Chrome >= 86",
84
75
  "Safari >= 15"