@ithinkdt/ui 4.0.0-11 → 4.0.0-110

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 (57) hide show
  1. package/dist/components-BdbuJNhZ.js +1650 -0
  2. package/dist/components.js +5 -0
  3. package/dist/directives-DUuJW647.js +183 -0
  4. package/dist/directives.js +3 -0
  5. package/dist/index.js +1224 -0
  6. package/dist/page.js +519 -0
  7. package/dist/use-i18n-Dx7V4KrY.js +6 -0
  8. package/dist/use-style-DcT-1dj4.js +29 -0
  9. package/dist/use-style.js +2 -0
  10. package/{src → esm}/components.d.ts +16 -3
  11. package/esm/components.js +1 -0
  12. package/{src → esm}/design.d.ts +9 -0
  13. package/esm/directives.js +1 -0
  14. package/esm/index.js +1 -0
  15. package/{src → esm}/page.d.ts +43 -26
  16. package/esm/page.js +1 -0
  17. package/esm/use-style.js +1 -0
  18. package/locale.d.ts +4 -0
  19. package/package.json +30 -27
  20. package/{unocss.js → unocss-preset.js} +0 -1
  21. package/src/components/Checkboxes.jsx +0 -128
  22. package/src/components/DataActions.jsx +0 -107
  23. package/src/components/DataCustom.jsx +0 -172
  24. package/src/components/DataFilter.jsx +0 -113
  25. package/src/components/DataForm.jsx +0 -264
  26. package/src/components/DataLocaleInput.jsx +0 -121
  27. package/src/components/DataPagination.jsx +0 -62
  28. package/src/components/DataSelection.jsx +0 -57
  29. package/src/components/DataTable.jsx +0 -243
  30. package/src/components/Radios.jsx +0 -120
  31. package/src/components/UserDept.jsx +0 -643
  32. package/src/components/assets.jsx +0 -274
  33. package/src/components/index.js +0 -11
  34. package/src/design/Account.jsx +0 -152
  35. package/src/design/Appearance.jsx +0 -89
  36. package/src/design/Breadcrumb.jsx +0 -67
  37. package/src/design/Fullscreen.jsx +0 -65
  38. package/src/design/Language.jsx +0 -45
  39. package/src/design/Layout.jsx +0 -241
  40. package/src/design/Logo.jsx +0 -91
  41. package/src/design/Menu.jsx +0 -133
  42. package/src/design/MultiTabs.jsx +0 -501
  43. package/src/design/Notification.jsx +0 -322
  44. package/src/design/common.jsx +0 -19
  45. package/src/design/index.js +0 -10
  46. package/src/directives/index.js +0 -2
  47. package/src/directives/spin.js +0 -181
  48. package/src/directives/tooltip.jsx +0 -121
  49. package/src/index.js +0 -18
  50. package/src/page.jsx +0 -626
  51. package/src/use-i18n.js +0 -8
  52. package/src/use-style.js +0 -58
  53. package/src/utils.js +0 -20
  54. /package/{src → esm}/directives.d.ts +0 -0
  55. /package/{src → esm}/index.d.ts +0 -0
  56. /package/{src → esm}/use-style.d.ts +0 -0
  57. /package/{unocss.d.ts → unocss-preset.d.ts} +0 -0
