giime 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.mjs +14 -8
- package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.mjs.map +1 -1
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.js +13 -7
- package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed, cloneVNode, h } from 'vue';
|
|
1
|
+
import { defineComponent, computed, cloneVNode, Comment, h } from 'vue';
|
|
2
2
|
|
|
3
3
|
var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
|
|
4
4
|
functional: true,
|
|
@@ -74,14 +74,20 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
|
|
|
74
74
|
const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];
|
|
75
75
|
const propOrder = new Map(props.propsList.map((p, i) => [p.prop, i]));
|
|
76
76
|
const isLeafCol = (v) => v?.type?.name === "GmTableColumnPro";
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
|
|
77
|
+
const isComment = (v) => v?.type === Comment;
|
|
78
|
+
const leafCols = vnodeArray.filter(isLeafCol);
|
|
79
|
+
const canReorder = leafCols.length > 0 && leafCols.every((v) => v?.props?.prop != null && propOrder.has(v.props.prop)) && vnodeArray.every((v) => isLeafCol(v) || isComment(v));
|
|
80
|
+
if (canReorder) {
|
|
81
|
+
return [...leafCols].sort((a, b) => propOrder.get(a.props.prop) - propOrder.get(b.props.prop)).map((vnode) => {
|
|
82
|
+
const processed = processVNode(vnode);
|
|
83
|
+
return processed ? h(processed, {
|
|
84
|
+
key: vnode.props.prop
|
|
85
|
+
}) : null;
|
|
86
|
+
}).filter(Boolean);
|
|
87
|
+
}
|
|
88
|
+
return vnodeArray.map((vnode) => {
|
|
80
89
|
const processed = processVNode(vnode);
|
|
81
|
-
|
|
82
|
-
return canReorder ? h(processed, {
|
|
83
|
-
key: vnode.props.prop
|
|
84
|
-
}) : h(processed);
|
|
90
|
+
return processed ? h(processed) : null;
|
|
85
91
|
}).filter(Boolean);
|
|
86
92
|
});
|
|
87
93
|
return () => render.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n // type=\"edit\" 的列由 TablePro 的 gmEdit 列统一处理,这里跳过\n // 直接检查 vnode.props.type,避免因 prop 相同导致的误匹配\n if (vnode.props?.type === 'edit') {\n return null;\n }\n\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示,跳过渲染\n if (propsConfig && !propsConfig.isShow) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n // 按 propsList(已保存/拖拽后的顺序)对顶层列重排。\n //
|
|
1
|
+
{"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode, Comment } from 'vue';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n // type=\"edit\" 的列由 TablePro 的 gmEdit 列统一处理,这里跳过\n // 直接检查 vnode.props.type,避免因 prop 相同导致的误匹配\n if (vnode.props?.type === 'edit') {\n return null;\n }\n\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示,跳过渲染\n if (propsConfig && !propsConfig.isShow) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n // 按 propsList(已保存/拖拽后的顺序)对顶层列重排。\n // 关键:v-if=false 的列、模板注释会在 slot 中留下「注释 vnode」占位,\n // 必须把它们排除在判断之外——否则只要表格含 v-if 列,canReorder 就会被注释 vnode\n // 拖成 false,导致拖拽排序不生效(这正是含大量 v-if 列的表格\"拖动无效\"的根因)。\n const propOrder = new Map(props.propsList.map((p, i) => [p.prop, i]));\n const isLeafCol = (v: any) => v?.type?.name === 'GmTableColumnPro';\n const isComment = (v: any) => v?.type === Comment;\n const leafCols = vnodeArray.filter(isLeafCol);\n // 仅当所有「非注释」顶层节点都是可在 propsList 中定位顺序的叶子列时才重排;\n // 含分组列(多级表头)等其它节点时,保持模板原始顺序,不参与排序。\n const canReorder =\n leafCols.length > 0 &&\n leafCols.every((v: any) => v?.props?.prop != null && propOrder.has(v.props.prop)) &&\n vnodeArray.every((v: any) => isLeafCol(v) || isComment(v));\n\n if (canReorder) {\n // 只渲染真实叶子列并按保存顺序排序(注释 vnode 是 v-if 占位、不渲染任何内容,直接丢弃)。\n // 为每列设置稳定 key(= prop):让 Vue「移动」列实例而非就地复用,从而真正改变\n // .hidden-columns 的 DOM 顺序,触发 el-table 的 MutationObserver 重新排序列。\n return [...leafCols]\n .sort((a: any, b: any) => propOrder.get(a.props.prop)! - propOrder.get(b.props.prop)!)\n .map((vnode: any) => {\n const processed = processVNode(vnode);\n return processed ? h(processed, { key: vnode.props.prop }) : null;\n })\n .filter(Boolean);\n }\n\n // 原始行为:按模板顺序渲染全部节点(含注释占位),不加 key,多级表头等场景零变化。\n return vnodeArray\n .map(vnode => {\n const processed = processVNode(vnode);\n return processed ? h(processed) : null;\n })\n .filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","map","it","findProp","find","item","prop","processVNode","name","propsConfig","value","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","filter","Boolean","render","vnodeArray","propOrder","Map","p","i","isLeafCol","v","isComment","Comment","leafCols","canReorder","length","every","has","sort","a","b","get","processed","h","key"],"mappings":"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"}
|
package/es/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "1.1.
|
|
1
|
+
export declare const version = "1.1.1";
|
package/es/giime/version.mjs
CHANGED
package/es/giime/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '1.1.
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '1.1.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
|
|
@@ -78,14 +78,20 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ vue.defineComponent({
|
|
|
78
78
|
const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];
|
|
79
79
|
const propOrder = new Map(props.propsList.map((p, i) => [p.prop, i]));
|
|
80
80
|
const isLeafCol = (v) => v?.type?.name === "GmTableColumnPro";
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
|
|
81
|
+
const isComment = (v) => v?.type === vue.Comment;
|
|
82
|
+
const leafCols = vnodeArray.filter(isLeafCol);
|
|
83
|
+
const canReorder = leafCols.length > 0 && leafCols.every((v) => v?.props?.prop != null && propOrder.has(v.props.prop)) && vnodeArray.every((v) => isLeafCol(v) || isComment(v));
|
|
84
|
+
if (canReorder) {
|
|
85
|
+
return [...leafCols].sort((a, b) => propOrder.get(a.props.prop) - propOrder.get(b.props.prop)).map((vnode) => {
|
|
86
|
+
const processed = processVNode(vnode);
|
|
87
|
+
return processed ? vue.h(processed, {
|
|
88
|
+
key: vnode.props.prop
|
|
89
|
+
}) : null;
|
|
90
|
+
}).filter(Boolean);
|
|
91
|
+
}
|
|
92
|
+
return vnodeArray.map((vnode) => {
|
|
84
93
|
const processed = processVNode(vnode);
|
|
85
|
-
|
|
86
|
-
return canReorder ? vue.h(processed, {
|
|
87
|
-
key: vnode.props.prop
|
|
88
|
-
}) : vue.h(processed);
|
|
94
|
+
return processed ? vue.h(processed) : null;
|
|
89
95
|
}).filter(Boolean);
|
|
90
96
|
});
|
|
91
97
|
return () => render.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumnVNodeRenderer.js","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n // type=\"edit\" 的列由 TablePro 的 gmEdit 列统一处理,这里跳过\n // 直接检查 vnode.props.type,避免因 prop 相同导致的误匹配\n if (vnode.props?.type === 'edit') {\n return null;\n }\n\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示,跳过渲染\n if (propsConfig && !propsConfig.isShow) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n // 按 propsList(已保存/拖拽后的顺序)对顶层列重排。\n //
|
|
1
|
+
{"version":3,"file":"TableColumnVNodeRenderer.js","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode, Comment } from 'vue';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n // type=\"edit\" 的列由 TablePro 的 gmEdit 列统一处理,这里跳过\n // 直接检查 vnode.props.type,避免因 prop 相同导致的误匹配\n if (vnode.props?.type === 'edit') {\n return null;\n }\n\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示,跳过渲染\n if (propsConfig && !propsConfig.isShow) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n // 按 propsList(已保存/拖拽后的顺序)对顶层列重排。\n // 关键:v-if=false 的列、模板注释会在 slot 中留下「注释 vnode」占位,\n // 必须把它们排除在判断之外——否则只要表格含 v-if 列,canReorder 就会被注释 vnode\n // 拖成 false,导致拖拽排序不生效(这正是含大量 v-if 列的表格\"拖动无效\"的根因)。\n const propOrder = new Map(props.propsList.map((p, i) => [p.prop, i]));\n const isLeafCol = (v: any) => v?.type?.name === 'GmTableColumnPro';\n const isComment = (v: any) => v?.type === Comment;\n const leafCols = vnodeArray.filter(isLeafCol);\n // 仅当所有「非注释」顶层节点都是可在 propsList 中定位顺序的叶子列时才重排;\n // 含分组列(多级表头)等其它节点时,保持模板原始顺序,不参与排序。\n const canReorder =\n leafCols.length > 0 &&\n leafCols.every((v: any) => v?.props?.prop != null && propOrder.has(v.props.prop)) &&\n vnodeArray.every((v: any) => isLeafCol(v) || isComment(v));\n\n if (canReorder) {\n // 只渲染真实叶子列并按保存顺序排序(注释 vnode 是 v-if 占位、不渲染任何内容,直接丢弃)。\n // 为每列设置稳定 key(= prop):让 Vue「移动」列实例而非就地复用,从而真正改变\n // .hidden-columns 的 DOM 顺序,触发 el-table 的 MutationObserver 重新排序列。\n return [...leafCols]\n .sort((a: any, b: any) => propOrder.get(a.props.prop)! - propOrder.get(b.props.prop)!)\n .map((vnode: any) => {\n const processed = processVNode(vnode);\n return processed ? h(processed, { key: vnode.props.prop }) : null;\n })\n .filter(Boolean);\n }\n\n // 原始行为:按模板顺序渲染全部节点(含注释占位),不加 key,多级表头等场景零变化。\n return vnodeArray\n .map(vnode => {\n const processed = processVNode(vnode);\n return processed ? h(processed) : null;\n })\n .filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","map","it","findProp","find","item","prop","processVNode","name","propsConfig","value","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","filter","Boolean","render","vnodeArray","propOrder","Map","p","i","isLeafCol","v","isComment","Comment","leafCols","canReorder","length","every","has","sort","a","b","get","processed","h","key"],"mappings":"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"}
|
package/lib/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "1.1.
|
|
1
|
+
export declare const version = "1.1.1";
|
package/lib/giime/version.js
CHANGED
package/lib/giime/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '1.1.
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '1.1.1';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAA,GAAU;;;;"}
|