@es-plus/vue2 0.9.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 (53) hide show
  1. package/README.md +156 -0
  2. package/dist/components/es-crud-page/es-crud-page.vue.d.ts +57 -0
  3. package/dist/components/es-crud-page/es-crud-page.vue.d.ts.map +1 -0
  4. package/dist/components/es-crud-page/index.d.ts +6 -0
  5. package/dist/components/es-crud-page/index.d.ts.map +1 -0
  6. package/dist/components/es-crud-page/types.d.ts +100 -0
  7. package/dist/components/es-crud-page/types.d.ts.map +1 -0
  8. package/dist/components/es-dialog/component.vue.d.ts +236 -0
  9. package/dist/components/es-dialog/component.vue.d.ts.map +1 -0
  10. package/dist/components/es-dialog/index.d.ts +6 -0
  11. package/dist/components/es-dialog/index.d.ts.map +1 -0
  12. package/dist/components/es-dialog/render-jsx.vue.d.ts +60 -0
  13. package/dist/components/es-dialog/render-jsx.vue.d.ts.map +1 -0
  14. package/dist/components/es-dialog/use-dialog.d.ts +17 -0
  15. package/dist/components/es-dialog/use-dialog.d.ts.map +1 -0
  16. package/dist/components/es-form/es-form.vue.d.ts +174 -0
  17. package/dist/components/es-form/es-form.vue.d.ts.map +1 -0
  18. package/dist/components/es-form/index.d.ts +5 -0
  19. package/dist/components/es-form/index.d.ts.map +1 -0
  20. package/dist/components/es-table/column-item.vue.d.ts +17 -0
  21. package/dist/components/es-table/column-item.vue.d.ts.map +1 -0
  22. package/dist/components/es-table/component.vue.d.ts +228 -0
  23. package/dist/components/es-table/component.vue.d.ts.map +1 -0
  24. package/dist/components/es-table/index.d.ts +5 -0
  25. package/dist/components/es-table/index.d.ts.map +1 -0
  26. package/dist/components/es-table/table-btns.vue.d.ts +72 -0
  27. package/dist/components/es-table/table-btns.vue.d.ts.map +1 -0
  28. package/dist/composables/use-form-inputs.d.ts +27 -0
  29. package/dist/composables/use-form-inputs.d.ts.map +1 -0
  30. package/dist/composables/use-form-layout.d.ts +61 -0
  31. package/dist/composables/use-form-layout.d.ts.map +1 -0
  32. package/dist/composables/use-form-request.d.ts +10 -0
  33. package/dist/composables/use-form-request.d.ts.map +1 -0
  34. package/dist/composables/use-table-resize.d.ts +30 -0
  35. package/dist/composables/use-table-resize.d.ts.map +1 -0
  36. package/dist/composables/use-table-selection.d.ts +11 -0
  37. package/dist/composables/use-table-selection.d.ts.map +1 -0
  38. package/dist/es-plus-vue2.js +2105 -0
  39. package/dist/es-plus-vue2.js.map +1 -0
  40. package/dist/es-plus-vue2.umd.cjs +2 -0
  41. package/dist/es-plus-vue2.umd.cjs.map +1 -0
  42. package/dist/index.d.ts +23 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/style.css +1 -0
  45. package/dist/types/index.d.ts +8 -0
  46. package/dist/types/index.d.ts.map +1 -0
  47. package/dist/utils/icon.d.ts +13 -0
  48. package/dist/utils/icon.d.ts.map +1 -0
  49. package/dist/utils/size.d.ts +29 -0
  50. package/dist/utils/size.d.ts.map +1 -0
  51. package/dist/vue-compat.d.ts +18 -0
  52. package/dist/vue-compat.d.ts.map +1 -0
  53. package/package.json +85 -0
