@tmagic/form 1.4.7 → 1.4.8

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 (60) hide show
  1. package/dist/tmagic-form.js +54 -108
  2. package/dist/tmagic-form.umd.cjs +54 -108
  3. package/package.json +9 -5
  4. package/src/Form.vue +0 -201
  5. package/src/FormBox.vue +0 -120
  6. package/src/FormDialog.vue +0 -173
  7. package/src/FormDrawer.vue +0 -159
  8. package/src/containers/Col.vue +0 -52
  9. package/src/containers/Container.vue +0 -408
  10. package/src/containers/Fieldset.vue +0 -124
  11. package/src/containers/GroupList.vue +0 -139
  12. package/src/containers/GroupListItem.vue +0 -135
  13. package/src/containers/Panel.vue +0 -99
  14. package/src/containers/Row.vue +0 -54
  15. package/src/containers/Step.vue +0 -82
  16. package/src/containers/Table.vue +0 -648
  17. package/src/containers/Tabs.vue +0 -226
  18. package/src/fields/Cascader.vue +0 -131
  19. package/src/fields/Checkbox.vue +0 -58
  20. package/src/fields/CheckboxGroup.vue +0 -43
  21. package/src/fields/ColorPicker.vue +0 -30
  22. package/src/fields/Date.vue +0 -38
  23. package/src/fields/DateTime.vue +0 -47
  24. package/src/fields/Daterange.vue +0 -99
  25. package/src/fields/Display.vue +0 -21
  26. package/src/fields/DynamicField.vue +0 -90
  27. package/src/fields/Hidden.vue +0 -16
  28. package/src/fields/Link.vue +0 -86
  29. package/src/fields/Number.vue +0 -49
  30. package/src/fields/NumberRange.vue +0 -50
  31. package/src/fields/RadioGroup.vue +0 -28
  32. package/src/fields/Select.vue +0 -449
  33. package/src/fields/Switch.vue +0 -59
  34. package/src/fields/Text.vue +0 -170
  35. package/src/fields/Textarea.vue +0 -46
  36. package/src/fields/Time.vue +0 -34
  37. package/src/fields/Timerange.vue +0 -76
  38. package/src/index.ts +0 -139
  39. package/src/schema.ts +0 -757
  40. package/src/shims-vue.d.ts +0 -6
  41. package/src/theme/date-time.scss +0 -7
  42. package/src/theme/fieldset.scss +0 -28
  43. package/src/theme/form-box.scss +0 -13
  44. package/src/theme/form-dialog.scss +0 -13
  45. package/src/theme/form-drawer.scss +0 -11
  46. package/src/theme/form.scss +0 -43
  47. package/src/theme/group-list.scss +0 -23
  48. package/src/theme/index.scss +0 -14
  49. package/src/theme/link.scss +0 -3
  50. package/src/theme/number-range.scss +0 -8
  51. package/src/theme/panel.scss +0 -24
  52. package/src/theme/select.scss +0 -3
  53. package/src/theme/table.scss +0 -70
  54. package/src/theme/tabs.scss +0 -27
  55. package/src/theme/text.scss +0 -6
  56. package/src/utils/config.ts +0 -27
  57. package/src/utils/containerProps.ts +0 -50
  58. package/src/utils/form.ts +0 -268
  59. package/src/utils/useAddField.ts +0 -40
  60. package/tsconfig.build.json +0 -13
