poe-svelte-ui-lib 1.0.1 → 1.0.4
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/LICENSE +3 -3
- package/README.md +1 -0
- package/dist/Accordion/Accordion.svelte +53 -53
- package/dist/Button/Button.svelte +111 -144
- package/dist/Button/Button.svelte.d.ts +1 -34
- package/dist/ColorPicker/ColorPicker.svelte +205 -207
- package/dist/FileAttach/FileAttach.svelte +103 -103
- package/dist/Graph/Graph.svelte +270 -270
- package/dist/Input/Input.svelte +240 -239
- package/dist/Loader.svelte +12 -12
- package/dist/MessageModal.svelte +54 -54
- package/dist/ProgressBar/ProgressBar.svelte +48 -48
- package/dist/Select/Select.svelte +189 -191
- package/dist/Slider/Slider.svelte +260 -260
- package/dist/Switch/Switch.svelte +84 -83
- package/dist/Table/Table.svelte +275 -276
- package/dist/TextField/TextField.svelte +22 -22
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -11
- package/dist/{appIcons → libIcons}/ButtonAdd.svelte +10 -10
- package/dist/{appIcons → libIcons}/ButtonDelete.svelte +13 -13
- package/dist/{appIcons → libIcons}/LoaderRotate.svelte +9 -9
- package/dist/options.d.ts +11 -11
- package/dist/options.js +27 -27
- package/dist/types.d.ts +1 -1
- package/package.json +48 -47
- package/dist/Accordion/AccordionProps.svelte +0 -70
- package/dist/Accordion/AccordionProps.svelte.d.ts +0 -10
- package/dist/Button/ButtonProps.svelte +0 -200
- package/dist/Button/ButtonProps.svelte.d.ts +0 -10
- package/dist/ColorPicker/ColorPickerProps.svelte +0 -100
- package/dist/ColorPicker/ColorPickerProps.svelte.d.ts +0 -10
- package/dist/Graph/GraphProps.svelte +0 -56
- package/dist/Graph/GraphProps.svelte.d.ts +0 -10
- package/dist/Input/InputProps.svelte +0 -221
- package/dist/Input/InputProps.svelte.d.ts +0 -10
- package/dist/ProgressBar/ProgressBarProps.svelte +0 -145
- package/dist/ProgressBar/ProgressBarProps.svelte.d.ts +0 -10
- package/dist/Select/SelectProps.svelte +0 -260
- package/dist/Select/SelectProps.svelte.d.ts +0 -10
- package/dist/Slider/SliderProps.svelte +0 -161
- package/dist/Slider/SliderProps.svelte.d.ts +0 -10
- package/dist/Switch/SwitchProps.svelte +0 -144
- package/dist/Switch/SwitchProps.svelte.d.ts +0 -10
- package/dist/Table/TableProps.svelte +0 -286
- package/dist/Table/TableProps.svelte.d.ts +0 -10
- package/dist/TextField/TextFieldProps.svelte +0 -92
- package/dist/TextField/TextFieldProps.svelte.d.ts +0 -10
- package/dist/locales/CircleFlagsEn.svelte +0 -14
- package/dist/locales/CircleFlagsEn.svelte.d.ts +0 -26
- package/dist/locales/CircleFlagsRu.svelte +0 -8
- package/dist/locales/CircleFlagsRu.svelte.d.ts +0 -26
- package/dist/locales/CircleFlagsZh.svelte +0 -8
- package/dist/locales/CircleFlagsZh.svelte.d.ts +0 -26
- package/dist/locales/i18n.d.ts +0 -10
- package/dist/locales/i18n.js +0 -36
- package/dist/locales/translations.d.ts +0 -7
- package/dist/locales/translations.js +0 -450
- /package/dist/{appIcons → libIcons}/ButtonAdd.svelte.d.ts +0 -0
- /package/dist/{appIcons → libIcons}/ButtonDelete.svelte.d.ts +0 -0
- /package/dist/{appIcons → libIcons}/LoaderRotate.svelte.d.ts +0 -0
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
<!-- $lib/ElementsUI/SwitchProps.svelte -->
|
|
2
|
-
<script lang="ts">
|
|
3
|
-
import { getContext } from 'svelte'
|
|
4
|
-
import { t } from '../locales/i18n'
|
|
5
|
-
import type { UIComponent, ISwitchProps } from '../types'
|
|
6
|
-
import * as UI from '../index'
|
|
7
|
-
import { optionsStore } from '../options'
|
|
8
|
-
|
|
9
|
-
const { component, onPropertyChange } = $props<{
|
|
10
|
-
component: UIComponent & { properties: Partial<ISwitchProps> }
|
|
11
|
-
onPropertyChange: (value: string | object) => void
|
|
12
|
-
}>()
|
|
13
|
-
|
|
14
|
-
const DeviceVariables = getContext<{ value: string; name: string }[]>('DeviceVariables')
|
|
15
|
-
let VARIABLE_OPTIONS = $derived(
|
|
16
|
-
DeviceVariables.map((variable: { value: string; name: string }) => ({
|
|
17
|
-
id: variable.name,
|
|
18
|
-
value: variable.value,
|
|
19
|
-
name: `${variable.value} | ${variable.name}`,
|
|
20
|
-
})),
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
const initialColor = $derived(
|
|
24
|
-
$optionsStore.COLOR_OPTIONS.find((c) =>
|
|
25
|
-
(c.value as string).includes(component.properties.wrapperClass?.split(' ').find((cls: string) => cls.startsWith('bg-'))),
|
|
26
|
-
),
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
const initialAlign = $derived(
|
|
30
|
-
$optionsStore.ALIGN_OPTIONS.find((a) =>
|
|
31
|
-
(a.value as string).includes(component.properties.label?.class?.split(' ').find((cls: string) => cls.startsWith('text-'))),
|
|
32
|
-
),
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
/* Добавление цветов через селект */
|
|
36
|
-
const handleOptionColorChange = (color: string) => {
|
|
37
|
-
let componentClass = component.properties.componentClass || ''
|
|
38
|
-
componentClass = componentClass
|
|
39
|
-
.split(' ')
|
|
40
|
-
.filter((cls: string) => !cls.startsWith('bg-'))
|
|
41
|
-
.join(' ')
|
|
42
|
-
if (color) {
|
|
43
|
-
componentClass += ` ${color}`
|
|
44
|
-
}
|
|
45
|
-
updateProperty('wrapperClass', componentClass)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const handleLabelAlign = (align: string) => {
|
|
49
|
-
let labelClass = component.properties.label.class || ''
|
|
50
|
-
labelClass = labelClass
|
|
51
|
-
.split(' ')
|
|
52
|
-
.filter((cls: string) => !cls.startsWith('text-'))
|
|
53
|
-
.join(' ')
|
|
54
|
-
if (align) {
|
|
55
|
-
labelClass += ` ${align}`
|
|
56
|
-
}
|
|
57
|
-
updateProperty('label.class', labelClass)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* Обновление свойства */
|
|
61
|
-
const updateProperty = (path: string, value: string | object | boolean | number) => {
|
|
62
|
-
const newProperties = JSON.parse(JSON.stringify(component.properties))
|
|
63
|
-
const parts = path.split('.')
|
|
64
|
-
let obj = newProperties
|
|
65
|
-
|
|
66
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
67
|
-
const part = parts[i]
|
|
68
|
-
if (!obj[part]) obj[part] = {}
|
|
69
|
-
obj = obj[part]
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
obj[parts[parts.length - 1]] = value
|
|
73
|
-
onPropertyChange(newProperties)
|
|
74
|
-
}
|
|
75
|
-
</script>
|
|
76
|
-
|
|
77
|
-
{#if component && component.properties}
|
|
78
|
-
<div class="relative flex flex-row items-start justify-center">
|
|
79
|
-
<!-- Сообщение для отправки в ws по нажатию кнопки -->
|
|
80
|
-
<div class="flex w-1/3 flex-col items-center px-2">
|
|
81
|
-
<UI.Select
|
|
82
|
-
label={{ name: $t('service.constructor.props.variable') }}
|
|
83
|
-
options={VARIABLE_OPTIONS}
|
|
84
|
-
value={VARIABLE_OPTIONS.find((opt) => opt.value === component.properties.id.value)}
|
|
85
|
-
onUpdate={(value) => {
|
|
86
|
-
updateProperty('id.name', (value.name as string).split('|')[1].trim())
|
|
87
|
-
updateProperty('id.value', value.value as string)
|
|
88
|
-
updateProperty('eventHandler.Variables', value.value as string)
|
|
89
|
-
}}
|
|
90
|
-
/>
|
|
91
|
-
<UI.Select
|
|
92
|
-
label={{ name: $t('service.constructor.props.action') }}
|
|
93
|
-
type="buttons"
|
|
94
|
-
value={$optionsStore.SHORT_ARGUMENT_OPTION.find((h) => h.value === component.properties.eventHandler.Argument)}
|
|
95
|
-
options={$optionsStore.SHORT_ARGUMENT_OPTION}
|
|
96
|
-
onUpdate={(option) => {
|
|
97
|
-
updateProperty('eventHandler.Argument', option.value as string)
|
|
98
|
-
}}
|
|
99
|
-
/>
|
|
100
|
-
</div>
|
|
101
|
-
<div class="flex w-1/3 flex-col px-2">
|
|
102
|
-
<UI.Input
|
|
103
|
-
label={{ name: $t('service.constructor.props.caption.left') }}
|
|
104
|
-
value={component.properties.label.captionLeft}
|
|
105
|
-
type="text"
|
|
106
|
-
onUpdate={(value) => updateProperty('label.captionLeft', value as string)}
|
|
107
|
-
/>
|
|
108
|
-
<UI.Input
|
|
109
|
-
label={{ name: $t('service.constructor.props.caption.right') }}
|
|
110
|
-
value={component.properties.label.captionRight}
|
|
111
|
-
type="text"
|
|
112
|
-
onUpdate={(value) => updateProperty('label.captionRight', value as string)}
|
|
113
|
-
/>
|
|
114
|
-
<UI.Switch
|
|
115
|
-
label={{ name: $t('service.constructor.props.disabled') }}
|
|
116
|
-
value={component.properties.disabled ? 2 : 1}
|
|
117
|
-
onChange={(value) => updateProperty('disabled', value === 2)}
|
|
118
|
-
/>
|
|
119
|
-
</div>
|
|
120
|
-
<div class="flex w-1/3 flex-col px-2">
|
|
121
|
-
<UI.Input
|
|
122
|
-
label={{ name: $t('service.constructor.props.label') }}
|
|
123
|
-
value={component.properties.label.name}
|
|
124
|
-
type="text"
|
|
125
|
-
onUpdate={(value) => updateProperty('label.name', value as string)}
|
|
126
|
-
/>
|
|
127
|
-
<UI.Select
|
|
128
|
-
label={{ name: $t('service.constructor.props.align') }}
|
|
129
|
-
type="buttons"
|
|
130
|
-
value={initialAlign}
|
|
131
|
-
options={$optionsStore.ALIGN_OPTIONS}
|
|
132
|
-
onUpdate={(option) => handleLabelAlign(option.value as string)}
|
|
133
|
-
/>
|
|
134
|
-
<UI.Select
|
|
135
|
-
wrapperClass="!h-14"
|
|
136
|
-
label={{ name: $t('service.constructor.props.colors') }}
|
|
137
|
-
type="buttons"
|
|
138
|
-
options={$optionsStore.COLOR_OPTIONS}
|
|
139
|
-
value={initialColor}
|
|
140
|
-
onUpdate={(option) => handleOptionColorChange(option.value as string)}
|
|
141
|
-
/>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
{/if}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { UIComponent, ISwitchProps } from '../types';
|
|
2
|
-
type $$ComponentProps = {
|
|
3
|
-
component: UIComponent & {
|
|
4
|
-
properties: Partial<ISwitchProps>;
|
|
5
|
-
};
|
|
6
|
-
onPropertyChange: (value: string | object) => void;
|
|
7
|
-
};
|
|
8
|
-
declare const SwitchProps: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
-
type SwitchProps = ReturnType<typeof SwitchProps>;
|
|
10
|
-
export default SwitchProps;
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
<!-- $lib/ElementsUI/TableProps.svelte -->
|
|
2
|
-
<script lang="ts">
|
|
3
|
-
import { getContext } from 'svelte'
|
|
4
|
-
import { t } from '../locales/i18n'
|
|
5
|
-
import type { UIComponent, ITableProps, ITableHeader } from '../types'
|
|
6
|
-
import * as UI from '../index'
|
|
7
|
-
import ButtonDelete from '../appIcons/ButtonDelete.svelte'
|
|
8
|
-
import ButtonAdd from '../appIcons/ButtonAdd.svelte'
|
|
9
|
-
import { optionsStore } from '../options'
|
|
10
|
-
|
|
11
|
-
const { component, onPropertyChange } = $props<{
|
|
12
|
-
component: UIComponent & { properties: Partial<ITableProps<object>> }
|
|
13
|
-
onPropertyChange: (value: string | object) => void
|
|
14
|
-
}>()
|
|
15
|
-
|
|
16
|
-
const DeviceVariables = getContext<{ value: string; name: string }[]>('DeviceVariables')
|
|
17
|
-
let VARIABLE_OPTIONS = $derived(
|
|
18
|
-
DeviceVariables.map((variable: { value: string; name: string }) => ({
|
|
19
|
-
id: variable.name,
|
|
20
|
-
value: variable.value,
|
|
21
|
-
name: `${variable.value} | ${variable.name}`,
|
|
22
|
-
})),
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
const initialColor = $derived(
|
|
26
|
-
$optionsStore.COLOR_OPTIONS.find((c) =>
|
|
27
|
-
(c.value as string).includes(component.properties.wrapperClass?.split(' ').find((cls: string) => cls.startsWith('bg-'))),
|
|
28
|
-
),
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
const initialAlign = $derived(
|
|
32
|
-
$optionsStore.ALIGN_OPTIONS.find((a) =>
|
|
33
|
-
(a.value as string).includes(component.properties.label?.class?.split(' ').find((cls: string) => cls.startsWith('text-'))),
|
|
34
|
-
),
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
/* Добавление цветов через селект */
|
|
38
|
-
const handleOptionColorChange = (color: string) => {
|
|
39
|
-
let componentClass = component.properties.componentClass || ''
|
|
40
|
-
componentClass = componentClass
|
|
41
|
-
.split(' ')
|
|
42
|
-
.filter((cls: string) => !cls.startsWith('bg-'))
|
|
43
|
-
.join(' ')
|
|
44
|
-
if (color) {
|
|
45
|
-
componentClass += ` ${color}`
|
|
46
|
-
}
|
|
47
|
-
updateProperty('wrapperClass', componentClass)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const handleLabelAlign = (align: string) => {
|
|
51
|
-
let labelClass = component.properties.label.class || ''
|
|
52
|
-
labelClass = labelClass
|
|
53
|
-
.split(' ')
|
|
54
|
-
.filter((cls: string) => !cls.startsWith('text-'))
|
|
55
|
-
.join(' ')
|
|
56
|
-
if (align) {
|
|
57
|
-
labelClass += ` ${align}`
|
|
58
|
-
}
|
|
59
|
-
updateProperty('label.class', labelClass)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* Обновление свойства */
|
|
63
|
-
const updateProperty = (path: string, value: string | object) => {
|
|
64
|
-
const newProperties = JSON.parse(JSON.stringify(component.properties))
|
|
65
|
-
const parts = path.split('.')
|
|
66
|
-
let obj = newProperties
|
|
67
|
-
|
|
68
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
69
|
-
const part = parts[i]
|
|
70
|
-
if (!obj[part]) obj[part] = {}
|
|
71
|
-
obj = obj[part]
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
obj[parts[parts.length - 1]] = value
|
|
75
|
-
onPropertyChange(newProperties)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const updateTableHeader = (index: number, field: keyof ITableHeader<any>, value: any) => {
|
|
79
|
-
const headers = [...component.properties.tableHeader]
|
|
80
|
-
headers[index] = { ...headers[index], [field]: value }
|
|
81
|
-
updateProperty('tableHeader', headers)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const updateButtonProperty = (columnIndex: number, buttonIndex: number, field: string, value: any) => {
|
|
85
|
-
const headers = [...component.properties.tableHeader]
|
|
86
|
-
const buttons = [...headers[columnIndex].buttons]
|
|
87
|
-
buttons[buttonIndex] = { ...buttons[buttonIndex], [field]: value }
|
|
88
|
-
headers[columnIndex].buttons = buttons
|
|
89
|
-
updateProperty('tableHeader', headers)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const removeButtonFromColumn = (columnIndex: number, buttonIndex: number) => {
|
|
93
|
-
const headers = [...component.properties.tableHeader]
|
|
94
|
-
const buttons = [...headers[columnIndex].buttons]
|
|
95
|
-
buttons.splice(buttonIndex, 1)
|
|
96
|
-
headers[columnIndex].buttons = buttons.length ? buttons : undefined
|
|
97
|
-
updateProperty('tableHeader', headers)
|
|
98
|
-
}
|
|
99
|
-
</script>
|
|
100
|
-
|
|
101
|
-
{#if component && component.properties}
|
|
102
|
-
<div class="relative flex flex-row items-start justify-center">
|
|
103
|
-
<div class="flex w-1/3 flex-col items-center px-2">
|
|
104
|
-
<UI.Select
|
|
105
|
-
label={{ name: $t('service.constructor.props.variable') }}
|
|
106
|
-
options={VARIABLE_OPTIONS}
|
|
107
|
-
value={VARIABLE_OPTIONS.find((opt) => opt.value === component.properties.id.value)}
|
|
108
|
-
onUpdate={(value) => {
|
|
109
|
-
updateProperty('id.name', (value.name as string).split('|')[1].trim())
|
|
110
|
-
updateProperty('id.value', value.value as string)
|
|
111
|
-
updateProperty('eventHandler.Variables', value.value as string)
|
|
112
|
-
}}
|
|
113
|
-
/>
|
|
114
|
-
</div>
|
|
115
|
-
<div class="flex w-1/3 flex-col px-2">
|
|
116
|
-
<UI.Select
|
|
117
|
-
wrapperClass="!h-14"
|
|
118
|
-
label={{ name: $t('service.constructor.props.colors') }}
|
|
119
|
-
type="buttons"
|
|
120
|
-
options={$optionsStore.COLOR_OPTIONS}
|
|
121
|
-
value={initialColor}
|
|
122
|
-
onUpdate={(option) => handleOptionColorChange(option.value as string)}
|
|
123
|
-
/>
|
|
124
|
-
</div>
|
|
125
|
-
<div class="flex w-1/3 flex-col px-2">
|
|
126
|
-
<UI.Input
|
|
127
|
-
wrapperClass="w-full"
|
|
128
|
-
label={{ name: $t('service.constructor.props.label') }}
|
|
129
|
-
value={component.properties.label.name}
|
|
130
|
-
type="text"
|
|
131
|
-
componentClass="w-full"
|
|
132
|
-
onUpdate={(value) => updateProperty('label.name', value as string)}
|
|
133
|
-
/>
|
|
134
|
-
<UI.Select
|
|
135
|
-
wrapperClass="w-full"
|
|
136
|
-
label={{ name: $t('service.constructor.props.align') }}
|
|
137
|
-
type="buttons"
|
|
138
|
-
value={initialAlign}
|
|
139
|
-
options={$optionsStore.ALIGN_OPTIONS}
|
|
140
|
-
onUpdate={(option) => handleLabelAlign(option.value as string)}
|
|
141
|
-
/>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
|
|
145
|
-
<hr class="border-gray-400" />
|
|
146
|
-
|
|
147
|
-
<!-- Настройки столбцов таблицы -->
|
|
148
|
-
<div class="space-y-4">
|
|
149
|
-
<div class="m-0 flex items-center justify-center gap-2">
|
|
150
|
-
<h4>{$t('service.constructor.props.table.columns')}</h4>
|
|
151
|
-
<UI.Button
|
|
152
|
-
wrapperClass="!w-10"
|
|
153
|
-
icon={{ component: ButtonAdd, properties: { height: '1.5rem', width: '1.5rem' } }}
|
|
154
|
-
componentClass="h-10 border-none hover:shadow-none"
|
|
155
|
-
onClick={() => {
|
|
156
|
-
const newColumn: ITableHeader<any> = {
|
|
157
|
-
key: `column${(component.properties.tableHeader?.length || 0) + 1}`,
|
|
158
|
-
label: `Column ${(component.properties.tableHeader?.length || 0) + 1}`,
|
|
159
|
-
width: '100px',
|
|
160
|
-
sortable: false,
|
|
161
|
-
}
|
|
162
|
-
const headers = [...(component.properties.tableHeader || []), newColumn]
|
|
163
|
-
updateProperty('tableHeader', headers)
|
|
164
|
-
}}
|
|
165
|
-
/>
|
|
166
|
-
</div>
|
|
167
|
-
|
|
168
|
-
{#each component.properties.tableHeader as column, columnIndex}
|
|
169
|
-
<div class="m-0 flex items-end justify-around gap-2">
|
|
170
|
-
<UI.Input
|
|
171
|
-
label={{ name: $t('service.constructor.props.table.columns.key') }}
|
|
172
|
-
wrapperClass="!w-2/10"
|
|
173
|
-
value={column.key}
|
|
174
|
-
type="text"
|
|
175
|
-
regExp={/^[0-9a-zA-Z_-]{0,16}$/}
|
|
176
|
-
onUpdate={(value) => updateTableHeader(columnIndex, 'key', value)}
|
|
177
|
-
/>
|
|
178
|
-
<UI.Input
|
|
179
|
-
label={{ name: $t('service.constructor.props.table.columns.label') }}
|
|
180
|
-
wrapperClass="!w-2/10"
|
|
181
|
-
value={column.label}
|
|
182
|
-
type="text"
|
|
183
|
-
onUpdate={(value) => updateTableHeader(columnIndex, 'label', value)}
|
|
184
|
-
/>
|
|
185
|
-
<UI.Input
|
|
186
|
-
label={{ name: $t('service.constructor.props.table.columns.width') }}
|
|
187
|
-
wrapperClass="!w-2/10"
|
|
188
|
-
value={column.width}
|
|
189
|
-
type="text"
|
|
190
|
-
onUpdate={(value) => updateTableHeader(columnIndex, 'width', value)}
|
|
191
|
-
/>
|
|
192
|
-
<UI.Switch
|
|
193
|
-
wrapperClass="!w-1/10"
|
|
194
|
-
label={{ name: $t('service.constructor.props.table.columns.sortable') }}
|
|
195
|
-
value={column.sortable ? 2 : 1}
|
|
196
|
-
onChange={(value) => updateTableHeader(columnIndex, 'sortable', value === 2)}
|
|
197
|
-
/>
|
|
198
|
-
<UI.Button
|
|
199
|
-
wrapperClass="!w-1/20"
|
|
200
|
-
icon={{ component: ButtonAdd, properties: { height: '1.5rem', width: '1.5rem' } }}
|
|
201
|
-
componentClass="h-10 w-10 border-none hover:shadow-none"
|
|
202
|
-
info={$t('service.constructor.props.table.addaction')}
|
|
203
|
-
onClick={() => {
|
|
204
|
-
const newButton = {
|
|
205
|
-
name: `button${(component.properties.tableHeader[columnIndex].buttons || 0) + 1}`,
|
|
206
|
-
class: 'bg-blue',
|
|
207
|
-
eventHandler: { Header: 'SET', Argument: 'Save', Variables: [] },
|
|
208
|
-
onClick: () => {},
|
|
209
|
-
}
|
|
210
|
-
const buttons = [...(component.properties.tableHeader[columnIndex].buttons || []), newButton]
|
|
211
|
-
updateTableHeader(columnIndex, 'buttons', buttons)
|
|
212
|
-
}}
|
|
213
|
-
/>
|
|
214
|
-
<UI.Button
|
|
215
|
-
wrapperClass="!w-1/20"
|
|
216
|
-
icon={{ component: ButtonDelete, properties: { height: '1.5rem', width: '1.5rem' } }}
|
|
217
|
-
componentClass="h-10 w-10 border-none hover:shadow-none"
|
|
218
|
-
info={$t('service.constructor.props.table.deletecolumn')}
|
|
219
|
-
onClick={() => {
|
|
220
|
-
const headers = [...(component.properties.tableHeader || [])]
|
|
221
|
-
headers.splice(columnIndex, 1)
|
|
222
|
-
updateProperty('tableHeader', headers)
|
|
223
|
-
}}
|
|
224
|
-
/>
|
|
225
|
-
</div>
|
|
226
|
-
{#if column.buttons && column.buttons.length > 0}
|
|
227
|
-
<div class="m-2 rounded-lg bg-[var(--field-color)] p-2">
|
|
228
|
-
{#each column.buttons as button, buttonIndex}
|
|
229
|
-
<div class="flex items-end justify-around gap-2">
|
|
230
|
-
<UI.Input
|
|
231
|
-
label={{ name: $t('service.constructor.props.name') }}
|
|
232
|
-
wrapperClass="!w-2/10"
|
|
233
|
-
value={button.name}
|
|
234
|
-
type="text"
|
|
235
|
-
onUpdate={(value) => updateButtonProperty(columnIndex, buttonIndex, 'name', value)}
|
|
236
|
-
/>
|
|
237
|
-
<UI.Select
|
|
238
|
-
wrapperClass="!w-3/10"
|
|
239
|
-
label={{ name: $t('service.constructor.props.header') }}
|
|
240
|
-
type="buttons"
|
|
241
|
-
value={$optionsStore.HEADER_OPTIONS.find((h) => h.value === button.eventHandler?.Header)}
|
|
242
|
-
options={$optionsStore.HEADER_OPTIONS}
|
|
243
|
-
onUpdate={(option) => {
|
|
244
|
-
const handler = button.eventHandler
|
|
245
|
-
handler.Header = option.value as string
|
|
246
|
-
updateButtonProperty(columnIndex, buttonIndex, 'eventHandler', handler)
|
|
247
|
-
}}
|
|
248
|
-
/>
|
|
249
|
-
<UI.Input
|
|
250
|
-
wrapperClass="!w-2/10"
|
|
251
|
-
label={{ name: $t('service.constructor.props.argument') }}
|
|
252
|
-
value={button.eventHandler?.Argument}
|
|
253
|
-
type="text"
|
|
254
|
-
onUpdate={(value) => {
|
|
255
|
-
const handler = button.eventHandler
|
|
256
|
-
handler.Argument = value as string
|
|
257
|
-
updateButtonProperty(columnIndex, buttonIndex, 'eventHandler', handler)
|
|
258
|
-
}}
|
|
259
|
-
/>
|
|
260
|
-
<UI.Input
|
|
261
|
-
wrapperClass="!w-2/10"
|
|
262
|
-
label={{ name: $t('service.constructor.props.table.keys') }}
|
|
263
|
-
value={button.eventHandler?.Variables.join(' ')}
|
|
264
|
-
type="text"
|
|
265
|
-
maxlength={500}
|
|
266
|
-
regExp={/^[a-zA-Z0-9\-_ ]{0,500}$/}
|
|
267
|
-
help={{ info: $t('service.constructor.props.table.keys.info') }}
|
|
268
|
-
onUpdate={(value) => {
|
|
269
|
-
const handler = { ...button.eventHandler }
|
|
270
|
-
handler.Variables = (value as string).trim().split(/\s+/)
|
|
271
|
-
updateButtonProperty(columnIndex, buttonIndex, 'eventHandler', handler)
|
|
272
|
-
}}
|
|
273
|
-
/>
|
|
274
|
-
<UI.Button
|
|
275
|
-
wrapperClass="!w-1/20"
|
|
276
|
-
icon={{ component: ButtonDelete, properties: { height: '1.5rem', width: '1.5rem' } }}
|
|
277
|
-
componentClass="h-10 w-10 border-none hover:shadow-none"
|
|
278
|
-
onClick={() => removeButtonFromColumn(columnIndex, buttonIndex)}
|
|
279
|
-
/>
|
|
280
|
-
</div>
|
|
281
|
-
{/each}
|
|
282
|
-
</div>
|
|
283
|
-
{/if}
|
|
284
|
-
{/each}
|
|
285
|
-
</div>
|
|
286
|
-
{/if}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { UIComponent, ITableProps } from '../types';
|
|
2
|
-
type $$ComponentProps = {
|
|
3
|
-
component: UIComponent & {
|
|
4
|
-
properties: Partial<ITableProps<object>>;
|
|
5
|
-
};
|
|
6
|
-
onPropertyChange: (value: string | object) => void;
|
|
7
|
-
};
|
|
8
|
-
declare const TableProps: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
-
type TableProps = ReturnType<typeof TableProps>;
|
|
10
|
-
export default TableProps;
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
<!-- $lib/ElementsUI/GridAccordionProps.svelte -->
|
|
2
|
-
<script lang="ts">
|
|
3
|
-
import { t } from '../locales/i18n'
|
|
4
|
-
import type { ITextFieldProps, UIComponent } from '../types'
|
|
5
|
-
import * as UI from '../index'
|
|
6
|
-
import { optionsStore } from '../options'
|
|
7
|
-
|
|
8
|
-
const { component, onPropertyChange } = $props<{
|
|
9
|
-
component: UIComponent & { properties: Partial<ITextFieldProps> }
|
|
10
|
-
onPropertyChange: (value: string | object) => void
|
|
11
|
-
}>()
|
|
12
|
-
|
|
13
|
-
let currentType = $derived($optionsStore.TEXTFIELD_SIZE_OPTIONS.find((t) => t.value === component.properties.type))
|
|
14
|
-
|
|
15
|
-
const initialAlign = $derived(
|
|
16
|
-
$optionsStore.ALIGN_OPTIONS.find((a) =>
|
|
17
|
-
(a.value as string).includes(component.properties.label?.class?.split(' ').find((cls: string) => cls.startsWith('text-'))),
|
|
18
|
-
),
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
const handleLabelAlign = (align: string) => {
|
|
22
|
-
let labelClass = component.properties.label.class || ''
|
|
23
|
-
labelClass = labelClass
|
|
24
|
-
.split(' ')
|
|
25
|
-
.filter((cls: string) => !cls.startsWith('text-'))
|
|
26
|
-
.join(' ')
|
|
27
|
-
if (align) {
|
|
28
|
-
labelClass += ` ${align}`
|
|
29
|
-
}
|
|
30
|
-
updateProperty('label.class', labelClass)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* Обновление свойства */
|
|
34
|
-
const updateProperty = (path: string, value: string | object | boolean) => {
|
|
35
|
-
const newProperties = JSON.parse(JSON.stringify(component.properties))
|
|
36
|
-
const parts = path.split('.')
|
|
37
|
-
let obj = newProperties
|
|
38
|
-
|
|
39
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
40
|
-
const part = parts[i]
|
|
41
|
-
if (!obj[part]) obj[part] = {}
|
|
42
|
-
obj = obj[part]
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
obj[parts[parts.length - 1]] = value
|
|
46
|
-
onPropertyChange(newProperties)
|
|
47
|
-
}
|
|
48
|
-
</script>
|
|
49
|
-
|
|
50
|
-
{#if component && component.properties}
|
|
51
|
-
<div class="relative flex flex-row items-start justify-center">
|
|
52
|
-
<div class="flex w-1/3 flex-col px-2">
|
|
53
|
-
<UI.Input
|
|
54
|
-
label={{ name: $t('service.constructor.props.label') }}
|
|
55
|
-
value={component.properties.label.name}
|
|
56
|
-
onUpdate={(value) => updateProperty('label.name', value as string)}
|
|
57
|
-
type="text"
|
|
58
|
-
/>
|
|
59
|
-
<UI.Select
|
|
60
|
-
label={{ name: $t('service.constructor.props.type') }}
|
|
61
|
-
type="buttons"
|
|
62
|
-
value={currentType}
|
|
63
|
-
options={$optionsStore.TEXTFIELD_SIZE_OPTIONS}
|
|
64
|
-
onUpdate={(item) => updateProperty('type', item.value as string)}
|
|
65
|
-
/>
|
|
66
|
-
</div>
|
|
67
|
-
<div class="flex w-1/3 flex-col px-2">
|
|
68
|
-
<UI.Select
|
|
69
|
-
wrapperClass="w-full"
|
|
70
|
-
label={{ name: $t('service.constructor.props.align') }}
|
|
71
|
-
type="buttons"
|
|
72
|
-
value={initialAlign}
|
|
73
|
-
options={$optionsStore.ALIGN_OPTIONS}
|
|
74
|
-
onUpdate={(option) => handleLabelAlign(option.value as string)}
|
|
75
|
-
/>
|
|
76
|
-
</div>
|
|
77
|
-
<div class="flex w-1/3 flex-col px-2">
|
|
78
|
-
<UI.Switch
|
|
79
|
-
wrapperClass="w-full"
|
|
80
|
-
label={{ name: $t('service.constructor.props.bold') }}
|
|
81
|
-
value={component.properties.bold ? 2 : 1}
|
|
82
|
-
onChange={(value) => updateProperty('bold', value === 2)}
|
|
83
|
-
/>
|
|
84
|
-
<UI.Switch
|
|
85
|
-
wrapperClass="w-full"
|
|
86
|
-
label={{ name: $t('service.constructor.props.italic') }}
|
|
87
|
-
value={component.properties.italic ? 2 : 1}
|
|
88
|
-
onChange={(value) => updateProperty('italic', value === 2)}
|
|
89
|
-
/>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
{/if}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ITextFieldProps, UIComponent } from '../types';
|
|
2
|
-
type $$ComponentProps = {
|
|
3
|
-
component: UIComponent & {
|
|
4
|
-
properties: Partial<ITextFieldProps>;
|
|
5
|
-
};
|
|
6
|
-
onPropertyChange: (value: string | object) => void;
|
|
7
|
-
};
|
|
8
|
-
declare const TextFieldProps: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
-
type TextFieldProps = ReturnType<typeof TextFieldProps>;
|
|
10
|
-
export default TextFieldProps;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 512 512"
|
|
2
|
-
><clipPath id="svgIDa"><circle cx="256" cy="256" r="256" /></clipPath><g clip-path="url(#svgIDa)"
|
|
3
|
-
><path
|
|
4
|
-
fill="#eee"
|
|
5
|
-
d="m0 0l8 16l-8 15v16l32 65l-32 64v32l32 48l-32 48v32l32 64l-32 65v47l16-8l15 8h16l65-32l64 32h32l48-32l48 32h32l64-32l65 32h47l-8-15l8-16v-16l-32-65l32-64v-32l-32-48l32-48v-32l-32-64l32-65V0l-15 8l-16-8h-16l-65 32l-64-32h-32l-48 32l-48-32h-32l-64 32L47 0H0z"
|
|
6
|
-
/><path
|
|
7
|
-
fill="#0052b4"
|
|
8
|
-
d="m47 0l129 129V0Zm289 0v129L465 0ZM0 47v129h129Zm512 0L383 176h129ZM0 336v129l129-129Zm383 0l129 129V336Zm-47 47v129h129zm-160 0L47 512h129Z"
|
|
9
|
-
/><path fill="#d80027" d="M208 0v208H0v96h208v208h96V304h208v-96H304V0h-96z" /><path
|
|
10
|
-
fill="#d80027"
|
|
11
|
-
d="m336 336l176 176v-31L367 336Zm0-160L512 0h-31L336 145Zm-160 0L0 0v31l145 145zm0 160L0 512h31l145-145Z"
|
|
12
|
-
/></g
|
|
13
|
-
></svg
|
|
14
|
-
>
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export default CircleFlagsEn;
|
|
2
|
-
type CircleFlagsEn = SvelteComponent<{
|
|
3
|
-
[x: string]: never;
|
|
4
|
-
}, {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
}, {}> & {
|
|
7
|
-
$$bindings?: string | undefined;
|
|
8
|
-
};
|
|
9
|
-
declare const CircleFlagsEn: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
-
[x: string]: never;
|
|
11
|
-
}, {
|
|
12
|
-
[evt: string]: CustomEvent<any>;
|
|
13
|
-
}, {}, {}, string>;
|
|
14
|
-
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
15
|
-
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
16
|
-
$$bindings?: Bindings;
|
|
17
|
-
} & Exports;
|
|
18
|
-
(internal: unknown, props: {
|
|
19
|
-
$$events?: Events;
|
|
20
|
-
$$slots?: Slots;
|
|
21
|
-
}): Exports & {
|
|
22
|
-
$set?: any;
|
|
23
|
-
$on?: any;
|
|
24
|
-
};
|
|
25
|
-
z_$$bindings?: Bindings;
|
|
26
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 512 512"
|
|
2
|
-
><mask id="circleFlagsRu0"><circle cx="256" cy="256" r="256" fill="#fff" /></mask><g mask="url(#circleFlagsRu0)"
|
|
3
|
-
><path fill="#0052b4" d="M512 170v172l-256 32L0 342V170l256-32z" /><path fill="#eee" d="M512 0v170H0V0Z" /><path
|
|
4
|
-
fill="#d80027"
|
|
5
|
-
d="M512 342v170H0V342Z"
|
|
6
|
-
/></g
|
|
7
|
-
></svg
|
|
8
|
-
>
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export default CircleFlagsRu;
|
|
2
|
-
type CircleFlagsRu = SvelteComponent<{
|
|
3
|
-
[x: string]: never;
|
|
4
|
-
}, {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
}, {}> & {
|
|
7
|
-
$$bindings?: string | undefined;
|
|
8
|
-
};
|
|
9
|
-
declare const CircleFlagsRu: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
-
[x: string]: never;
|
|
11
|
-
}, {
|
|
12
|
-
[evt: string]: CustomEvent<any>;
|
|
13
|
-
}, {}, {}, string>;
|
|
14
|
-
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
15
|
-
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
16
|
-
$$bindings?: Bindings;
|
|
17
|
-
} & Exports;
|
|
18
|
-
(internal: unknown, props: {
|
|
19
|
-
$$events?: Events;
|
|
20
|
-
$$slots?: Slots;
|
|
21
|
-
}): Exports & {
|
|
22
|
-
$set?: any;
|
|
23
|
-
$on?: any;
|
|
24
|
-
};
|
|
25
|
-
z_$$bindings?: Bindings;
|
|
26
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 512 512"
|
|
2
|
-
><mask id="circleFlagsCn0"><circle cx="256" cy="256" r="256" fill="#fff" /></mask><g mask="url(#circleFlagsCn0)"
|
|
3
|
-
><path fill="#d80027" d="M0 0h512v512H0z" /><path
|
|
4
|
-
fill="#ffda44"
|
|
5
|
-
d="m140.1 155.8l22.1 68h71.5l-57.8 42.1l22.1 68l-57.9-42l-57.9 42l22.2-68l-57.9-42.1H118zm163.4 240.7l-16.9-20.8l-25 9.7l14.5-22.5l-16.9-20.9l25.9 6.9l14.6-22.5l1.4 26.8l26 6.9l-25.1 9.6zm33.6-61l8-25.6l-21.9-15.5l26.8-.4l7.9-25.6l8.7 25.4l26.8-.3l-21.5 16l8.6 25.4l-21.9-15.5zm45.3-147.6L370.6 212l19.2 18.7l-26.5-3.8l-11.8 24l-4.6-26.4l-26.6-3.8l23.8-12.5l-4.6-26.5l19.2 18.7zm-78.2-73l-2 26.7l24.9 10.1l-26.1 6.4l-1.9 26.8l-14.1-22.8l-26.1 6.4l17.3-20.5l-14.2-22.7l24.9 10.1z"
|
|
6
|
-
/></g
|
|
7
|
-
></svg
|
|
8
|
-
>
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export default CircleFlagsZh;
|
|
2
|
-
type CircleFlagsZh = SvelteComponent<{
|
|
3
|
-
[x: string]: never;
|
|
4
|
-
}, {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
}, {}> & {
|
|
7
|
-
$$bindings?: string | undefined;
|
|
8
|
-
};
|
|
9
|
-
declare const CircleFlagsZh: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
-
[x: string]: never;
|
|
11
|
-
}, {
|
|
12
|
-
[evt: string]: CustomEvent<any>;
|
|
13
|
-
}, {}, {}, string>;
|
|
14
|
-
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
15
|
-
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
16
|
-
$$bindings?: Bindings;
|
|
17
|
-
} & Exports;
|
|
18
|
-
(internal: unknown, props: {
|
|
19
|
-
$$events?: Events;
|
|
20
|
-
$$slots?: Slots;
|
|
21
|
-
}): Exports & {
|
|
22
|
-
$set?: any;
|
|
23
|
-
$on?: any;
|
|
24
|
-
};
|
|
25
|
-
z_$$bindings?: Bindings;
|
|
26
|
-
}
|