package/README.md ADDED
@@ -0,0 +1,156 @@
1
+ # @es-plus/vue2
2
+
3
+ > Vue 2 + Element UI renderer for the **es-plus** ecosystem — sharing the same JSON-schema CRUD configuration as the Vue 3 renderer ([`@es-plus/vue3`](https://www.npmjs.com/package/@es-plus/vue3)).
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@es-plus/vue2.svg)](https://www.npmjs.com/package/@es-plus/vue2)
6
+ [![Vue 2](https://img.shields.io/badge/Vue-2.6%20%7C%202.7-42b883)](https://v2.vuejs.org/)
7
+ [![Element UI](https://img.shields.io/badge/Element%20UI-2.15-409EFF)](https://element.eleme.io/)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
9
+
10
+ ## Why @es-plus/vue2
11
+
12
+ - **Same config, two frameworks** — a single `columns` / `formItemList` definition powers both Vue 2 and Vue 3 deployments. No rewrites when migrating, no divergence between teams on different stacks.
13
+ - **AI-friendly schema-driven CRUD** — built around a stable JSON Schema, ideal for code-gen, MCP tools, and LLM workflows.
14
+ - **Element UI parity** — bundles `EsForm`, `EsTable`, `EsDialog`, `EsCrudPage`, `useDialog`, plus the same `httpRequest` / permission / global-config plumbing.
15
+
16
+ ## Compatibility
17
+
18
+ | Dependency | Supported |
19
+ | --- | --- |
20
+ | Vue | `^2.6.14` (Vue 2.7's native Composition API is preferred) |
21
+ | `@vue/composition-api` | `^1.7.0` (required only on Vue ≤ 2.6) |
22
+ | Element UI | `^2.15.0` |
23
+ | `@es-plus/core` | `^1.0.0` |
24
+
25
+ ## Install
26
+
27
+ ```bash
28
+ # Vue 2.7+ (recommended — no extra plugin needed)
29
+ npm install @es-plus/vue2 element-ui vue@^2.7
30
+
31
+ # Vue 2.6.x (needs @vue/composition-api)
32
+ npm install @es-plus/vue2 element-ui @vue/composition-api vue@^2.6
33
+ ```
34
+
35
+ ## Setup
36
+
37
+ ```js
38
+ import Vue from 'vue'
39
+ import ElementUI from 'element-ui'
40
+ import 'element-ui/lib/theme-chalk/index.css'
41
+
42
+ // Vue 2.6 only — skip on Vue 2.7+
43
+ import VueCompositionAPI from '@vue/composition-api'
44
+ Vue.use(VueCompositionAPI)
45
+
46
+ import EsPlus from '@es-plus/vue2'
47
+ import '@es-plus/vue2/dist/style.css'
48
+
49
+ import { configureEsPlus } from '@es-plus/core/config'
50
+
51
+ Vue.use(ElementUI)
52
+ Vue.use(EsPlus)
53
+
54
+ configureEsPlus({
55
+ httpRequest: async ({ url, method, data }) => {
56
+ return fetch(url, { method, body: JSON.stringify(data) }).then(r => r.json())
57
+ },
58
+ configTableOut: (res) => ({ list: res.data.records, total: res.data.total }),
59
+ permission: (code) => store.state.permissions.includes(code),
60
+ })
61
+ ```
62
+
63
+ ## Quick example
64
+
65
+ ```vue
66
+ <template>
67
+ <es-table
68
+ :columns="columns"
69
+ :api-params="apiParams"
70
+ :btn-config="btnConfig"
71
+ :form-item-list="searchForm"
72
+ />
73
+ </template>
74
+
75
+ <script>
76
+ export default {
77
+ data: () => ({
78
+ apiParams: { url: '/api/users', method: 'GET' },
79
+ columns: [
80
+ { prop: 'name', label: '姓名', width: 120 },
81
+ { prop: 'status', label: '状态', formatter: row => row.status === 1 ? '启用' : '禁用' },
82
+ { label: '操作', btnList: [
83
+ { name: '编辑', click: (row) => this.edit(row) },
84
+ { name: '删除', type: 'danger', click: (row) => this.remove(row) },
85
+ ] },
86
+ ],
87
+ searchForm: [
88
+ { prop: 'keyword', label: '关键词', formtype: 'Input' },
89
+ { prop: 'status', label: '状态', formtype: 'Select', options: [
90
+ { label: '启用', value: 1 }, { label: '禁用', value: 0 },
91
+ ] },
92
+ ],
93
+ btnConfig: [
94
+ { name: '新增', type: 'primary', code: 1, click: () => this.create() },
95
+ ],
96
+ }),
97
+ }
98
+ </script>
99
+ ```
100
+
101
+ The same `columns` / `searchForm` / `btnConfig` arrays work unchanged in `@es-plus/vue3` — only `Vue.use()` and the import path differ.
102
+
103
+ ## Components
104
+
105
+ | Component | Purpose |
106
+ | --- | --- |
107
+ | `EsForm` | Configuration-driven form with row/col layout, fold/unfold, validation |
108
+ | `EsTable` | Configuration-driven table with toolbar, pagination, search form, cross-page selection |
109
+ | `EsDialog` | Programmable dialog used by `useDialog` |
110
+ | `EsCrudPage` | Schema-driven CRUD page assembling `EsTable` + `EsForm` + `useDialog` |
111
+ | `useDialog` | Imperative dialog API (`open`, `close`, `confirm`) |
112
+
113
+ ## Sharing the same config across Vue 2 and Vue 3
114
+
115
+ The `columns` / `formItemList` / `btnConfig` / `apiParams` shapes live in [`@es-plus/core`](https://www.npmjs.com/package/@es-plus/core). Use them as the single source of truth for configs that ship to both renderers:
116
+
117
+ ```ts
118
+ // shared/employee.config.ts
119
+ import type { ColumnConfig, FormItemConfig } from '@es-plus/core/types'
120
+
121
+ export const employeeColumns: ColumnConfig[] = [/* ... */]
122
+ export const employeeForm: FormItemConfig[] = [/* ... */]
123
+ ```
124
+
125
+ ```ts
126
+ // vue3/EmployeePage.vue AND vue2/EmployeePage.vue
127
+ import { employeeColumns, employeeForm } from '@/shared/employee.config'
128
+ ```
129
+
130
+ ## Differences vs @es-plus/vue3
131
+
132
+ | Feature | Vue 3 (`@es-plus/vue3`) | Vue 2 (`@es-plus/vue2`) |
133
+ | --- | --- | --- |
134
+ | Virtual scrolling (`virtual: true`) | Yes (`el-table-v2`) | **Not supported** — Element UI has no `el-table-v2` |
135
+ | `ElConfigProvider` locale/size injection | Yes | Use Element UI's global `Vue.use(ElementUI, { locale, size })` |
136
+ | Icons | Element Plus icon components | Element UI class strings (`el-icon-edit`) — converted automatically when needed |
137
+ | Default size | `default` (Element Plus) | `mini` — matches Element UI v2 visual density |
138
+
139
+ `size` values written for Vue 3 (`large` / `default` / `small`) are auto-mapped into Element UI's (`medium` / `small` / `mini`) so configs remain portable.
140
+
141
+ ## Migration from Vue 3
142
+
143
+ You generally don't migrate — you target both. If you do:
144
+
145
+ 1. Replace `import EsPlus from '@es-plus/vue3'` with `import EsPlus from '@es-plus/vue2'`.
146
+ 2. Swap `vue@3 + element-plus` for `vue@2 + element-ui` (and `@vue/composition-api` if on 2.6).
147
+ 3. Drop `virtual: true` on tables (or keep it — it's silently ignored).
148
+ 4. `<script setup>` and `<el-icon><Delete/></el-icon>` aren't Vue 2 syntax — convert to Options API / template strings as appropriate.
149
+
150
+ ## Repository
151
+
152
+ Monorepo: [github.com/liujiaao/es-plus](https://github.com/liujiaao/es-plus)
153
+
154
+ ## License
155
+
156
+ [MIT](./LICENSE) © liujiaao
@@ -0,0 +1,57 @@
1
+ import { CrudPageSchema } from './types';
2
+ import { BtnConfig, TableColumn } from '@es-plus/core';
3
+
4
+ declare const _default: import('vue').DefineComponent<{
5
+ schema: {
6
+ type: () => CrudPageSchema;
7
+ required: true;
8
+ };
9
+ httpRequest: {
10
+ type: () => (params: Record<string, unknown>) => Promise<unknown>;
11
+ default: any;
12
+ };
13
+ autoLoad: {
14
+ type: BooleanConstructor;
15
+ default: boolean;
16
+ };
17
+ }, {
18
+ refresh: () => void;
19
+ getSelectedRows: () => Record<string, unknown>[];
20
+ tableRef: any;
21
+ formRef: any;
22
+ queryModel: Record<string, unknown>;
23
+ openDialog: (key: string, row?: Record<string, unknown>) => void;
24
+ closeDialog: (key: string) => void;
25
+ tableData: import('vue').Ref<Record<string, unknown>[]>;
26
+ paginationState: import('vue').Ref<{
27
+ pageSize: number;
28
+ current: number;
29
+ total: number;
30
+ pageSizes?: number[];
31
+ size?: import('@es-plus/core').EsButtonSize;
32
+ isSmall?: boolean;
33
+ layout?: string;
34
+ }>;
35
+ mergedColumns: import('vue').ComputedRef<TableColumn[]>;
36
+ mergedOptions: import('vue').ComputedRef<Record<string, unknown>>;
37
+ mergedFormBtns: import('vue').ComputedRef<BtnConfig[]>;
38
+ formLayoutProps: import('vue').ComputedRef<Record<string, unknown>>;
39
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("view" | "query" | "add" | "edit" | "delete" | "export" | "row-click" | "btn-click" | "dialog-confirm" | "dialog-cancel" | "dialog-open")[], string, Readonly<import('vue').ExtractPropTypes<{
40
+ schema: {
41
+ type: () => CrudPageSchema;
42
+ required: true;
43
+ };
44
+ httpRequest: {
45
+ type: () => (params: Record<string, unknown>) => Promise<unknown>;
46
+ default: any;
47
+ };
48
+ autoLoad: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ }>>, {
53
+ httpRequest: (params: Record<string, unknown>) => Promise<unknown>;
54
+ autoLoad: boolean;
55
+ }>;
56
+ export default _default;
57
+ //# sourceMappingURL=es-crud-page.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es-crud-page.vue.d.ts","sourceRoot":"","sources":["../../../src/components/es-crud-page/es-crud-page.vue"],"names":[],"mappings":"AA8BA;AAqBA,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;;;cAO7B,MAAM,cAAc;;;;cAEf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC;;;;;;;;;2BA+d9D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;;;;sBA1L5B,MAAM,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;uBA8FpC,MAAM;;;;;;;;;;;;;;;;;cArYN,MAAM,cAAc;;;;cAEf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC;;;;;;;;0BAA5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC;;;AAP9F,wBAwgBE"}
@@ -0,0 +1,6 @@
1
+ import { default as EsCrudPage } from './es-crud-page.vue';
2
+
3
+ export default EsCrudPage;
4
+ export { EsCrudPage };
5
+ export type { CrudPageSchema, CrudBtnConfig, TableBtnConfig, OperationColumnConfig, RowBtnConfig, RowBtnContext, CrudDialogConfig, DialogRenderContext, DialogBtnConfig, DialogActionContext, CrudAction, } from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/es-crud-page/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,UAAU,MAAM,oBAAoB,CAAA;AAU3C,eAAe,UAAU,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,CAAA;AACrB,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,UAAU,GACX,MAAM,SAAS,CAAA"}
@@ -0,0 +1,100 @@
1
+ import { FormItemOption, BtnConfig, TableColumn, TableOptions, PaginationConfig, DialogOptions } from '@es-plus/core';
2
+
3
+ export interface CrudPageSchema {
4
+ /** 查询表单字段配置 */
5
+ formItems?: FormItemOption[];
6
+ /** 表单布局配置 */
7
+ formLayout?: {
8
+ span?: number;
9
+ labelWidth?: string | number;
10
+ minFoldRows?: number;
11
+ };
12
+ /** 工具栏按钮(显式声明,渲染在 EsForm 按钮区域) */
13
+ toolbarBtns?: CrudBtnConfig[];
14
+ /** 表格工具栏按钮(渲染在 EsTable 上方的 configBtn 区域) */
15
+ tableBtns?: TableBtnConfig[];
16
+ /** 表格列配置 */
17
+ columns: TableColumn[];
18
+ /** 表格选项配置 */
19
+ tableOptions?: Partial<TableOptions>;
20
+ /** 分页配置 */
21
+ pagination?: PaginationConfig;
22
+ /** 操作列配置(false = 不显示操作列) */
23
+ operationColumn?: OperationColumnConfig | false;
24
+ /** 多弹窗配置 */
25
+ dialogs?: Record<string, CrudDialogConfig>;
26
+ /** @deprecated 使用 toolbarBtns + operationColumn 替代 */
27
+ actions?: CrudAction[];
28
+ /** @deprecated 使用 dialogs 替代 */
29
+ dialogFormItems?: FormItemOption[];
30
+ /** @deprecated 使用 dialogs 替代 */
31
+ dialogOptions?: Partial<DialogOptions>;
32
+ /** @deprecated 使用 toolbarBtns 替代 */
33
+ queryBtns?: BtnConfig[];
34
+ }
35
+ export interface CrudBtnConfig extends BtnConfig {
36
+ dialogKey?: string;
37
+ actionType?: string;
38
+ confirm?: string | boolean;
39
+ }
40
+ export interface TableBtnConfig extends CrudBtnConfig {
41
+ code?: 1 | 2;
42
+ }
43
+ export interface OperationColumnConfig {
44
+ label?: string;
45
+ width?: number | string;
46
+ fixed?: boolean | string;
47
+ btns: RowBtnConfig[];
48
+ }
49
+ export interface RowBtnConfig {
50
+ name: string;
51
+ key?: string;
52
+ type?: string;
53
+ icon?: string;
54
+ permissionValue?: string;
55
+ dialogKey?: string;
56
+ confirm?: string | boolean;
57
+ hidden?: boolean | ((row: Record<string, unknown>) => boolean);
58
+ click?: (row: Record<string, unknown>, context: RowBtnContext) => void;
59
+ }
60
+ export interface RowBtnContext {
61
+ refresh: () => void;
62
+ getSelectedRows: () => Record<string, unknown>[];
63
+ openDialog: (key: string, row?: Record<string, unknown>) => void;
64
+ }
65
+ export interface CrudDialogConfig {
66
+ title?: string | ((row?: Record<string, unknown>) => string);
67
+ width?: string | number;
68
+ formItems?: FormItemOption[];
69
+ formLayout?: {
70
+ span?: number;
71
+ labelWidth?: string | number;
72
+ };
73
+ render?: (h: any, context: DialogRenderContext) => any;
74
+ configBtn?: DialogBtnConfig[];
75
+ isDraggable?: boolean;
76
+ maxHeight?: string | number;
77
+ fullscreen?: boolean;
78
+ isHiddenFooter?: boolean;
79
+ onOpen?: (row?: Record<string, unknown>) => void;
80
+ onConfirm?: (data: Record<string, unknown>, context: DialogActionContext) => void | Promise<void>;
81
+ onClose?: () => void;
82
+ }
83
+ export interface DialogRenderContext {
84
+ row: Record<string, unknown>;
85
+ model: Record<string, unknown>;
86
+ registerRef: (name: string, el: any) => void;
87
+ close: () => void;
88
+ refresh: () => void;
89
+ }
90
+ export interface DialogBtnConfig extends BtnConfig {
91
+ action?: 'confirm' | 'cancel' | 'custom';
92
+ }
93
+ export interface DialogActionContext {
94
+ close: () => void;
95
+ refresh: () => void;
96
+ getRefs: (name?: string) => any;
97
+ row: Record<string, unknown>;
98
+ }
99
+ export type CrudAction = 'add' | 'edit' | 'delete' | 'view' | 'export' | 'import';
100
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/es-crud-page/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACd,MAAM,eAAe,CAAA;AAItB,MAAM,WAAW,cAAc;IAC7B,eAAe;IACf,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5B,aAAa;IACb,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClF,kCAAkC;IAClC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAA;IAC7B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5B,YAAY;IACZ,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa;IACb,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACpC,WAAW;IACX,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,4BAA4B;IAC5B,eAAe,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAA;IAC/C,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAG1C,sDAAsD;IACtD,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB,gCAAgC;IAChC,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;IAClC,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACtC,oCAAoC;IACpC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,IAAI,EAAE,YAAY,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CACvE;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,eAAe,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACjE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,CAAA;IAC5D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5B,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAC5D,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,KAAK,GAAG,CAAA;IACtD,SAAS,CAAC,EAAE,eAAe,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChD,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,mBAAmB,KACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,IAAI,CAAA;IAC5C,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,GAAG,CAAA;IAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,236 @@
1
+ import { BtnConfig } from '@es-plus/core';
2
+
3
+ declare const _default: import('vue').DefineComponent<{
4
+ title: {
5
+ type: StringConstructor;
6
+ default: string;
7
+ };
8
+ visible: {
9
+ type: BooleanConstructor;
10
+ default: boolean;
11
+ };
12
+ appendTo: {
13
+ type: (ObjectConstructor | StringConstructor)[];
14
+ default: any;
15
+ };
16
+ appendToBody: {
17
+ type: BooleanConstructor;
18
+ default: boolean;
19
+ };
20
+ modalAppendToBody: {
21
+ type: BooleanConstructor;
22
+ default: boolean;
23
+ };
24
+ closeOnClickModal: {
25
+ type: BooleanConstructor;
26
+ default: boolean;
27
+ };
28
+ closeOnPressEscape: {
29
+ type: BooleanConstructor;
30
+ default: boolean;
31
+ };
32
+ destroyOnClose: {
33
+ type: BooleanConstructor;
34
+ default: boolean;
35
+ };
36
+ hiddenFullBtn: {
37
+ type: BooleanConstructor;
38
+ default: boolean;
39
+ };
40
+ width: {
41
+ type: (NumberConstructor | StringConstructor)[];
42
+ default: string;
43
+ };
44
+ isDraggable: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ confirmText: {
49
+ type: StringConstructor;
50
+ default: string;
51
+ };
52
+ cancelText: {
53
+ type: StringConstructor;
54
+ default: string;
55
+ };
56
+ configBtn: {
57
+ type: () => BtnConfig[];
58
+ default: () => any[];
59
+ };
60
+ maxHeight: {
61
+ type: (NumberConstructor | StringConstructor)[];
62
+ default: any;
63
+ };
64
+ isHiddenFooter: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
68
+ renderHeader: {
69
+ type: FunctionConstructor;
70
+ default: any;
71
+ };
72
+ renderFooter: {
73
+ type: FunctionConstructor;
74
+ default: any;
75
+ };
76
+ render: {
77
+ type: FunctionConstructor;
78
+ default: any;
79
+ };
80
+ fullscreen: {
81
+ type: BooleanConstructor;
82
+ default: boolean;
83
+ };
84
+ components: {
85
+ type: ObjectConstructor;
86
+ default: () => {};
87
+ };
88
+ }, {
89
+ closed: () => void;
90
+ dialogVisible: import('vue').WritableComputedRef<boolean>;
91
+ isFullscreen: import('vue').Ref<boolean>;
92
+ lyFormInstance: import('vue').Ref<unknown>;
93
+ renderBodyRefsObject: Record<string, unknown>;
94
+ filteredAttrs: import('vue').ComputedRef<{
95
+ [x: string]: unknown;
96
+ }>;
97
+ initDialogCls: import('vue').ComputedRef<"dialogShadow" | "dialogAuto" | "dialogFull">;
98
+ initDialogHeight: import('vue').ComputedRef<{
99
+ maxHeight: string;
100
+ height?: undefined;
101
+ } | {
102
+ height: string;
103
+ maxHeight?: undefined;
104
+ }>;
105
+ getCurrentInstanceModel: import('vue').ComputedRef<{
106
+ renderBodyRefs: unknown;
107
+ renderBodyRefsObject: Record<string, unknown>;
108
+ lyFormInstance: import('vue').Ref<unknown>;
109
+ dialogInstance: Record<string, unknown>;
110
+ getRefs: () => Record<string, unknown>;
111
+ }>;
112
+ dialogComponents: import('vue').ComputedRef<{
113
+ [x: string]: unknown;
114
+ }>;
115
+ handleClose: () => void;
116
+ handleFullscreen: () => void;
117
+ handleBtnClick: (it: BtnConfig) => void;
118
+ onDialogClose: () => void;
119
+ onDialogClosed: () => void;
120
+ beforeCloseHandler: (done: () => void) => void;
121
+ checkPermission: (pvalue?: string) => boolean;
122
+ filterOptions: (it: BtnConfig) => {
123
+ [x: string]: unknown;
124
+ };
125
+ getDisabled: (it: BtnConfig) => boolean;
126
+ getCompIcon: (key?: string) => string | undefined;
127
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("update:visible" | "closed" | "submit")[], string, Readonly<import('vue').ExtractPropTypes<{
128
+ title: {
129
+ type: StringConstructor;
130
+ default: string;
131
+ };
132
+ visible: {
133
+ type: BooleanConstructor;
134
+ default: boolean;
135
+ };
136
+ appendTo: {
137
+ type: (ObjectConstructor | StringConstructor)[];
138
+ default: any;
139
+ };
140
+ appendToBody: {
141
+ type: BooleanConstructor;
142
+ default: boolean;
143
+ };
144
+ modalAppendToBody: {
145
+ type: BooleanConstructor;
146
+ default: boolean;
147
+ };
148
+ closeOnClickModal: {
149
+ type: BooleanConstructor;
150
+ default: boolean;
151
+ };
152
+ closeOnPressEscape: {
153
+ type: BooleanConstructor;
154
+ default: boolean;
155
+ };
156
+ destroyOnClose: {
157
+ type: BooleanConstructor;
158
+ default: boolean;
159
+ };
160
+ hiddenFullBtn: {
161
+ type: BooleanConstructor;
162
+ default: boolean;
163
+ };
164
+ width: {
165
+ type: (NumberConstructor | StringConstructor)[];
166
+ default: string;
167
+ };
168
+ isDraggable: {
169
+ type: BooleanConstructor;
170
+ default: boolean;
171
+ };
172
+ confirmText: {
173
+ type: StringConstructor;
174
+ default: string;
175
+ };
176
+ cancelText: {
177
+ type: StringConstructor;
178
+ default: string;
179
+ };
180
+ configBtn: {
181
+ type: () => BtnConfig[];
182
+ default: () => any[];
183
+ };
184
+ maxHeight: {
185
+ type: (NumberConstructor | StringConstructor)[];
186
+ default: any;
187
+ };
188
+ isHiddenFooter: {
189
+ type: BooleanConstructor;
190
+ default: boolean;
191
+ };
192
+ renderHeader: {
193
+ type: FunctionConstructor;
194
+ default: any;
195
+ };
196
+ renderFooter: {
197
+ type: FunctionConstructor;
198
+ default: any;
199
+ };
200
+ render: {
201
+ type: FunctionConstructor;
202
+ default: any;
203
+ };
204
+ fullscreen: {
205
+ type: BooleanConstructor;
206
+ default: boolean;
207
+ };
208
+ components: {
209
+ type: ObjectConstructor;
210
+ default: () => {};
211
+ };
212
+ }>>, {
213
+ render: Function;
214
+ components: Record<string, any>;
215
+ configBtn: BtnConfig[];
216
+ title: string;
217
+ width: string | number;
218
+ maxHeight: string | number;
219
+ visible: boolean;
220
+ appendTo: string | Record<string, any>;
221
+ appendToBody: boolean;
222
+ modalAppendToBody: boolean;
223
+ closeOnClickModal: boolean;
224
+ closeOnPressEscape: boolean;
225
+ destroyOnClose: boolean;
226
+ hiddenFullBtn: boolean;
227
+ isDraggable: boolean;
228
+ confirmText: string;
229
+ cancelText: string;
230
+ isHiddenFooter: boolean;
231
+ renderHeader: Function;
232
+ renderFooter: Function;
233
+ fullscreen: boolean;
234
+ }>;
235
+ export default _default;
236
+ //# sourceMappingURL=component.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.vue.d.ts","sourceRoot":"","sources":["../../../src/components/es-dialog/component.vue"],"names":[],"mappings":"AAqFA;AAyBA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuB/B,MAAM,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAwIjB,SAAS;;;+BA3CH,MAAM,IAAI;+BAtEV,MAAM,KAAG,OAAO;wBAMvB,SAAS;;;sBAaX,SAAS,KAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA1ChB,MAAM,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnBjD,wBAuNE"}
@@ -0,0 +1,6 @@
1
+ import { default as EsDialog } from './component.vue';
2
+ import { default as useDialog } from './use-dialog';
3
+
4
+ export default EsDialog;
5
+ export { EsDialog, useDialog };
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/es-dialog/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,SAAS,MAAM,cAAc,CAAA;AASpC,eAAe,QAAQ,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,60 @@
1
+ declare const _default: import('vue').DefineComponent<{
2
+ refs: {
3
+ type: () => Function | Record<string, unknown>;
4
+ default: any;
5
+ };
6
+ row: {
7
+ type: ObjectConstructor;
8
+ default: () => {};
9
+ };
10
+ render: {
11
+ type: FunctionConstructor;
12
+ default: () => any;
13
+ };
14
+ model: {
15
+ type: ObjectConstructor;
16
+ default: () => {};
17
+ };
18
+ instance: {
19
+ type: ObjectConstructor;
20
+ default: () => {};
21
+ };
22
+ components: {
23
+ type: ObjectConstructor;
24
+ default: () => {};
25
+ };
26
+ }, () => any, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, Readonly<import('vue').ExtractPropTypes<{
27
+ refs: {
28
+ type: () => Function | Record<string, unknown>;
29
+ default: any;
30
+ };
31
+ row: {
32
+ type: ObjectConstructor;
33
+ default: () => {};
34
+ };
35
+ render: {
36
+ type: FunctionConstructor;
37
+ default: () => any;
38
+ };
39
+ model: {
40
+ type: ObjectConstructor;
41
+ default: () => {};
42
+ };
43
+ instance: {
44
+ type: ObjectConstructor;
45
+ default: () => {};
46
+ };
47
+ components: {
48
+ type: ObjectConstructor;
49
+ default: () => {};
50
+ };
51
+ }>>, {
52
+ row: Record<string, any>;
53
+ render: Function;
54
+ components: Record<string, any>;
55
+ model: Record<string, any>;
56
+ instance: Record<string, any>;
57
+ refs: Function | Record<string, unknown>;
58
+ }>;
59
+ export default _default;
60
+ //# sourceMappingURL=render-jsx.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-jsx.vue.d.ts","sourceRoot":"","sources":["../../../src/components/es-dialog/render-jsx.vue"],"names":[],"mappings":";;cAyBmD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;cAAxC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAH3F,wBAkFE"}
@@ -0,0 +1,17 @@
1
+ import { DialogOptions } from '@es-plus/core';
2
+
3
+ export interface DialogCallable {
4
+ (dialogOptions: DialogOptions): unknown;
5
+ close: () => void;
6
+ }
7
+ export interface DialogCallableWithDestroy extends DialogCallable {
8
+ destroy: () => void;
9
+ }
10
+ export declare function useDialog(Component?: any, opt?: {
11
+ onlyInstance?: false;
12
+ }): DialogCallableWithDestroy;
13
+ export declare function useDialog(Component?: any, opt?: {
14
+ onlyInstance: true;
15
+ }): DialogCallable;
16
+ export default useDialog;
17
+ //# sourceMappingURL=use-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-dialog.d.ts","sourceRoot":"","sources":["../../../src/components/es-dialog/use-dialog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,WAAW,cAAc;IAC7B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAA;IACvC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AA6DD,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,GAAG,EACf,GAAG,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,GAC7B,yBAAyB,CAAA;AAC5B,wBAAgB,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IAAE,YAAY,EAAE,IAAI,CAAA;CAAE,GAAG,cAAc,CAAA;AAqHxF,eAAe,SAAS,CAAA"}