@@ -1,46 +0,0 @@
1
- <template>
2
- <TMagicInput
3
- v-model="model[name]"
4
- type="textarea"
5
- :size="size"
6
- clearable
7
- :placeholder="config.placeholder"
8
- :disabled="disabled"
9
- @change="changeHandler"
10
- @input="inputHandler"
11
- >
12
- </TMagicInput>
13
- </template>
14
-
15
- <script lang="ts" setup>
16
- import { inject } from 'vue';
17
-
18
- import { TMagicInput } from '@tmagic/design';
19
-
20
- import type { FieldProps, FormState, TextareaConfig } from '../schema';
21
- import { useAddField } from '../utils/useAddField';
22
-
23
- defineOptions({
24
- name: 'MFormTextarea',
25
- });
26
-
27
- const props = defineProps<FieldProps<TextareaConfig>>();
28
-
29
- const emit = defineEmits<{
30
- change: [value: string];
31
- input: [value: string];
32
- }>();
33
-
34
- useAddField(props.prop);
35
-
36
- const mForm = inject<FormState | null>('mForm');
37
-
38
- const changeHandler = (value: string) => {
39
- emit('change', value);
40
- };
41
-
42
- const inputHandler = (v: string) => {
43
- emit('input', v);
44
- mForm?.$emit('field-input', props.prop, v);
45
- };
46
- </script>
@@ -1,34 +0,0 @@
1
- <template>
2
- <TMagicTimePicker
3
- v-model="model[name]"
4
- :value-format="config.valueFormat || 'HH:mm:ss'"
5
- :format="config.format || 'HH:mm:ss'"
6
- :size="size"
7
- :placeholder="config.placeholder"
8
- :disabled="disabled"
9
- @change="changeHandler"
10
- ></TMagicTimePicker>
11
- </template>
12
-
13
- <script lang="ts" setup>
14
- import { TMagicTimePicker } from '@tmagic/design';
15
-
16
- import type { FieldProps, TimeConfig } from '../schema';
17
- import { useAddField } from '../utils/useAddField';
18
-
19
- defineOptions({
20
- name: 'MFormTime',
21
- });
22
-
23
- const props = defineProps<FieldProps<TimeConfig>>();
24
-
25
- const emit = defineEmits<{
26
- change: [value: string];
27
- }>();
28
-
29
- useAddField(props.prop);
30
-
31
- const changeHandler = (v: string) => {
32
- emit('change', v);
33
- };
34
- </script>
@@ -1,76 +0,0 @@
1
- <template>
2
- <TMagicTimePicker
3
- v-model="value"
4
- is-range
5
- range-separator="-"
6
- start-placeholder="开始时间"
7
- end-placeholder="结束时间"
8
- :size="size"
9
- :unlink-panels="true"
10
- :disabled="disabled"
11
- :default-time="config.defaultTime"
12
- @change="changeHandler"
13
- ></TMagicTimePicker>
14
- </template>
15
-
16
- <script lang="ts" setup>
17
- import { ref, watch } from 'vue';
18
-
19
- import { TMagicTimePicker } from '@tmagic/design';
20
- import { datetimeFormatter } from '@tmagic/utils';
21
-
22
- import type { DaterangeConfig, FieldProps } from '../schema';
23
- import { useAddField } from '../utils/useAddField';
24
-
25
- defineOptions({
26
- name: 'MFormTimeRange',
27
- });
28
-
29
- const props = defineProps<FieldProps<DaterangeConfig>>();
30
-
31
- const emit = defineEmits(['change']);
32
-
33
- useAddField(props.prop);
34
-
35
- // eslint-disable-next-line vue/no-setup-props-destructure
36
- const { names } = props.config;
37
- const value = ref<(Date | undefined)[] | null>([]);
38
-
39
- if (props.model !== undefined && names?.length) {
40
- watch(
41
- [() => props.model[names[0]], () => props.model[names[1]]],
42
- ([start, end], [preStart, preEnd]) => {
43
- if (!value.value) {
44
- value.value = [];
45
- }
46
- if (!start || !end) value.value = [];
47
- if (start !== preStart) value.value[0] = start;
48
- if (end !== preEnd) value.value[1] = end;
49
- },
50
- {
51
- immediate: true,
52
- },
53
- );
54
- }
55
-
56
- const setValue = (v: Date[] | Date) => {
57
- names?.forEach((item, index) => {
58
- if (!props.model) {
59
- return;
60
- }
61
- if (Array.isArray(v)) {
62
- props.model[item] = datetimeFormatter(v[index]?.toString(), '');
63
- } else {
64
- props.model[item] = undefined;
65
- }
66
- });
67
- };
68
-
69
- const changeHandler = (v: Date[]) => {
70
- const value = v || [];
71
- if (names?.length) {
72
- setValue(value);
73
- }
74
- emit('change', value);
75
- };
76
- </script>
package/src/index.ts DELETED
@@ -1,139 +0,0 @@
1
- /*
2
- * Tencent is pleased to support the open source community by making TMagicEditor available.
3
- *
4
- * Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved.
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
17
- */
18
-
19
- import { App } from 'vue';
20
-
21
- import Container from './containers/Container.vue';
22
- import Fieldset from './containers/Fieldset.vue';
23
- import GroupList from './containers/GroupList.vue';
24
- import Panel from './containers/Panel.vue';
25
- import Row from './containers/Row.vue';
26
- import MStep from './containers/Step.vue';
27
- import Table from './containers/Table.vue';
28
- import Tabs from './containers/Tabs.vue';
29
- import Cascader from './fields/Cascader.vue';
30
- import Checkbox from './fields/Checkbox.vue';
31
- import CheckboxGroup from './fields/CheckboxGroup.vue';
32
- import ColorPicker from './fields/ColorPicker.vue';
33
- import Date from './fields/Date.vue';
34
- import Daterange from './fields/Daterange.vue';
35
- import DateTime from './fields/DateTime.vue';
36
- import Display from './fields/Display.vue';
37
- import DynamicField from './fields/DynamicField.vue';
38
- import Hidden from './fields/Hidden.vue';
39
- import Link from './fields/Link.vue';
40
- import Number from './fields/Number.vue';
41
- import NumberRange from './fields/NumberRange.vue';
42
- import RadioGroup from './fields/RadioGroup.vue';
43
- import Select from './fields/Select.vue';
44
- import Switch from './fields/Switch.vue';
45
- import Text from './fields/Text.vue';
46
- import Textarea from './fields/Textarea.vue';
47
- import Time from './fields/Time.vue';
48
- import Timerange from './fields/Timerange.vue';
49
- import { setConfig } from './utils/config';
50
- import Form from './Form.vue';
51
- import FormDialog from './FormDialog.vue';
52
- import type { FormConfig } from './schema';
53
-
54
- import './theme/index.scss';
55
-
56
- export * from './schema';
57
- export * from './utils/form';
58
- export * from './utils/useAddField';
59
-
60
- export { default as MForm } from './Form.vue';
61
- export { default as MFormDialog } from './FormDialog.vue';
62
- export { default as MFormDrawer } from './FormDrawer.vue';
63
- export { default as MFormBox } from './FormBox.vue';
64
- export { default as MContainer } from './containers/Container.vue';
65
- export { default as MFieldset } from './containers/Fieldset.vue';
66
- export { default as MPanel } from './containers/Panel.vue';
67
- export { default as MRow } from './containers/Row.vue';
68
- export { default as MTabs } from './containers/Tabs.vue';
69
- export { default as MTable } from './containers/Table.vue';
70
- export { default as MGroupList } from './containers/GroupList.vue';
71
- export { default as MText } from './fields/Text.vue';
72
- export { default as MNumber } from './fields/Number.vue';
73
- export { default as MNumberRange } from './fields/NumberRange.vue';
74
- export { default as MTextarea } from './fields/Textarea.vue';
75
- export { default as MHidden } from './fields/Hidden.vue';
76
- export { default as MDate } from './fields/Date.vue';
77
- export { default as MDateTime } from './fields/DateTime.vue';
78
- export { default as MTime } from './fields/Time.vue';
79
- export { default as MCheckbox } from './fields/Checkbox.vue';
80
- export { default as MSwitch } from './fields/Switch.vue';
81
- export { default as MDaterange } from './fields/Daterange.vue';
82
- export { default as MTimerange } from './fields/Timerange.vue';
83
- export { default as MColorPicker } from './fields/ColorPicker.vue';
84
- export { default as MCheckboxGroup } from './fields/CheckboxGroup.vue';
85
- export { default as MRadioGroup } from './fields/RadioGroup.vue';
86
- export { default as MDisplay } from './fields/Display.vue';
87
- export { default as MLink } from './fields/Link.vue';
88
- export { default as MSelect } from './fields/Select.vue';
89
- export { default as MCascader } from './fields/Cascader.vue';
90
- export { default as MDynamicField } from './fields/DynamicField.vue';
91
-
92
- export const createForm = <T extends [] = []>(config: FormConfig | T) => config;
93
-
94
- export interface InstallOptions {
95
- [key: string]: any;
96
- }
97
-
98
- const defaultInstallOpt: InstallOptions = {};
99
-
100
- export default {
101
- install(app: App, opt: InstallOptions = {}) {
102
- const option = Object.assign(defaultInstallOpt, opt);
103
-
104
- // eslint-disable-next-line no-param-reassign
105
- app.config.globalProperties.$MAGIC_FORM = option;
106
- setConfig(option);
107
-
108
- app.component('m-form', Form);
109
- app.component('m-form-dialog', FormDialog);
110
- app.component('m-form-container', Container);
111
- app.component('m-form-fieldset', Fieldset);
112
- app.component('m-form-group-list', GroupList);
113
- app.component('m-form-panel', Panel);
114
- app.component('m-form-row', Row);
115
- app.component('m-form-step', MStep);
116
- app.component('m-form-table', Table);
117
- app.component('m-form-tab', Tabs);
118
- app.component('m-fields-text', Text);
119
- app.component('m-fields-number', Number);
120
- app.component('m-fields-number-range', NumberRange);
121
- app.component('m-fields-textarea', Textarea);
122
- app.component('m-fields-hidden', Hidden);
123
- app.component('m-fields-date', Date);
124
- app.component('m-fields-datetime', DateTime);
125
- app.component('m-fields-daterange', Daterange);
126
- app.component('m-fields-timerange', Timerange);
127
- app.component('m-fields-time', Time);
128
- app.component('m-fields-checkbox', Checkbox);
129
- app.component('m-fields-switch', Switch);
130
- app.component('m-fields-color-picker', ColorPicker);
131
- app.component('m-fields-checkbox-group', CheckboxGroup);
132
- app.component('m-fields-radio-group', RadioGroup);
133
- app.component('m-fields-display', Display);
134
- app.component('m-fields-link', Link);
135
- app.component('m-fields-select', Select);
136
- app.component('m-fields-cascader', Cascader);
137
- app.component('m-fields-dynamic-field', DynamicField);
138
- },
139
- };