shared-ritm 1.3.79 → 1.3.81
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/dist/index.css +1 -1
- package/dist/shared-ritm.es.js +1090 -1072
- package/dist/shared-ritm.umd.js +3 -3
- package/dist/types/api/services/EquipmentService.d.ts +9 -1
- package/dist/types/api/services/PhotoService.d.ts +40 -0
- package/dist/types/api/types/Api_Equipment.d.ts +8 -0
- package/dist/types/api/types/Api_Metrics.d.ts +1 -1
- package/dist/types/stories/Button.stories.d.ts +13 -0
- package/dist/types/stories/Checkbox.stories.d.ts +7 -0
- package/dist/types/stories/Confirm.stories.d.ts +8 -0
- package/dist/types/stories/DatePicker.stories.d.ts +8 -0
- package/dist/types/stories/Dropdown.stories.d.ts +8 -0
- package/dist/types/stories/File.stories.d.ts +8 -0
- package/dist/types/stories/Icon.stories.d.ts +7 -0
- package/dist/types/stories/Input.stories.d.ts +11 -0
- package/dist/types/stories/InputNew.stories.d.ts +12 -0
- package/dist/types/stories/InputSearch.stories.d.ts +10 -0
- package/dist/types/stories/Loader.stories.d.ts +8 -0
- package/dist/types/stories/Select.stories.d.ts +7 -0
- package/dist/types/stories/Toggle.stories.d.ts +8 -0
- package/package.json +70 -70
- package/src/App.vue +2461 -2461
- package/src/api/services/AuthService.ts +67 -67
- package/src/api/services/ControlsService.ts +96 -96
- package/src/api/services/EquipmentService.ts +52 -29
- package/src/api/services/MetricsService.ts +143 -143
- package/src/api/services/RepairsService.ts +111 -111
- package/src/api/services/UserIssueService.ts +32 -32
- package/src/api/services/UserService.ts +129 -129
- package/src/api/services/VideoService.ts +118 -118
- package/src/api/settings/ApiService.ts +184 -184
- package/src/api/types/Api_Auth.ts +121 -121
- package/src/api/types/Api_Equipment.ts +10 -0
- package/src/api/types/Api_Metrics.ts +51 -51
- package/src/api/types/Api_Repairs.ts +187 -187
- package/src/api/types/Api_Tasks.ts +376 -376
- package/src/api/types/Api_User.ts +156 -156
- package/src/api/types/Api_User_Issue.ts +36 -36
- package/src/api/types/Api_Video.ts +244 -244
- package/src/common/app-button/Button.stories.ts +369 -369
- package/src/common/app-checkbox/AppCheckbox.vue +31 -31
- package/src/common/app-checkbox/Checkbox.stories.ts +252 -252
- package/src/common/app-date-picker/DatePicker.stories.ts +66 -66
- package/src/common/app-datepicker/Datepicker.stories.ts +145 -145
- package/src/common/app-dialogs/AppConfirmDialog.vue +109 -109
- package/src/common/app-dialogs/Confirm.stories.ts +93 -93
- package/src/common/app-dropdown/Dropdown.stories.ts +94 -94
- package/src/common/app-file/File.stories.ts +104 -104
- package/src/common/app-icon/AppIcon.vue +110 -110
- package/src/common/app-icon/Icon.stories.ts +91 -91
- package/src/common/app-input/Input.stories.ts +160 -160
- package/src/common/app-input-new/AppInputNew.vue +181 -181
- package/src/common/app-input-new/InputNew.stories.ts +240 -240
- package/src/common/app-input-search/InputSearch.stories.ts +149 -149
- package/src/common/app-layout/components/AppLayoutHeader.vue +289 -289
- package/src/common/app-loader/Loader.stories.ts +114 -114
- package/src/common/app-select/AppSelect.vue +159 -159
- package/src/common/app-select/Select.stories.ts +155 -155
- package/src/common/app-sidebar/AppSidebar.vue +174 -174
- package/src/common/app-table/AppTable.vue +313 -313
- package/src/common/app-table/components/ModalSelect.stories.ts +323 -323
- package/src/common/app-table/components/ModalSelect.vue +302 -302
- package/src/common/app-table/components/TableModal.vue +367 -367
- package/src/common/app-table/controllers/useColumnSelector.ts +45 -45
- package/src/common/app-table/controllers/useTableModel.ts +97 -97
- package/src/common/app-toggle/AppToggle.vue +12 -12
- package/src/common/app-toggle/Toggle.stories.ts +245 -245
- package/src/common/app-wrapper/AppWrapper.vue +31 -31
- package/src/configs/storybook.ts +14 -14
- package/src/icons/sidebar/user-requests-icon.vue +23 -23
- package/src/index.ts +134 -134
- package/src/shared/styles/general.css +140 -140
- package/src/styles/variables.sass +12 -12
- package/src/utils/files.ts +38 -38
- package/src/utils/helpers.ts +59 -59
|
@@ -1,160 +1,160 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
|
-
import AppInput from '@/common/app-input/AppInput.vue'
|
|
3
|
-
|
|
4
|
-
const meta: Meta<typeof AppInput> = {
|
|
5
|
-
title: 'Components/AppInput',
|
|
6
|
-
component: AppInput,
|
|
7
|
-
tags: ['autodocs'],
|
|
8
|
-
argTypes: {
|
|
9
|
-
modelValue: {
|
|
10
|
-
control: 'text',
|
|
11
|
-
table: { category: 'Используется' },
|
|
12
|
-
},
|
|
13
|
-
placeholder: {
|
|
14
|
-
control: 'text',
|
|
15
|
-
description: 'Текст-подсказка внутри поля.',
|
|
16
|
-
table: { category: 'Используется' },
|
|
17
|
-
},
|
|
18
|
-
type: {
|
|
19
|
-
control: 'select',
|
|
20
|
-
options: ['text', 'password', 'number', 'email', 'search', 'tel', 'date', 'url'],
|
|
21
|
-
description: 'Тип HTML-инпута.',
|
|
22
|
-
table: { category: 'Используется' },
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
width: {
|
|
26
|
-
control: 'text',
|
|
27
|
-
description: 'Ширина поля (CSS-значение, например "300px", "100%").',
|
|
28
|
-
table: { disable: true },
|
|
29
|
-
},
|
|
30
|
-
height: {
|
|
31
|
-
control: 'text',
|
|
32
|
-
description: 'Высота поля (например, "48px").',
|
|
33
|
-
table: { category: 'Используется' },
|
|
34
|
-
},
|
|
35
|
-
borderRadius: {
|
|
36
|
-
control: 'text',
|
|
37
|
-
description: 'Скругление углов (например, "8px").',
|
|
38
|
-
table: { disable: true },
|
|
39
|
-
},
|
|
40
|
-
borderWidth: {
|
|
41
|
-
control: 'text',
|
|
42
|
-
description: 'Толщина границы (например, "1px").',
|
|
43
|
-
table: { disable: true },
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
disabled: {
|
|
47
|
-
control: 'boolean',
|
|
48
|
-
description: 'Отключает поле ввода.',
|
|
49
|
-
table: { category: 'Используется' },
|
|
50
|
-
},
|
|
51
|
-
readonly: {
|
|
52
|
-
control: 'boolean',
|
|
53
|
-
description: 'Делает поле доступным только для чтения.',
|
|
54
|
-
table: { category: 'Используется' },
|
|
55
|
-
},
|
|
56
|
-
field: {
|
|
57
|
-
control: 'boolean',
|
|
58
|
-
description: 'Делает поле доступным только для чтения.',
|
|
59
|
-
table: { category: 'Используется' },
|
|
60
|
-
},
|
|
61
|
-
required: {
|
|
62
|
-
control: 'boolean',
|
|
63
|
-
description: 'Добавляет визуальный признак обязательного поля (стиль --required).',
|
|
64
|
-
table: { disable: true },
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
withArrow: {
|
|
68
|
-
control: 'boolean',
|
|
69
|
-
description: 'Для type="number": показывать ли стрелки вверх/вниз.',
|
|
70
|
-
table: { disable: true },
|
|
71
|
-
},
|
|
72
|
-
mask: { control: 'text', table: { disable: true } },
|
|
73
|
-
debounce: { control: 'number', table: { disable: true } },
|
|
74
|
-
datePicker: { table: { disable: true } },
|
|
75
|
-
timePicker: { table: { disable: true } },
|
|
76
|
-
withIcon: { table: { disable: true } },
|
|
77
|
-
withButton: { table: { disable: true } },
|
|
78
|
-
rules: { description: 'Правила для валидации.', table: { category: 'Используется' } },
|
|
79
|
-
borderColor: { table: { disable: true } },
|
|
80
|
-
name: { table: { disable: true } },
|
|
81
|
-
label: { table: { disable: true } },
|
|
82
|
-
hint: { table: { disable: true } },
|
|
83
|
-
},
|
|
84
|
-
args: {
|
|
85
|
-
modelValue: '',
|
|
86
|
-
placeholder: 'Введите значение...',
|
|
87
|
-
type: 'text',
|
|
88
|
-
height: '48px',
|
|
89
|
-
},
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export default meta
|
|
93
|
-
|
|
94
|
-
type Story = StoryObj<typeof AppInput>
|
|
95
|
-
|
|
96
|
-
export const Default: Story = {}
|
|
97
|
-
|
|
98
|
-
export const InputTypes: Story = {
|
|
99
|
-
render: () => ({
|
|
100
|
-
components: { AppInput },
|
|
101
|
-
template: `
|
|
102
|
-
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
103
|
-
<AppInput v-model="textValue" placeholder="Текст" type="text" />
|
|
104
|
-
<AppInput v-model="passwordValue" placeholder="Пароль" type="password" />
|
|
105
|
-
<AppInput v-model="emailValue" placeholder="Email" type="email" />
|
|
106
|
-
<AppInput v-model="telValue" placeholder="Телефон" type="tel" />
|
|
107
|
-
<AppInput v-model="numValue" placeholder="Число" type="number"/>
|
|
108
|
-
</div>
|
|
109
|
-
`,
|
|
110
|
-
data() {
|
|
111
|
-
return {
|
|
112
|
-
textValue: '',
|
|
113
|
-
passwordValue: '',
|
|
114
|
-
emailValue: '',
|
|
115
|
-
telValue: '',
|
|
116
|
-
numValue: 0,
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
}),
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export const States: Story = {
|
|
123
|
-
render: () => ({
|
|
124
|
-
components: { AppInput },
|
|
125
|
-
template: `
|
|
126
|
-
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
127
|
-
<AppInput v-model="activeValue" placeholder="Активное" />
|
|
128
|
-
<AppInput v-model="disabledValue" :disabled="true" />
|
|
129
|
-
<AppInput v-model="readonlyValue" :readonly="true" />
|
|
130
|
-
</div>
|
|
131
|
-
`,
|
|
132
|
-
data() {
|
|
133
|
-
return {
|
|
134
|
-
activeValue: '',
|
|
135
|
-
disabledValue: 'недоступно',
|
|
136
|
-
readonlyValue: 'только чтение',
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
}),
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export const Sizes: Story = {
|
|
143
|
-
render: () => ({
|
|
144
|
-
components: { AppInput },
|
|
145
|
-
template: `
|
|
146
|
-
<div style="display: flex; gap: 16px; flex-wrap: wrap; align-items: end;">
|
|
147
|
-
<AppInput v-model="val1" placeholder="40px" height="40px" width="180px" />
|
|
148
|
-
<AppInput v-model="val2" placeholder="48px" height="48px" width="200px" />
|
|
149
|
-
<AppInput v-model="val3" placeholder="60px" height="60px" width="220px" border-radius="12px" />
|
|
150
|
-
</div>
|
|
151
|
-
`,
|
|
152
|
-
data() {
|
|
153
|
-
return {
|
|
154
|
-
val1: '',
|
|
155
|
-
val2: '',
|
|
156
|
-
val3: '',
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
}),
|
|
160
|
-
}
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
|
+
import AppInput from '@/common/app-input/AppInput.vue'
|
|
3
|
+
|
|
4
|
+
const meta: Meta<typeof AppInput> = {
|
|
5
|
+
title: 'Components/AppInput',
|
|
6
|
+
component: AppInput,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
modelValue: {
|
|
10
|
+
control: 'text',
|
|
11
|
+
table: { category: 'Используется' },
|
|
12
|
+
},
|
|
13
|
+
placeholder: {
|
|
14
|
+
control: 'text',
|
|
15
|
+
description: 'Текст-подсказка внутри поля.',
|
|
16
|
+
table: { category: 'Используется' },
|
|
17
|
+
},
|
|
18
|
+
type: {
|
|
19
|
+
control: 'select',
|
|
20
|
+
options: ['text', 'password', 'number', 'email', 'search', 'tel', 'date', 'url'],
|
|
21
|
+
description: 'Тип HTML-инпута.',
|
|
22
|
+
table: { category: 'Используется' },
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
width: {
|
|
26
|
+
control: 'text',
|
|
27
|
+
description: 'Ширина поля (CSS-значение, например "300px", "100%").',
|
|
28
|
+
table: { disable: true },
|
|
29
|
+
},
|
|
30
|
+
height: {
|
|
31
|
+
control: 'text',
|
|
32
|
+
description: 'Высота поля (например, "48px").',
|
|
33
|
+
table: { category: 'Используется' },
|
|
34
|
+
},
|
|
35
|
+
borderRadius: {
|
|
36
|
+
control: 'text',
|
|
37
|
+
description: 'Скругление углов (например, "8px").',
|
|
38
|
+
table: { disable: true },
|
|
39
|
+
},
|
|
40
|
+
borderWidth: {
|
|
41
|
+
control: 'text',
|
|
42
|
+
description: 'Толщина границы (например, "1px").',
|
|
43
|
+
table: { disable: true },
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
disabled: {
|
|
47
|
+
control: 'boolean',
|
|
48
|
+
description: 'Отключает поле ввода.',
|
|
49
|
+
table: { category: 'Используется' },
|
|
50
|
+
},
|
|
51
|
+
readonly: {
|
|
52
|
+
control: 'boolean',
|
|
53
|
+
description: 'Делает поле доступным только для чтения.',
|
|
54
|
+
table: { category: 'Используется' },
|
|
55
|
+
},
|
|
56
|
+
field: {
|
|
57
|
+
control: 'boolean',
|
|
58
|
+
description: 'Делает поле доступным только для чтения.',
|
|
59
|
+
table: { category: 'Используется' },
|
|
60
|
+
},
|
|
61
|
+
required: {
|
|
62
|
+
control: 'boolean',
|
|
63
|
+
description: 'Добавляет визуальный признак обязательного поля (стиль --required).',
|
|
64
|
+
table: { disable: true },
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
withArrow: {
|
|
68
|
+
control: 'boolean',
|
|
69
|
+
description: 'Для type="number": показывать ли стрелки вверх/вниз.',
|
|
70
|
+
table: { disable: true },
|
|
71
|
+
},
|
|
72
|
+
mask: { control: 'text', table: { disable: true } },
|
|
73
|
+
debounce: { control: 'number', table: { disable: true } },
|
|
74
|
+
datePicker: { table: { disable: true } },
|
|
75
|
+
timePicker: { table: { disable: true } },
|
|
76
|
+
withIcon: { table: { disable: true } },
|
|
77
|
+
withButton: { table: { disable: true } },
|
|
78
|
+
rules: { description: 'Правила для валидации.', table: { category: 'Используется' } },
|
|
79
|
+
borderColor: { table: { disable: true } },
|
|
80
|
+
name: { table: { disable: true } },
|
|
81
|
+
label: { table: { disable: true } },
|
|
82
|
+
hint: { table: { disable: true } },
|
|
83
|
+
},
|
|
84
|
+
args: {
|
|
85
|
+
modelValue: '',
|
|
86
|
+
placeholder: 'Введите значение...',
|
|
87
|
+
type: 'text',
|
|
88
|
+
height: '48px',
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export default meta
|
|
93
|
+
|
|
94
|
+
type Story = StoryObj<typeof AppInput>
|
|
95
|
+
|
|
96
|
+
export const Default: Story = {}
|
|
97
|
+
|
|
98
|
+
export const InputTypes: Story = {
|
|
99
|
+
render: () => ({
|
|
100
|
+
components: { AppInput },
|
|
101
|
+
template: `
|
|
102
|
+
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
103
|
+
<AppInput v-model="textValue" placeholder="Текст" type="text" />
|
|
104
|
+
<AppInput v-model="passwordValue" placeholder="Пароль" type="password" />
|
|
105
|
+
<AppInput v-model="emailValue" placeholder="Email" type="email" />
|
|
106
|
+
<AppInput v-model="telValue" placeholder="Телефон" type="tel" />
|
|
107
|
+
<AppInput v-model="numValue" placeholder="Число" type="number"/>
|
|
108
|
+
</div>
|
|
109
|
+
`,
|
|
110
|
+
data() {
|
|
111
|
+
return {
|
|
112
|
+
textValue: '',
|
|
113
|
+
passwordValue: '',
|
|
114
|
+
emailValue: '',
|
|
115
|
+
telValue: '',
|
|
116
|
+
numValue: 0,
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
}),
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export const States: Story = {
|
|
123
|
+
render: () => ({
|
|
124
|
+
components: { AppInput },
|
|
125
|
+
template: `
|
|
126
|
+
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
127
|
+
<AppInput v-model="activeValue" placeholder="Активное" />
|
|
128
|
+
<AppInput v-model="disabledValue" :disabled="true" />
|
|
129
|
+
<AppInput v-model="readonlyValue" :readonly="true" />
|
|
130
|
+
</div>
|
|
131
|
+
`,
|
|
132
|
+
data() {
|
|
133
|
+
return {
|
|
134
|
+
activeValue: '',
|
|
135
|
+
disabledValue: 'недоступно',
|
|
136
|
+
readonlyValue: 'только чтение',
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
}),
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export const Sizes: Story = {
|
|
143
|
+
render: () => ({
|
|
144
|
+
components: { AppInput },
|
|
145
|
+
template: `
|
|
146
|
+
<div style="display: flex; gap: 16px; flex-wrap: wrap; align-items: end;">
|
|
147
|
+
<AppInput v-model="val1" placeholder="40px" height="40px" width="180px" />
|
|
148
|
+
<AppInput v-model="val2" placeholder="48px" height="48px" width="200px" />
|
|
149
|
+
<AppInput v-model="val3" placeholder="60px" height="60px" width="220px" border-radius="12px" />
|
|
150
|
+
</div>
|
|
151
|
+
`,
|
|
152
|
+
data() {
|
|
153
|
+
return {
|
|
154
|
+
val1: '',
|
|
155
|
+
val2: '',
|
|
156
|
+
val3: '',
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
}),
|
|
160
|
+
}
|