@@ -1,172 +0,0 @@
1
- import { NButton, NCheckbox, NEllipsis, NFlex, NIcon, NPopover } from 'ithinkdt-ui'
2
- import { Sortable } from 'sortablejs/modular/sortable.core.esm.js'
3
- import { defineComponent, ref, toValue, watch, withDirectives } from 'vue'
4
-
5
- import { vTooltip } from '../directives/tooltip.jsx'
6
- import { useI18n } from '../use-i18n.js'
7
-
8
- import { ICustom, IDrag, ILeft, IRight } from './assets.jsx'
9
-
10
- const DataCustomItem = /* @__PURE__ */ defineComponent({
11
- name: 'DataCustomRow',
12
- props: {
13
- label: [String, Function],
14
- disabled: Boolean,
15
- hidden: Boolean,
16
- fixed: [Boolean, String],
17
- },
18
- emits: ['update-hidden', 'update-fixed'],
19
- setup(props, { emit }) {
20
- return () => {
21
- return (
22
- <NFlex align="center" wrap={false} size="small">
23
- <NButton type="primary" text class="icon-drag">
24
- <NIcon size="18">
25
- <IDrag />
26
- </NIcon>
27
- </NButton>
28
- <NCheckbox
29
- checked={!props.hidden}
30
- disabled={props.disabled}
31
- onUpdateChecked={v => emit('update-hidden', !v)}
32
- />
33
- <NEllipsis style="flex: 1 1 auto">{toValue(props.label)}</NEllipsis>
34
- <NButton
35
- text
36
- type={props.fixed === 'left' ? 'primary' : undefined}
37
- onClick={() => emit('update-fixed', props.fixed === 'left' ? false : 'left')}
38
- >
39
- <NIcon>
40
- <ILeft />
41
- </NIcon>
42
- </NButton>
43
- <NButton
44
- text
45
- type={props.fixed === 'right' ? 'primary' : undefined}
46
- onClick={() => emit('update-fixed', props.fixed === 'right' ? false : 'right')}
47
- >
48
- <NIcon>
49
- <IRight />
50
- </NIcon>
51
- </NButton>
52
- </NFlex>
53
- )
54
- }
55
- },
56
- })
57
-
58
- export const DataCustom = /* @__PURE__ */ defineComponent({
59
- name: 'DataCustom',
60
- props: {
61
- data: {
62
- type: Array,
63
- required: true,
64
- },
65
- keyField: {
66
- type: String,
67
- default: 'key',
68
- },
69
- labelField: {
70
- type: String,
71
- default: 'label',
72
- },
73
- fixedField: {
74
- type: String,
75
- default: 'fixed',
76
- },
77
- hiddenField: {
78
- type: String,
79
- default: 'hidden',
80
- },
81
- showFixed: {
82
- type: Boolean,
83
- default: false,
84
- },
85
- disabledField: {
86
- type: String,
87
- default: 'disabled',
88
- },
89
- visiblityField: {
90
- type: String,
91
- default: 'visiblity',
92
- },
93
- tooltip: [String, Object],
94
- },
95
- emits: {
96
- custom: () => true,
97
- },
98
- setup(props, { emit }) {
99
- const { t } = useI18n()
100
-
101
- function emitCols(col, field, value) {
102
- emit('custom', {
103
- key: col.key,
104
- [field]: value,
105
- })
106
- }
107
-
108
- const ulRef = ref()
109
-
110
- watch(ulRef, (inst) => {
111
- if (!inst.$el) return
112
- Sortable.create(inst.$el, {
113
- animation: 150,
114
- ghostClass: 'ghost',
115
- handle: '.icon-drag',
116
- filter: '.disabled',
117
- onEnd(e) {
118
- const orders = props.data.map(item => item[props.keyField])
119
- const [curr] = orders.splice(e.oldIndex, 1)
120
- orders.splice(e.newIndex, 0, curr)
121
- emit('custom', orders)
122
- },
123
- })
124
- })
125
-
126
- return () => (
127
- <NPopover
128
- trigger="click"
129
- scrollable
130
- placement="left-start"
131
- displayDirective="show"
132
- style="max-height: 400px; width: 240px"
133
- >
134
- {{
135
- trigger: () =>
136
- withDirectives(
137
- <NButton text>
138
- <NIcon size="20">
139
- <ICustom />
140
- </NIcon>
141
- </NButton>,
142
- [[vTooltip, props.tooltip ?? t('common.page.custom.tooltip')]],
143
- ),
144
- default: () => (
145
- <NFlex vertical>
146
- <NFlex justify="space-between">
147
- <div style="font-weight: bold">{props.tooltip ?? t('common.page.custom.tooltip') }</div>
148
- <NButton text type="primary" size="small" onClick={() => emit('custom', true)}>
149
- { t('common.page.custom.reset') }
150
- </NButton>
151
- </NFlex>
152
- <NFlex ref={ulRef} vertical>
153
- {props.data
154
- .filter(item => item[props.visiblityField] !== false)
155
- .map(item => (
156
- <DataCustomItem
157
- key={item[props.keyField]}
158
- label={item[props.labelField]}
159
- hidden={item[props.hiddenField]}
160
- fixed={item[props.fixedField]}
161
- onUpdateHidden={v => emitCols(item, 'hidden', v)}
162
- onUpdateFixed={v => emitCols(item, 'fixed', v)}
163
- />
164
- ))}
165
- </NFlex>
166
- </NFlex>
167
- ),
168
- }}
169
- </NPopover>
170
- )
171
- },
172
- })
@@ -1,113 +0,0 @@
1
- import { NButton, NFlex, formProps } from 'ithinkdt-ui'
2
- import { defineComponent, reactive, ref } from 'vue'
3
-
4
- import { pickProps } from '@ithinkdt/common/object'
5
-
6
- import { useI18n } from '../use-i18n.js'
7
-
8
- import { DataForm } from './DataForm.jsx'
9
- import { IDown, IUp } from './assets.jsx'
10
-
11
- export const DataFilter = /* @__PURE__ */ defineComponent({
12
- name: 'DataFilter',
13
- props: {
14
- grid: {
15
- type: Object,
16
- default: () => ({}),
17
- },
18
- ...pickProps(formProps, 'disabled', 'model'),
19
- labelWidth: { type: [String, Number], default: '5em' },
20
- labelPlacement: { type: String, default: 'left' },
21
- items: { type: Array, required: true },
22
- loading: { type: Boolean, required: false, default: false },
23
- filterOnReset: { type: Boolean, required: false, default: true },
24
- filterText: { type: String, default: undefined },
25
- resetText: { type: String, default: undefined },
26
- customizable: { type: Boolean, required: false, default: true },
27
- collapsible: { type: Boolean, required: false, default: true },
28
- defaultCollapsed: { type: Boolean, required: false, default: true },
29
- },
30
- emits: ['filter', 'reset', 'custom', 'collapse'],
31
- setup(props, { expose, emit }) {
32
- const { t } = useI18n()
33
-
34
- const onSubmit = (e) => {
35
- emit('filter', props.model, e)
36
- }
37
- const onReset = (e) => {
38
- emit('reset', e)
39
- if (props.filterOnReset) {
40
- emit('filter', props.model, e)
41
- }
42
- }
43
- const collapsed = ref(props.defaultCollapsed)
44
- const collapse = (collapsedValue) => {
45
- collapsed.value = collapsedValue
46
- }
47
-
48
- expose({
49
- collapse,
50
- })
51
-
52
- const action = reactive({
53
- span: 6,
54
- suffix: true,
55
- })
56
-
57
- return () => {
58
- const { filterOnReset, filterText, resetText, customizable, defaultCollapsed, collapsible, grid, ...formProps } = props
59
-
60
- return (
61
- <DataForm
62
- grid={
63
- {
64
- cols: '12 768:18 1280:24 1536:30',
65
- yGap: 20,
66
- xGap: 8,
67
- ...grid,
68
- collapsed: collapsed.value,
69
- }
70
- }
71
- {...formProps}
72
- showFeedback={false}
73
- showAction={action}
74
- onSubmit={onSubmit}
75
- onReset={onReset}
76
- >
77
- {{
78
- action: ({ cols, spans }) => {
79
- action.suffix = cols < (spans + action.span)
80
-
81
- return (
82
- <NFlex justify={action.suffix ? 'end' : 'start'} align="center">
83
- {action.suffix ? undefined : <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>}
84
- <NButton attrType="submit" type="primary" disabled={props.disabled} loading={props.loading}>
85
- {filterText || t('common.page.filter.submitText') }
86
- </NButton>
87
- <NButton attrType="reset" disabled={props.disabled || props.loading}>
88
- {resetText || t('common.page.form.resetText') }
89
- </NButton>
90
- {
91
- collapsible && action.suffix
92
- ? (
93
- <NButton
94
- text
95
- type="primary"
96
- iconPlacement="right"
97
- renderIcon={collapsed.value ? IDown : IUp}
98
- onClick={() => collapse(!collapsed.value)}
99
- >
100
- {collapsed.value ? t('common.page.filter.expand') : t('common.page.filter.collapse') }
101
- </NButton>
102
- )
103
- : undefined
104
- }
105
- </NFlex>
106
- )
107
- },
108
- }}
109
- </DataForm>
110
- )
111
- }
112
- },
113
- })
@@ -1,264 +0,0 @@
1
- import { debouncedWatch, useCurrentElement, useElementSize } from '@vueuse/core'
2
- import { NButton, NFlex, NForm, NFormItem, NGi, NGrid, NIcon, NText, NTooltip, formProps } from 'ithinkdt-ui'
3
- import { defineComponent, ref, toRaw, toValue } from 'vue'
4
-
5
- import { pickProps } from '@ithinkdt/common/object'
6
-
7
- import { useI18n } from '../use-i18n.js'
8
-
9
- import { ICheck, IHelp } from './assets.jsx'
10
-
11
- export const DataForm = /* @__PURE__ */ defineComponent({
12
- name: 'DataForm',
13
- props: {
14
- grid: {
15
- type: Object,
16
- default: () => ({}),
17
- },
18
- ...pickProps(formProps, 'disabled', 'model', 'labelWidth', 'labelAlign', 'showFeedback', 'size'),
19
- readonly: { type: Boolean, required: false, default: undefined },
20
- items: { type: Array, required: true },
21
- validation: { type: Object, default: () => ({}) },
22
- loading: Boolean,
23
- showColon: Boolean,
24
- actionAlign: { type: String, default: 'start' },
25
- showAction: { type: [Boolean, Object], default: undefined },
26
- submitText: { type: [String, Number, Object], default: undefined },
27
- resetText: { type: [String, Number, Object], default: undefined },
28
- cancelText: { type: [String, Number, Object], default: undefined },
29
- showSubmitBtn: { type: Boolean, required: false, default: true },
30
- showResetBtn: { type: Boolean, required: false, default: true },
31
- showCancelBtn: { type: Boolean, required: false, default: false },
32
- submitDisabled: Boolean,
33
- succeeded: Boolean,
34
- successText: { type: [String, Number, Object], default: undefined },
35
- tooltipPlacement: { type: String, default: 'bottom' },
36
- requireMarkPlacement: { type: String, default: 'left' },
37
- labelPlacement: { type: String, default: 'left' },
38
- },
39
- emits: ['submit', 'reset', 'cancel'],
40
- setup(props, { emit, slots }) {
41
- const { t } = useI18n()
42
-
43
- const onSubmit = (e) => {
44
- e?.preventDefault?.()
45
- emit('submit', { ...toRaw(props.model) }, e)
46
- }
47
-
48
- const onReset = (e) => {
49
- e?.preventDefault?.()
50
- emit('reset')
51
- }
52
-
53
- const onCancel = (e) => {
54
- e?.preventDefault?.()
55
- emit('cancel')
56
- }
57
-
58
- const gridRef = ref()
59
-
60
- const cols = ref()
61
- const { width } = useElementSize(useCurrentElement())
62
- debouncedWatch([gridRef, width], () => {
63
- cols.value = undefined
64
- setTimeout(() => {
65
- cols.value = gridRef.value?.responsiveCols || undefined
66
- }, 30)
67
- }, { immediate: true, debounce: 100 })
68
-
69
- return () => {
70
- const { items, loading, validation, showColon, showAction, actionAlign, submitText, submitDisabled, resetText, tooltipPlacement, showFeedback: _showFeedback,
71
- labelWidth = '7.2em', labelAlign = props.labelPlacement === 'top' ? 'left' : 'right', grid, succeeded, successText = submitText, ...formProps } = props
72
-
73
- const showFeedback = !props.readonly && _showFeedback !== false
74
- return (
75
- <NForm
76
- labelWidth={labelWidth}
77
- labelAlign={labelAlign}
78
- onReset={onReset}
79
- onSubmit={onSubmit}
80
- showFeedback={showFeedback}
81
- {...formProps}
82
- >
83
- <NGrid
84
- ref={gridRef}
85
- itemResponsive
86
- {...grid}
87
- yGap={showFeedback ? 0 : (grid?.yGap ?? 24)}
88
- >
89
- {{ default: () => {
90
- let spans = 0
91
- return (
92
- <>
93
- {
94
- items.map(({
95
- hidden, name, render, label, showColon, span = 6, rowSpan, offset = 0, tooltip, tooltipPlacement = props.tooltipPlacement,
96
- validationStatus = validation[name]?.errors?.some(it => it !== undefined)
97
- ? 'error'
98
- : (validation[name]?.warnings?.some(it => it !== undefined)
99
- ? 'warnings'
100
- : (validation[name] ? 'success' : undefined)),
101
- readonly = props.readonly,
102
- showRequireMark = !readonly,
103
- showTooltipWhenReadonly = false,
104
- ...itemProps
105
- }) => {
106
- if (hidden) return
107
- spans += span
108
- let content
109
- if (name[0] === '$') {
110
- content = render({})
111
- } else {
112
- content = (
113
- <NFormItem
114
- path={name}
115
- validationStatus={validationStatus}
116
- showRequireMark={itemProps.required && showRequireMark}
117
- {...itemProps}
118
- >
119
- {{
120
- label: () => (
121
- <NText depth={props.readonly ? 3 : 2} style="display: inline-flex; align-items: flex-start; gap: 1px">
122
- <span>{toValue(label)}</span>
123
- {tooltipPlacement === 'icon'
124
- ? (
125
- <NTooltip>
126
- {{
127
- default: () => toValue(tooltip),
128
- trigger: () => (
129
- <NButton
130
- text
131
- style="font-size: 1.25em; opacity: 0.8"
132
- >
133
- <NIcon>
134
- <IHelp />
135
- </NIcon>
136
- </NButton>
137
- ),
138
- }}
139
- </NTooltip>
140
- )
141
- : undefined}
142
- {props.showColon && showColon !== false
143
- ? <span style="place-self: center">:</span>
144
- : undefined}
145
- </NText>
146
- ),
147
- default: () => {
148
- const vnode = (
149
- <div style="width: 100%; font-size: calc(1rem - 2px); min-height: 32px; display: flex; align-items: center">
150
- {render({ disabled: props.disabled, size: props.size, readonly: props.readonly })}
151
- </div>
152
- )
153
- const showTooltip = tooltip && tooltipPlacement === 'bottom' && (!props.readonly || showTooltipWhenReadonly)
154
-
155
- return showTooltip
156
- ? (
157
- <div
158
- style="width: 100%; display: flex; flex-direction: column"
159
- >
160
- {vnode}
161
- <NText depth={3} style="font-size: calc(1rem - 3px); margin-top: 6px">{toValue(tooltip)}</NText>
162
- </div>
163
- )
164
- : vnode
165
- },
166
- feedback: () => {
167
- return validation[name]?.errors[0] ?? validation[name]?.warnings[0]
168
- },
169
- }}
170
- </NFormItem>
171
- )
172
- }
173
-
174
- if (props.grid === false) {
175
- return content
176
- }
177
-
178
- return (
179
- <NGi
180
- key={name}
181
- offset={offset}
182
- span={span}
183
- style={rowSpan ? { gridRowEnd: `span ${rowSpan}` } : undefined}
184
- >
185
- {content}
186
- </NGi>
187
- )
188
- })
189
- }
190
-
191
- { showAction === false || (props.readonly === true && !slots.action)
192
- ? undefined
193
- : (
194
- <NGi
195
- key="action"
196
- span={Number.MAX_SAFE_INTEGER}
197
- {
198
- ...(typeof props.showAction === 'object' ? props.showAction : {})
199
- }
200
- >
201
- {{
202
- default: ({ overflow }) => {
203
- if (slots.action) return slots.action({ cols: cols.value, spans, overflow })
204
-
205
- return (
206
- <NFormItem
207
- label={props.actionAlign === 'start' ? ' ' : undefined}
208
- showLabel={props.labelPlacement !== 'top'}
209
- style="padding-top: 16px"
210
- >
211
- <NFlex justify={props.actionAlign} align="center">
212
- {
213
- props.showSubmitBtn === false
214
- ? undefined
215
- : (
216
- <NButton attrType="submit" type={succeeded ? 'success' : 'primary'} disabled={succeeded || props.disabled || props.submitDisabled || loading} loading={loading}>
217
- {{
218
- default: () => (succeeded ? successText : submitText) || t('common.page.form.submitText'),
219
- icon: () => succeeded ? <NIcon><ICheck /></NIcon> : undefined,
220
- }}
221
- </NButton>
222
- )
223
- }
224
- {
225
- props.showResetBtn === false
226
- ? undefined
227
- : (
228
- <NButton
229
- attrType="reset"
230
- disabled={props.disabled || loading}
231
- type={props.showCancelBtn ? 'primary' : 'default'}
232
- secondary={props.showCancelBtn}
233
- >
234
- {props.resetText || t('common.page.form.resetText') }
235
- </NButton>
236
- )
237
- }
238
- {
239
- props.showCancelBtn === false
240
- ? undefined
241
- : (
242
- <NButton attrType="button" disabled={props.disabled || loading} onClick={onCancel}>
243
- {props.cancelText || t('common.page.form.cancelText') }
244
- </NButton>
245
- )
246
- }
247
- </NFlex>
248
- </NFormItem>
249
- )
250
- },
251
- }}
252
- </NGi>
253
- )}
254
-
255
- </>
256
- )
257
- } }}
258
-
259
- </NGrid>
260
- </NForm>
261
- )
262
- }
263
- },
264
- })
@@ -1,121 +0,0 @@
1
- import { NButton, NIcon, NInput } from 'ithinkdt-ui'
2
- import { defineComponent, toRef, toValue, watch } from 'vue'
3
-
4
- import { useFormModal } from '@ithinkdt/page'
5
-
6
- import { useI18n } from '../use-i18n.js'
7
-
8
- import { ILanguage } from './assets.jsx'
9
-
10
- export function useLocaleEdit(title, onSubmit, defaultRows = 1) {
11
- const { t } = useI18n()
12
-
13
- const readonly = ref(false)
14
- let supports = []
15
- const { open, reinit } = useFormModal({
16
- title,
17
- showColon: true,
18
- submitText: t('common.confirm.defaultOk'),
19
- items: ({ it }) => {
20
- return supports.map((s) => {
21
- return it(s.value, s.label, 'input', {
22
- span: 24,
23
- required: s.required,
24
- inputProps: {
25
- readonly,
26
- clearable: true,
27
- type: 'textarea',
28
- showCount: true,
29
- autosize: {
30
- minRows: unref(defaultRows),
31
- maxRows: Math.max(unref(defaultRows), 5),
32
- },
33
- },
34
- })
35
- })
36
- },
37
- onSubmit,
38
- })
39
-
40
- return {
41
- open: (data, readonly0 = false) => {
42
- readonly.value = readonly0
43
- return open(data)
44
- },
45
- setSupports: (supports0) => {
46
- supports = supports0
47
- reinit()
48
- },
49
- }
50
- }
51
-
52
- export const DataLocaleInput = /* @__PURE__ */ defineComponent({
53
- name: 'DataLocaleInput',
54
- props: {
55
- label: [String, Object, Function, Number, Boolean],
56
- modelValue: Object,
57
- supports: { type: Array, default: () => [] },
58
- disabled: { type: Boolean, default: undefined },
59
- defaultLang: { type: String, default: 'zh-CN' },
60
- showLang: { type: String, default: undefined },
61
- defaultRows: { type: Number, default: 1 },
62
- },
63
- emits: ['update:modelValue', 'updateModelValue'],
64
- setup(props, { emit }) {
65
- const onUpdateValue = (value) => {
66
- value = {
67
- ...props.modelValue,
68
- [props.showLang ?? props.defaultLang]: value,
69
- }
70
- emit('update:modelValue', value)
71
- emit('updateModelValue', value)
72
- }
73
-
74
- const { open, setSupports } = useLocaleEdit(
75
- computed(() => toValue(props.label)),
76
- (data) => {
77
- emit('update:modelValue', data)
78
- emit('updateModelValue', data)
79
- },
80
- toRef(props, 'defaultRows'),
81
- )
82
-
83
- watch(() => props.supports, setSupports, { immediate: true })
84
-
85
- const slots = {
86
- suffix: () => (
87
- <NButton
88
- quaternary
89
- onClick={() => open(props.modelValue, props.disabled)}
90
- style="--n-padding: 0 8px"
91
- >
92
- <NIcon size="20" depth="3">
93
- <ILanguage />
94
- </NIcon>
95
- </NButton>
96
- ),
97
- }
98
- const themeOverrides = {
99
- '--n-padding-right': '0',
100
- }
101
-
102
- return () => {
103
- return (
104
- <NInput
105
- value={
106
- props.modelValue?.[props.showLang ?? props.defaultLang]
107
- ?? props.modelValue?.[props.defaultLang]
108
- }
109
- onUpdateValue={onUpdateValue}
110
- disabled={props.disabled}
111
- clearable
112
- style={themeOverrides}
113
- type={props.defaultRows > 1 ? 'textarea' : 'text'}
114
- rows={props.defaultRows}
115
- >
116
- {slots}
117
- </NInput>
118
- )
119
- }
120
- },
121
- })