@schemx/element-plus 0.0.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +151 -0
- package/dist/__tests__/exports.test.d.ts +2 -0
- package/dist/__tests__/exports.test.d.ts.map +1 -0
- package/dist/__tests__/layout.test.d.ts +2 -0
- package/dist/__tests__/layout.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-components.test.d.ts +2 -0
- package/dist/__tests__/renderer-components.test.d.ts.map +1 -0
- package/dist/__tests__/sensitive-input.test.d.ts +2 -0
- package/dist/__tests__/sensitive-input.test.d.ts.map +1 -0
- package/dist/__tests__/types/layout.types.d.ts +2 -0
- package/dist/__tests__/types/layout.types.d.ts.map +1 -0
- package/dist/__tests__/types/rendererProps.types.d.ts +2 -0
- package/dist/__tests__/types/rendererProps.types.d.ts.map +1 -0
- package/dist/analyze.html +4949 -0
- package/dist/config/defaultConfig.d.ts +6 -0
- package/dist/config/defaultConfig.d.ts.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -0
- package/dist/layout/defaultCol.d.ts +59 -0
- package/dist/layout/defaultCol.d.ts.map +1 -0
- package/dist/layout/defaultRow.d.ts +11 -0
- package/dist/layout/defaultRow.d.ts.map +1 -0
- package/dist/renderers/AutocompleteRenderer/index.d.ts +5 -0
- package/dist/renderers/AutocompleteRenderer/index.d.ts.map +1 -0
- package/dist/renderers/AutocompleteRenderer/index.vue.d.ts +48 -0
- package/dist/renderers/AutocompleteRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/AutocompleteRenderer/types.d.ts +41 -0
- package/dist/renderers/AutocompleteRenderer/types.d.ts.map +1 -0
- package/dist/renderers/CascaderRenderer/index.d.ts +5 -0
- package/dist/renderers/CascaderRenderer/index.d.ts.map +1 -0
- package/dist/renderers/CascaderRenderer/index.vue.d.ts +29 -0
- package/dist/renderers/CascaderRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/CascaderRenderer/types.d.ts +24 -0
- package/dist/renderers/CascaderRenderer/types.d.ts.map +1 -0
- package/dist/renderers/CheckboxRenderer/index.d.ts +5 -0
- package/dist/renderers/CheckboxRenderer/index.d.ts.map +1 -0
- package/dist/renderers/CheckboxRenderer/index.vue.d.ts +21 -0
- package/dist/renderers/CheckboxRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/CheckboxRenderer/types.d.ts +24 -0
- package/dist/renderers/CheckboxRenderer/types.d.ts.map +1 -0
- package/dist/renderers/ColorPickerRenderer/index.d.ts +4 -0
- package/dist/renderers/ColorPickerRenderer/index.d.ts.map +1 -0
- package/dist/renderers/ColorPickerRenderer/index.vue.d.ts +25 -0
- package/dist/renderers/ColorPickerRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/ColorPickerRenderer/types.d.ts +24 -0
- package/dist/renderers/ColorPickerRenderer/types.d.ts.map +1 -0
- package/dist/renderers/DatePickerRenderer/index.d.ts +4 -0
- package/dist/renderers/DatePickerRenderer/index.d.ts.map +1 -0
- package/dist/renderers/DatePickerRenderer/index.vue.d.ts +26 -0
- package/dist/renderers/DatePickerRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/DatePickerRenderer/types.d.ts +20 -0
- package/dist/renderers/DatePickerRenderer/types.d.ts.map +1 -0
- package/dist/renderers/DateTimePickerRenderer/index.d.ts +4 -0
- package/dist/renderers/DateTimePickerRenderer/index.d.ts.map +1 -0
- package/dist/renderers/DateTimePickerRenderer/index.vue.d.ts +26 -0
- package/dist/renderers/DateTimePickerRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/DateTimePickerRenderer/types.d.ts +25 -0
- package/dist/renderers/DateTimePickerRenderer/types.d.ts.map +1 -0
- package/dist/renderers/InputNumberRenderer/index.d.ts +4 -0
- package/dist/renderers/InputNumberRenderer/index.d.ts.map +1 -0
- package/dist/renderers/InputNumberRenderer/index.vue.d.ts +25 -0
- package/dist/renderers/InputNumberRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/InputNumberRenderer/types.d.ts +20 -0
- package/dist/renderers/InputNumberRenderer/types.d.ts.map +1 -0
- package/dist/renderers/InputOtpRenderer/index.d.ts +4 -0
- package/dist/renderers/InputOtpRenderer/index.d.ts.map +1 -0
- package/dist/renderers/InputOtpRenderer/index.vue.d.ts +32 -0
- package/dist/renderers/InputOtpRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/InputOtpRenderer/types.d.ts +22 -0
- package/dist/renderers/InputOtpRenderer/types.d.ts.map +1 -0
- package/dist/renderers/InputRenderer/index.d.ts +4 -0
- package/dist/renderers/InputRenderer/index.d.ts.map +1 -0
- package/dist/renderers/InputRenderer/index.vue.d.ts +46 -0
- package/dist/renderers/InputRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/InputRenderer/types.d.ts +26 -0
- package/dist/renderers/InputRenderer/types.d.ts.map +1 -0
- package/dist/renderers/InputTagRenderer/index.d.ts +4 -0
- package/dist/renderers/InputTagRenderer/index.d.ts.map +1 -0
- package/dist/renderers/InputTagRenderer/index.vue.d.ts +42 -0
- package/dist/renderers/InputTagRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/InputTagRenderer/types.d.ts +26 -0
- package/dist/renderers/InputTagRenderer/types.d.ts.map +1 -0
- package/dist/renderers/MentionRenderer/index.d.ts +5 -0
- package/dist/renderers/MentionRenderer/index.d.ts.map +1 -0
- package/dist/renderers/MentionRenderer/index.vue.d.ts +57 -0
- package/dist/renderers/MentionRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/MentionRenderer/types.d.ts +34 -0
- package/dist/renderers/MentionRenderer/types.d.ts.map +1 -0
- package/dist/renderers/RadioRenderer/index.d.ts +5 -0
- package/dist/renderers/RadioRenderer/index.d.ts.map +1 -0
- package/dist/renderers/RadioRenderer/index.vue.d.ts +21 -0
- package/dist/renderers/RadioRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/RadioRenderer/types.d.ts +22 -0
- package/dist/renderers/RadioRenderer/types.d.ts.map +1 -0
- package/dist/renderers/RateRenderer/index.d.ts +4 -0
- package/dist/renderers/RateRenderer/index.d.ts.map +1 -0
- package/dist/renderers/RateRenderer/index.vue.d.ts +20 -0
- package/dist/renderers/RateRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/RateRenderer/types.d.ts +16 -0
- package/dist/renderers/RateRenderer/types.d.ts.map +1 -0
- package/dist/renderers/SelectRenderer/index.d.ts +5 -0
- package/dist/renderers/SelectRenderer/index.d.ts.map +1 -0
- package/dist/renderers/SelectRenderer/index.vue.d.ts +45 -0
- package/dist/renderers/SelectRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/SelectRenderer/types.d.ts +36 -0
- package/dist/renderers/SelectRenderer/types.d.ts.map +1 -0
- package/dist/renderers/SensitiveInputRenderer/helper.d.ts +13 -0
- package/dist/renderers/SensitiveInputRenderer/helper.d.ts.map +1 -0
- package/dist/renderers/SensitiveInputRenderer/index.d.ts +5 -0
- package/dist/renderers/SensitiveInputRenderer/index.d.ts.map +1 -0
- package/dist/renderers/SensitiveInputRenderer/index.vue.d.ts +47 -0
- package/dist/renderers/SensitiveInputRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/SensitiveInputRenderer/types.d.ts +51 -0
- package/dist/renderers/SensitiveInputRenderer/types.d.ts.map +1 -0
- package/dist/renderers/SliderRenderer/index.d.ts +4 -0
- package/dist/renderers/SliderRenderer/index.d.ts.map +1 -0
- package/dist/renderers/SliderRenderer/index.vue.d.ts +20 -0
- package/dist/renderers/SliderRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/SliderRenderer/types.d.ts +16 -0
- package/dist/renderers/SliderRenderer/types.d.ts.map +1 -0
- package/dist/renderers/SwitchRenderer/index.d.ts +4 -0
- package/dist/renderers/SwitchRenderer/index.d.ts.map +1 -0
- package/dist/renderers/SwitchRenderer/index.vue.d.ts +22 -0
- package/dist/renderers/SwitchRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/SwitchRenderer/types.d.ts +16 -0
- package/dist/renderers/SwitchRenderer/types.d.ts.map +1 -0
- package/dist/renderers/TimePickerRenderer/index.d.ts +4 -0
- package/dist/renderers/TimePickerRenderer/index.d.ts.map +1 -0
- package/dist/renderers/TimePickerRenderer/index.vue.d.ts +25 -0
- package/dist/renderers/TimePickerRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/TimePickerRenderer/types.d.ts +23 -0
- package/dist/renderers/TimePickerRenderer/types.d.ts.map +1 -0
- package/dist/renderers/TimeSelectRenderer/index.d.ts +4 -0
- package/dist/renderers/TimeSelectRenderer/index.d.ts.map +1 -0
- package/dist/renderers/TimeSelectRenderer/index.vue.d.ts +25 -0
- package/dist/renderers/TimeSelectRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/TimeSelectRenderer/types.d.ts +22 -0
- package/dist/renderers/TimeSelectRenderer/types.d.ts.map +1 -0
- package/dist/renderers/TreeSelectRenderer/index.d.ts +5 -0
- package/dist/renderers/TreeSelectRenderer/index.d.ts.map +1 -0
- package/dist/renderers/TreeSelectRenderer/index.vue.d.ts +44 -0
- package/dist/renderers/TreeSelectRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/TreeSelectRenderer/types.d.ts +48 -0
- package/dist/renderers/TreeSelectRenderer/types.d.ts.map +1 -0
- package/dist/renderers/UploadRenderer/__tests__/preview.test.d.ts +2 -0
- package/dist/renderers/UploadRenderer/__tests__/preview.test.d.ts.map +1 -0
- package/dist/renderers/UploadRenderer/file-actions.vue.d.ts +29 -0
- package/dist/renderers/UploadRenderer/file-actions.vue.d.ts.map +1 -0
- package/dist/renderers/UploadRenderer/file-display.vue.d.ts +36 -0
- package/dist/renderers/UploadRenderer/file-display.vue.d.ts.map +1 -0
- package/dist/renderers/UploadRenderer/index.d.ts +4 -0
- package/dist/renderers/UploadRenderer/index.d.ts.map +1 -0
- package/dist/renderers/UploadRenderer/index.vue.d.ts +44 -0
- package/dist/renderers/UploadRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/UploadRenderer/preview.vue.d.ts +76 -0
- package/dist/renderers/UploadRenderer/preview.vue.d.ts.map +1 -0
- package/dist/renderers/UploadRenderer/types.d.ts +67 -0
- package/dist/renderers/UploadRenderer/types.d.ts.map +1 -0
- package/dist/renderers/VirtualizedSelectRenderer/index.d.ts +5 -0
- package/dist/renderers/VirtualizedSelectRenderer/index.d.ts.map +1 -0
- package/dist/renderers/VirtualizedSelectRenderer/index.vue.d.ts +45 -0
- package/dist/renderers/VirtualizedSelectRenderer/index.vue.d.ts.map +1 -0
- package/dist/renderers/VirtualizedSelectRenderer/types.d.ts +36 -0
- package/dist/renderers/VirtualizedSelectRenderer/types.d.ts.map +1 -0
- package/dist/renderers/defaultRenderers.d.ts +499 -0
- package/dist/renderers/defaultRenderers.d.ts.map +1 -0
- package/dist/renderers/index.d.ts +48 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/shared/date.d.ts +11 -0
- package/dist/renderers/shared/date.d.ts.map +1 -0
- package/dist/renderers/shared/options.d.ts +65 -0
- package/dist/renderers/shared/options.d.ts.map +1 -0
- package/dist/renderers/shared/props.d.ts +23 -0
- package/dist/renderers/shared/props.d.ts.map +1 -0
- package/dist/style.css +2 -0
- package/dist/types/schemx.d.ts +37 -0
- package/dist/types/schemx.d.ts.map +1 -0
- package/dist/utils/index.d.ts +140 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element Plus Renderer 属性处理工具。
|
|
3
|
+
*
|
|
4
|
+
* 将 Schemx 的运行时控制属性从 Element Plus 原生属性中剔除,避免字段上下文
|
|
5
|
+
* 和表单内部数据被错误透传给控件。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 合并并过滤 Renderer 的原生控件属性。
|
|
9
|
+
*
|
|
10
|
+
* @param props - Renderer 已声明的属性。
|
|
11
|
+
* @param attrs - Renderer 未声明的透传属性。
|
|
12
|
+
* @param extraKeys - 当前 Renderer 额外需要过滤的属性名。
|
|
13
|
+
* @returns 可传给 Element Plus 控件的属性对象。
|
|
14
|
+
*/
|
|
15
|
+
export declare function getElementProps<TProps extends object>(props: TProps, attrs: Record<string, unknown>, extraKeys?: readonly string[]): Record<string, unknown>;
|
|
16
|
+
/**
|
|
17
|
+
* 从 Renderer Props 中提取表单项之外的 CSS 类名。
|
|
18
|
+
*
|
|
19
|
+
* @param className - Renderer 自定义类名。
|
|
20
|
+
* @returns 可用于根节点的类名值。
|
|
21
|
+
*/
|
|
22
|
+
export declare function getRendererClassName(className?: string): string[];
|
|
23
|
+
//# sourceMappingURL=props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/renderers/shared/props.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,EACnD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,SAAK,GAAG,MAAM,EAAE,CAE7D"}
|
package/dist/style.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.schemx{--schemx-primary-color:var(--el-color-primary,#409eff);--schemx-primary-color-light:var(--el-color-primary-light-9,#ecf5ff);--schemx-text-color:var(--el-text-color-primary,#303133);--schemx-text-color-secondary:var(--el-text-color-regular,#606266);--schemx-text-color-tertiary:var(--el-text-color-placeholder,#a8abb2);--schemx-text-color-placeholder:var(--el-text-color-placeholder,#a8abb2);--schemx-readonly-color:var(--el-text-color-secondary,#909399);--schemx-disabled-color:var(--el-text-color-placeholder,#a8abb2);--schemx-disabled-opacity:.6;--schemx-background-color:var(--el-bg-color,#fff);--schemx-background-color-light:var(--el-fill-color-light,#f5f7fa);--schemx-border-color:var(--el-border-color,#dcdfe6);--schemx-danger-color:var(--el-color-danger,#f56c6c);--schemx-success-color:var(--el-color-success,#67c23a);--schemx-warning-color:var(--el-color-warning,#e6a23c);--schemx-border-radius-xs:var(--el-border-radius-small,2px);--schemx-border-radius-sm:var(--el-border-radius-small,2px);--schemx-border-radius-md:var(--el-border-radius-base,4px);--schemx-border-radius-lg:var(--el-border-radius-base,4px);--schemx-field-label-color:var(--el-text-color-regular,#606266);--schemx-component-size:var(--el-component-size,32px);--schemx-group-arrow-size:7px}.schemx .schemx-group-wrapper{margin-bottom:var(--schemx-padding-md)}.schemx .schemx-group__header{padding-block:var(--schemx-padding-sm)}.schemx .schemx-field--label-left>.schemx-field__content{max-width:80%}.schemx-radio-renderer>.el-radio-group{flex-wrap:wrap;gap:10px 20px;display:flex}.schemx-radio-renderer>.el-radio-group .el-radio{margin-right:0}.schemx-radio-renderer>.el-radio-group{justify-content:var(--schemx-content-align)}.schemx-checkbox-renderer>.el-checkbox-group{flex-wrap:wrap;gap:10px 20px;display:flex}.schemx-checkbox-renderer>.el-checkbox-group .el-checkbox{margin-right:0}.schemx-checkbox-renderer>.el-checkbox-group{justify-content:var(--schemx-content-align)}.schemx-date-picker-renderer>.el-date-editor{--el-date-editor-width:100%}.schemx-cascader-renderer>.el-cascader{width:100%}.schemx-sensitive-input{align-items:center;justify-content:var(--schemx-content-align);gap:6px;width:100%;display:flex}.schemx-sensitive-input__toggle{color:var(--schemx-sensitive-input-action-color,var(--el-color-primary));font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.schemx-sensitive-input__toggle:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px;border-radius:4px}.file-actions[data-v-212f5a0d]{flex-shrink:0;align-items:center;gap:11px;display:flex}.file-actions--inline[data-v-212f5a0d]{margin-left:12px}.file-actions--overlay[data-v-212f5a0d]{opacity:0;background:#00000073;justify-content:center;gap:10px;transition:opacity .2s;position:absolute;inset:0}.file-actions--overlay[data-v-212f5a0d] .el-button:not(.el-button--danger){color:#fff}.file-actions[data-v-212f5a0d] .el-button{--el-font-size-base:16px;margin-left:0}.file-display--picture-card .file-display__card-body:hover .file-actions--overlay,.file-display--picture-card .file-display__card-body:focus-within .file-actions--overlay{opacity:1}.file-display[data-v-97863f75]{box-sizing:border-box;width:100%;min-width:0}.file-display--text .file-display__text-item[data-v-97863f75]{background:var(--el-fill-color-lighter);border-radius:4px;align-items:center;min-height:36px;padding:0 10px;transition:background-color .2s;display:flex}.file-display--text .file-display__text-item[data-v-97863f75]:hover{background:var(--el-fill-color-light)}.file-display--text .file-display__text-item--error[data-v-97863f75]{color:var(--el-color-danger)}.file-display--text .file-display__text-info[data-v-97863f75]{flex:1;align-items:center;min-width:0;display:flex}.file-display--text .file-display__text-info--clickable[data-v-97863f75]{cursor:pointer}.file-display--text .file-display__text-icon[data-v-97863f75]{color:var(--el-text-color-secondary);flex-shrink:0;margin-right:8px}.file-display--text .file-display__text-name[data-v-97863f75]{color:var(--el-text-color-regular);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-display--text .file-display__text-status[data-v-97863f75]{color:var(--el-text-color-secondary);flex-shrink:0;margin-left:8px;font-size:12px}.file-display--picture .file-display__picture-item[data-v-97863f75]{border-radius:4px;align-items:center;min-height:36px;transition:background-color .2s;display:flex}.file-display--picture .file-display__picture-item--error[data-v-97863f75]{color:var(--el-color-danger)}.file-display--picture .file-display__picture-thumb[data-v-97863f75]{background:var(--el-fill-color);border-radius:4px;flex:0 0 48px;justify-content:center;align-items:center;width:45px;height:45px;margin-right:10px;display:flex;overflow:hidden}.file-display--picture .file-display__picture-thumb--clickable[data-v-97863f75]{cursor:pointer}.file-display--picture .file-display__picture-image[data-v-97863f75]{object-fit:cover;width:100%;height:100%}.file-display--picture .file-display__picture-file-icon[data-v-97863f75]{color:var(--el-text-color-secondary);font-size:24px}.file-display--picture .file-display__picture-info[data-v-97863f75]{flex:1;align-items:center;min-width:0;display:flex}.file-display--picture .file-display__picture-info--clickable[data-v-97863f75]{cursor:pointer}.file-display--picture .file-display__picture-name[data-v-97863f75]{color:var(--el-text-color-regular);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-display--picture .file-display__picture-status[data-v-97863f75]{color:var(--el-text-color-secondary);flex-shrink:0;margin-left:8px;font-size:12px}.file-display--picture-card[data-v-97863f75]{height:100%}.file-display--picture-card .file-display__card[data-v-97863f75]{background:var(--el-bg-color);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.file-display--picture-card .file-display__card--error[data-v-97863f75]{color:var(--el-color-danger)}.file-display--picture-card .file-display__card-body[data-v-97863f75]{background:var(--el-fill-color-lighter);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.file-display--picture-card .file-display__card-body--clickable[data-v-97863f75]{cursor:pointer}.file-display--picture-card .file-display__card-image[data-v-97863f75]{object-fit:cover;width:100%;height:100%}.file-display--picture-card .file-display__card-file-icon[data-v-97863f75]{color:var(--el-text-color-secondary);font-size:36px}.file-display--picture-card .file-display__card-status[data-v-97863f75]{color:#fff;background:#0000008c;border-radius:3px;padding:1px 4px;font-size:12px;position:absolute;bottom:4px;right:6px}.file-display--picture-card .file-display__card-footer[data-v-97863f75]{flex:0 0 32px;align-items:center;gap:4px;min-width:0;padding:0 6px;display:flex}.file-display--picture-card .file-display__card-name[data-v-97863f75]{min-width:0;color:var(--el-text-color-regular);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-preview__action{cursor:pointer;outline:none}.file-preview__action:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid}.file-preview__content{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.file-preview__content>*{pointer-events:auto}.file-preview__unsupported{color:var(--el-fill-color-light);flex-direction:column;align-items:center;gap:24px;display:flex}.file-preview__unsupported-icon{flex-shrink:0;font-size:48px}.file-preview__unsupported p{margin:0;font-size:15px}.el-image-viewer__mask{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:1;background-color:#00000059}.schemx-renderer .el-upload-list,.schemx-renderer .el-upload{--el-upload-list-picture-card-size:125px;--el-upload-picture-card-size:125px}.schemx-upload-renderer__readonly-list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schemx-upload-renderer__readonly-list .el-image{width:80px;height:80px}.schemx-upload-renderer__readonly-file{color:var(--el-text-color-regular)}.schemx-date-time-picker-renderer>.el-date-editor{--el-date-editor-width:100%}.schemx-time-picker-renderer>.el-date-editor{--el-date-editor-width:100%}.schemx-renderer{box-sizing:border-box;width:100%}
|
|
2
|
+
/*$vite$:1*/
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AutocompleteRendererProps, CascaderRendererProps, CheckboxRendererProps, ColorPickerRendererProps, DatePickerRendererProps, DateTimePickerRendererProps, InputNumberRendererProps, InputOtpRendererProps, InputRendererProps, InputTagRendererProps, MentionRendererProps, RadioRendererProps, RateRendererProps, SelectRendererProps, SensitiveInputRendererProps, SliderRendererProps, SwitchRendererProps, TimePickerRendererProps, TimeSelectRendererProps, TreeSelectRendererProps, UploadRendererProps, VirtualizedSelectRendererProps } from '../renderers';
|
|
2
|
+
import { Values } from '@schemx/core';
|
|
3
|
+
import { SchemxWithDictionary } from '@schemx/vue';
|
|
4
|
+
import { ColProps, RowProps } from 'element-plus';
|
|
5
|
+
declare module "@schemx/core" {
|
|
6
|
+
interface SchemxRendererDefinition<TValues extends Values> {
|
|
7
|
+
input: InputRendererProps;
|
|
8
|
+
inputNumber: InputNumberRendererProps;
|
|
9
|
+
switch: SwitchRendererProps;
|
|
10
|
+
radio: SchemxWithDictionary<RadioRendererProps, TValues>;
|
|
11
|
+
checkbox: SchemxWithDictionary<CheckboxRendererProps, TValues>;
|
|
12
|
+
datePicker: DatePickerRendererProps;
|
|
13
|
+
cascader: SchemxWithDictionary<CascaderRendererProps, TValues>;
|
|
14
|
+
sensitiveInput: SensitiveInputRendererProps;
|
|
15
|
+
rate: RateRendererProps;
|
|
16
|
+
slider: SliderRendererProps;
|
|
17
|
+
upload: UploadRendererProps;
|
|
18
|
+
autocomplete: SchemxWithDictionary<AutocompleteRendererProps, TValues>;
|
|
19
|
+
colorPicker: ColorPickerRendererProps;
|
|
20
|
+
datetimePicker: DateTimePickerRendererProps;
|
|
21
|
+
inputTag: InputTagRendererProps;
|
|
22
|
+
inputOtp: InputOtpRendererProps;
|
|
23
|
+
mention: SchemxWithDictionary<MentionRendererProps, TValues>;
|
|
24
|
+
select: SchemxWithDictionary<SelectRendererProps, TValues>;
|
|
25
|
+
virtualizedSelect: SchemxWithDictionary<VirtualizedSelectRendererProps, TValues>;
|
|
26
|
+
timePicker: TimePickerRendererProps;
|
|
27
|
+
timeSelect: TimeSelectRendererProps;
|
|
28
|
+
treeSelect: SchemxWithDictionary<TreeSelectRendererProps, TValues>;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
declare module "@schemx/vue" {
|
|
32
|
+
interface SchemxColDefinition<TValues extends Values = Values> extends ColProps {
|
|
33
|
+
}
|
|
34
|
+
interface SchemxRowDefinition<TValues extends Values = Values> extends Omit<RowProps, "gutter"> {
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=schemx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemx.d.ts","sourceRoot":"","sources":["../../src/types/schemx.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC/B,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,wBAAwB,CAAC,OAAO,SAAS,MAAM;QACvD,KAAK,EAAE,kBAAkB,CAAA;QACzB,WAAW,EAAE,wBAAwB,CAAA;QACrC,MAAM,EAAE,mBAAmB,CAAA;QAC3B,KAAK,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;QACxD,QAAQ,EAAE,oBAAoB,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAA;QAC9D,UAAU,EAAE,uBAAuB,CAAA;QACnC,QAAQ,EAAE,oBAAoB,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAA;QAC9D,cAAc,EAAE,2BAA2B,CAAA;QAC3C,IAAI,EAAE,iBAAiB,CAAA;QACvB,MAAM,EAAE,mBAAmB,CAAA;QAC3B,MAAM,EAAE,mBAAmB,CAAA;QAC3B,YAAY,EAAE,oBAAoB,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAA;QACtE,WAAW,EAAE,wBAAwB,CAAA;QACrC,cAAc,EAAE,2BAA2B,CAAA;QAC3C,QAAQ,EAAE,qBAAqB,CAAA;QAC/B,QAAQ,EAAE,qBAAqB,CAAA;QAC/B,OAAO,EAAE,oBAAoB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;QAC1D,iBAAiB,EAAE,oBAAoB,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAA;QAChF,UAAU,EAAE,uBAAuB,CAAA;QACnC,UAAU,EAAE,uBAAuB,CAAA;QACnC,UAAU,EAAE,oBAAoB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;KACnE;CACF;AAED,OAAO,QAAQ,aAAa,CAAC;IAE3B,UAAU,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ;KAAG;IAGlF,UAAU,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,IAAI,CACzE,QAAQ,EACR,QAAQ,CACT;KAAG;CACL"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element Plus Renderer 工具函数
|
|
3
|
+
*
|
|
4
|
+
* 提供渲染器组件中常用的属性提取、树形数据查找、文件名解析等工具。
|
|
5
|
+
*
|
|
6
|
+
* @module utils
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 从 attrs 对象中获取指定属性值,不存在时返回默认值。
|
|
10
|
+
*
|
|
11
|
+
* 用于从 Vue 组件的 `attrs` 中安全地提取透传属性,
|
|
12
|
+
* 常见场景包括读取 Renderer 的透传属性。
|
|
13
|
+
*
|
|
14
|
+
* @param attrs - Vue 组件的 attrs 对象
|
|
15
|
+
* @param key - 属性名
|
|
16
|
+
* @param defaultValue - 默认值
|
|
17
|
+
* @typeParam TProps - attrs 对象类型
|
|
18
|
+
*
|
|
19
|
+
* @returns 属性值或默认值
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* getFieldProps(attrs, "align", "right")
|
|
23
|
+
* getFieldProps(attrs, "rightIcon", "arrow")
|
|
24
|
+
*/
|
|
25
|
+
export declare function getFieldProps<TProps extends Record<string, unknown>>(attrs: TProps, key: keyof TProps, defaultValue?: TProps[typeof key]): TProps[typeof key];
|
|
26
|
+
/**
|
|
27
|
+
* 判断值是否应按空值展示。
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* isEmptyDisplayValue([]) // => true
|
|
32
|
+
* isEmptyDisplayValue(0) // => false
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function isEmptyDisplayValue(value: unknown): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* 获取只读态展示值。
|
|
38
|
+
*
|
|
39
|
+
* 只在值为空时回退到 readonlyPlaceholder,保留 0、false 等有效值。
|
|
40
|
+
*
|
|
41
|
+
* @typeParam TValue - 待展示的值类型。
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* getReadonlyDisplayValue(undefined, "未填写") // => "未填写"
|
|
46
|
+
* getReadonlyDisplayValue(0, "未填写") // => 0
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function getReadonlyDisplayValue<TValue>(value: TValue, readonlyPlaceholder?: string): TValue | string;
|
|
50
|
+
export type RendererMode = "editable" | "disabled" | "readonly";
|
|
51
|
+
/**
|
|
52
|
+
* 解析渲染器当前呈现模式。
|
|
53
|
+
*
|
|
54
|
+
* disabled/readonly 仍会阻止交互。
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* resolveRendererMode({ readonly: true }) // => "readonly"
|
|
59
|
+
* resolveRendererMode({ disabled: true, readonly: true }) // => "disabled"
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function resolveRendererMode(options: {
|
|
63
|
+
disabled?: boolean;
|
|
64
|
+
readonly?: boolean;
|
|
65
|
+
}): RendererMode;
|
|
66
|
+
/**
|
|
67
|
+
* 判断当前状态是否允许用户交互。
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* isRendererInteractive("editable") // => true
|
|
72
|
+
* isRendererInteractive("disabled") // => false
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function isRendererInteractive(mode: RendererMode): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* 树形查找结果
|
|
78
|
+
*
|
|
79
|
+
* @typeParam TNode - 树节点类型。
|
|
80
|
+
* @typeParam TValue - 节点值类型。
|
|
81
|
+
*/
|
|
82
|
+
export interface FindTreeItemResult<TNode extends Record<string, unknown> = Record<string, unknown>, TValue = unknown> {
|
|
83
|
+
/** 匹配节点 */
|
|
84
|
+
node: TNode | null;
|
|
85
|
+
/** 从根到匹配节点的 label 路径 */
|
|
86
|
+
labels: string[];
|
|
87
|
+
/** 从根到匹配节点的 value 路径 */
|
|
88
|
+
values: TValue[];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 在树形数据中查找指定值的节点,返回匹配节点及其路径信息。
|
|
92
|
+
*
|
|
93
|
+
* 支持自定义字段名映射,适用于 Cascader 等树形选择组件。
|
|
94
|
+
*
|
|
95
|
+
* @typeParam TNode - 树节点类型。
|
|
96
|
+
* @typeParam TValue - 待查找的节点值类型。
|
|
97
|
+
* @param tree - 树形数据数组
|
|
98
|
+
* @param targetValue - 要查找的目标值
|
|
99
|
+
* @param options - 字段名配置
|
|
100
|
+
* @param options.labelKey - label 字段名,默认 `"label"`
|
|
101
|
+
* @param options.valueKey - value 字段名,默认 `"value"`
|
|
102
|
+
* @param options.childrenKey - children 字段名,默认 `"children"`
|
|
103
|
+
*
|
|
104
|
+
* @returns `{ node, labels, values }`:匹配节点、label 路径和 value 路径
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* const result = findTreeItem(tree, "guangzhou", {
|
|
108
|
+
* labelKey: "text",
|
|
109
|
+
* valueKey: "value",
|
|
110
|
+
* childrenKey: "children",
|
|
111
|
+
* })
|
|
112
|
+
* const { node, labels, values } = result
|
|
113
|
+
* // node => { text: "广州", value: "guangzhou" }
|
|
114
|
+
* // labels => ["广东", "广州"]
|
|
115
|
+
* // values => ["guangdong", "guangzhou"]
|
|
116
|
+
*/
|
|
117
|
+
export declare function findTreeItem<TNode extends Record<string, unknown>, TValue>(tree: TNode[], targetValue: TValue, options?: {
|
|
118
|
+
labelKey?: string;
|
|
119
|
+
valueKey?: string;
|
|
120
|
+
childrenKey?: string;
|
|
121
|
+
}): FindTreeItemResult<TNode, TValue>;
|
|
122
|
+
/**
|
|
123
|
+
* 从 URL 或文件路径中提取文件名。
|
|
124
|
+
*
|
|
125
|
+
* 去除查询参数和 hash 后,取最后一段路径作为文件名。
|
|
126
|
+
* 用于上传组件中生成文件的唯一标识。
|
|
127
|
+
*
|
|
128
|
+
* @param url - 文件 URL 或路径
|
|
129
|
+
*
|
|
130
|
+
* @returns 文件名字符串,无法解析时返回原始输入或时间戳
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* getFileName("https://cdn.example.com/uploads/photo.jpg?t=123")
|
|
134
|
+
* // => "photo.jpg"
|
|
135
|
+
*
|
|
136
|
+
* getFileName("blob:http://localhost:3000/abc-def")
|
|
137
|
+
* // => "abc-def"
|
|
138
|
+
*/
|
|
139
|
+
export declare function getFileName(url: string | undefined | null): string;
|
|
140
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,MAAM,EACjB,YAAY,GAAE,MAAM,CAAC,OAAO,GAAG,CAAmC,GACjE,MAAM,CAAC,OAAO,GAAG,CAAC,CAEpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,KAAK,EAAE,MAAM,EACb,mBAAmB,SAAM,GACxB,MAAM,GAAG,MAAM,CAEjB;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAE/D;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,YAAY,CAKf;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAEjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CACjC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,GAAG,OAAO;IAEhB,WAAW;IACX,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;IAClB,wBAAwB;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,wBAAwB;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EACxE,IAAI,EAAE,KAAK,EAAE,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CAChB,GACL,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAoCnC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAclE"}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "module",
|
|
3
|
+
"name": "@schemx/element-plus",
|
|
4
|
+
"version": "0.0.1-beta.0",
|
|
5
|
+
"description": "基于 Element Plus UI 库的 schemx 渲染器适配包",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"schemx",
|
|
8
|
+
"element-plus",
|
|
9
|
+
"vue",
|
|
10
|
+
"vue3",
|
|
11
|
+
"form",
|
|
12
|
+
"dynamic-form",
|
|
13
|
+
"json-schema"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://github.com/Jiohon/schemx/tree/main/packages/element-plus#readme",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/Jiohon/schemx/issues"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/Jiohon/schemx.git",
|
|
22
|
+
"directory": "packages/element-plus"
|
|
23
|
+
},
|
|
24
|
+
"main": "./dist/index.cjs",
|
|
25
|
+
"module": "./dist/index.mjs",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"import": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"default": "./dist/index.mjs"
|
|
32
|
+
},
|
|
33
|
+
"require": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"default": "./dist/index.cjs"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"./style.css": "./dist/style.css"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist",
|
|
42
|
+
"README.md"
|
|
43
|
+
],
|
|
44
|
+
"sideEffects": [
|
|
45
|
+
"**/*.css",
|
|
46
|
+
"**/*.scss",
|
|
47
|
+
"**/index.ts"
|
|
48
|
+
],
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"@element-plus/icons-vue": "^2.3.1",
|
|
51
|
+
"element-plus": "^2.14.0",
|
|
52
|
+
"vue": "^3.0.0"
|
|
53
|
+
},
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"dayjs": "^1.11.19",
|
|
56
|
+
"@schemx/vue": "1.2.0",
|
|
57
|
+
"@schemx/core": "1.1.1"
|
|
58
|
+
},
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@vue/test-utils": "^2.4.6",
|
|
62
|
+
"@element-plus/icons-vue": "^2.3.1",
|
|
63
|
+
"element-plus": "^2.14.0",
|
|
64
|
+
"vue": "^3.4.0"
|
|
65
|
+
},
|
|
66
|
+
"scripts": {
|
|
67
|
+
"build": "pnpm run type-check && vp build",
|
|
68
|
+
"build:analyze": "vp build",
|
|
69
|
+
"build:deps": "pnpm --filter \"@schemx/element-plus^...\" run build",
|
|
70
|
+
"test": "vp test run --passWithNoTests",
|
|
71
|
+
"lint": "eslint \"src/**/*.{ts,tsx,vue,js,jsx}\"",
|
|
72
|
+
"lint:fix": "eslint \"src/**/*.{ts,tsx,vue,js,jsx}\" --fix",
|
|
73
|
+
"format": "vp fmt \"src/**/*.{ts,tsx,vue,js,jsx,json,css,scss}\"",
|
|
74
|
+
"format:check": "vp fmt --check \"src/**/*.{ts,tsx,vue,js,jsx,json,css,scss}\"",
|
|
75
|
+
"type-check": "pnpm run build:deps && tsc -p tsconfig.json --noEmit",
|
|
76
|
+
"check": "pnpm run build:deps && pnpm run lint && pnpm run format:check && tsc -p tsconfig.json --noEmit",
|
|
77
|
+
"pack-local": "node ../../scripts/workflow.ts pack-local --target packages/element-plus"
|
|
78
|
+
}
|
|
79
|
+
}
|