r3ui-lib 1.2.3-2 → 1.2.3-20

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 (30) hide show
  1. package/CHANGELOG.md +145 -0
  2. package/README.md +66 -2
  3. package/dist/r3ui-lib.css +1 -1
  4. package/dist/r3ui-lib.es.js +8441 -8255
  5. package/dist/r3ui-lib.umd.js +30 -30
  6. package/dist/types/components/cards/PageCard.vue.d.ts +56 -3
  7. package/dist/types/components/cards/PageCard.vue.d.ts.map +1 -1
  8. package/dist/types/components/forms/AddressForm.vue.d.ts +2 -0
  9. package/dist/types/components/forms/AddressForm.vue.d.ts.map +1 -1
  10. package/dist/types/components/forms/AgeFromAgeTo.stories.d.ts +1 -0
  11. package/dist/types/components/forms/AgeFromAgeTo.stories.d.ts.map +1 -1
  12. package/dist/types/components/forms/AgeFromAgeTo.vue.d.ts.map +1 -1
  13. package/dist/types/components/forms/BooleanCheckbox.vue.d.ts +1 -1
  14. package/dist/types/components/forms/BooleanCheckbox.vue.d.ts.map +1 -1
  15. package/dist/types/components/forms/Flatpickr.vue.d.ts +2 -2
  16. package/dist/types/components/forms/Flatpickr.vue.d.ts.map +1 -1
  17. package/dist/types/components/modals/ConfirmationModal.vue.d.ts.map +1 -1
  18. package/dist/types/components/modals/DefaultModal.vue.d.ts.map +1 -1
  19. package/dist/types/components/sidebar/CollapsedSidebarLink.vue.d.ts.map +1 -1
  20. package/dist/types/components/sidebar/SidebarLink.vue.d.ts.map +1 -1
  21. package/dist/types/components/tables/Table.vue.d.ts.map +1 -1
  22. package/dist/types/components/tables/TableColumnsButton.vue.d.ts.map +1 -1
  23. package/dist/types/components/tables/TableColumnsModal.vue.d.ts.map +1 -1
  24. package/dist/types/components/utilities/FilterValuesPanel.vue.d.ts.map +1 -1
  25. package/dist/types/composables/forms/useAddressForm.d.ts +6 -4
  26. package/dist/types/composables/forms/useAddressForm.d.ts.map +1 -1
  27. package/dist/types/composables/sidebar/useSidebar.d.ts +1 -0
  28. package/dist/types/composables/sidebar/useSidebar.d.ts.map +1 -1
  29. package/dist/types/composables/table/useTableDefault.d.ts.map +1 -1
  30. package/package.json +3 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,145 @@
1
+ # Changelog
2
+
3
+ Все значимые изменения в этом проекте будут документированы в этом файле.
4
+
5
+ Формат основан на [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.2.3-9]
9
+
10
+ ### Added
11
+
12
+ - **Контроль открытия внешних ссылок** - Новое свойство `openInNewWindow` для управления поведением внешних ссылок
13
+ - **Гибкость навигации** - Возможность открывать внешние ссылки в том же окне или в новой вкладке
14
+ - **Обратная совместимость** - По умолчанию внешние ссылки открываются в новом окне (как раньше)
15
+ - **Новые Storybook примеры** - История `MixedExternalLinks` демонстрирует различные варианты использования
16
+ - **Полное тестовое покрытие** - 6 новых тестов для проверки всех сценариев использования
17
+
18
+ ### Changed
19
+
20
+ - Расширен интерфейс `SidebarLink` с полем `openInNewWindow?: boolean`
21
+ - Обновлена логика обработки кликов в `SidebarLink.vue` и `CollapsedSidebarLink.vue`
22
+ - Улучшена документация с примерами использования новой функциональности
23
+
24
+ ### Technical Details
25
+
26
+ - Добавлена проверка `openInNewWindow !== false` для определения поведения ссылки
27
+ - Внешние ссылки с `openInNewWindow: false` используют `window.location.href`
28
+ - Внешние ссылки с `openInNewWindow: true` (по умолчанию) используют `window.open()`
29
+ - HTML атрибуты `target` и `rel` устанавливаются динамически в зависимости от настроек
30
+
31
+ ## [1.2.3-6]
32
+
33
+ ### Fixed
34
+
35
+ - **Исправлена проблема с отображением улиц** - Устранена проблема, когда улица показывала ID вместо названия
36
+ - **Предотвращены повторные загрузки** - Добавлена защита от повторного вызова автозаполнения
37
+ - **Оптимизирована загрузка localities** - Убрана ненужная загрузка localities в Case 5
38
+
39
+ ### Technical Details
40
+
41
+ - Добавлена проверка `isAutoFilling` в watcher `AddressForm.vue`
42
+ - Закомментирована загрузка localities с regionId в Case 5
43
+ - Улучшена отладочная информация для диагностики загрузки улиц
44
+
45
+ ## [1.2.3-5]
46
+
47
+ ### Fixed
48
+
49
+ - **Исправлены рекурсивные обновления в StoreOrganizationForm** - Устранена ошибка "Maximum recursive updates exceeded"
50
+ - **Оптимизированы обновления formData** - Использование `Object.assign()` для пакетного обновления
51
+ - **Добавлена отладочная информация** - Для диагностики проблем с загрузкой улиц
52
+
53
+ ### Technical Details
54
+
55
+ - Оптимизирована функция `fillFieldsForEdit` в `create.vue`
56
+ - Улучшена функция `fillAddressFields` для предотвращения множественных обновлений
57
+ - Добавлены console.log для отладки загрузки адресных данных
58
+
59
+ ## [1.2.3-4]
60
+
61
+ ### Fixed
62
+
63
+ - **Исправлены рекурсивные обновления в AddressForm** - Устранена ошибка "Unhandled error during execution of app errorHandler"
64
+ - **Улучшены защитные механизмы** - Добавлены дополнительные флаги для предотвращения циклических обновлений
65
+ - **Оптимизированы функции автозаполнения** - Использование `Object.assign()` вместо прямого присваивания
66
+ - **Добавлена функция безопасного сравнения** - Предотвращение ненужных обновлений при одинаковых данных
67
+
68
+ ### Technical Details
69
+
70
+ - Добавлена функция `isEqual()` для глубокого сравнения объектов
71
+ - Улучшены watchers в `AddressForm.vue` с дополнительными проверками
72
+ - Оптимизированы функции `autoFillForm` и `autoFillFormSkipReset` в `useAddressForm.ts`
73
+
74
+ ## [1.2.3-1]
75
+
76
+ ### Added
77
+
78
+ - **Новый компонент Sidebar** - Навигационное меню с поддержкой многоуровневых ссылок
79
+ - **Поддержка внешних ссылок** - Автоматическое открытие внешних ссылок в новой вкладке
80
+ - **Визуальные индикаторы** - Иконка ↗ для внешних ссылок
81
+ - **Безопасность** - Атрибуты `rel="noopener noreferrer"` для внешних ссылок
82
+ - **Storybook примеры** - Новые истории `WithExternalLinks` и `WithExternalLinksCollapsed`
83
+ - **Полная документация** - Подробное описание API в `/docs/components/Sidebar.md`
84
+
85
+ ### Changed
86
+
87
+ - Расширен интерфейс `SidebarLink` с полем `isExternal?: boolean`
88
+ - Обновлены компоненты `SidebarLink.vue` и `CollapsedSidebarLink.vue` для обработки внешних ссылок
89
+
90
+ ### Technical Details
91
+
92
+ - Добавлена функция `handleLinkClick` для различения внутренних и внешних ссылок
93
+ - Внешние ссылки открываются через `window.open()` с безопасными параметрами
94
+ - Внутренние ссылки продолжают работать через событие `navigate`
95
+
96
+ ## [1.2.3] - 2024-12-18
97
+
98
+ ### Added
99
+
100
+ - Новые компоненты форм: `BooleanCheckbox`, `MultiCheckbox`, `MultiInput`, `Flatpickr`, `HeaderSearchForm`, `AgeFromAgeTo`
101
+ - Расширены компоненты таблиц: `ColumnSubFilter`, `TableAppliedFiltersStorage`, `TableQuickFilterComponent`, `EditTableColumns`, `ToggleAllTableRowButtons`
102
+ - Новые модальные окна: `TableFilterModalComponent`, `EditTableColumnsModalComponent`
103
+ - Компоненты макета: `Footer`, `Header`, `MainComponent`, `CardInfo`, `PageCard`
104
+ - Аккордеоны: `DefaultAccordion`, `KindCheckboxesAccordion`
105
+ - Утилиты: `Spinner`, `Icon`, `DefaultDropDown`, `QuestionIcon`, `FilterValuesPanel`, `Slider`
106
+ - Компонент экспорта: `ExportComponent`
107
+ - Кнопки: `ClearFormButton`, `CollapseButton`, `ToggleButtons`
108
+
109
+ ### Fixed
110
+
111
+ - Исправлена бесконечная рекурсия в `AddressForm`
112
+ - Добавлен watcher для `countryId` с автоматической загрузкой регионов
113
+ - Восстановлен функционал `setFilterParamsStringsHandler`
114
+ - Исправлены TypeScript декларации
115
+
116
+ ### Changed
117
+
118
+ - Обновлена документация с полным списком всех компонентов
119
+ - Добавлены примеры использования для всех новых компонентов
120
+ - Улучшена производительность сборки
121
+
122
+ ## [1.2.2] - 2024-12-17
123
+
124
+ ### Added
125
+
126
+ - Полная поддержка TypeScript
127
+ - Все 56+ компонентов теперь доступны
128
+ - Методы сброса полей и получения полного адреса в `AddressForm`
129
+
130
+ ## [1.2.1] - 2024-12-16
131
+
132
+ ### Added
133
+
134
+ - Базовая структура библиотеки
135
+ - Первые компоненты из `auth-front`
136
+ - Storybook интеграция
137
+ - Базовые тесты
138
+
139
+ ## [1.0.0] - 2024-12-15
140
+
141
+ ### Added
142
+
143
+ - Первоначальный релиз библиотеки
144
+ - Базовые компоненты
145
+ - Документация
package/README.md CHANGED
@@ -81,6 +81,7 @@ import { DefaultButton, Table, useTableDefault } from 'r3ui-lib'
81
81
  - `MainComponent` - Основной компонент макета
82
82
  - `CardInfo` - Информационная карточка
83
83
  - `PageCard` - Карточка страницы
84
+ - `Sidebar` - Навигационное меню с поддержкой внешних ссылок
84
85
 
85
86
  ### 📋 Аккордеоны
86
87
  - `DefaultAccordion` - Базовый аккордеон
@@ -118,6 +119,7 @@ import { DefaultButton, Table, useTableDefault } from 'r3ui-lib'
118
119
 
119
120
  - **[TableWithComposable.vue](./examples/TableWithComposable.vue)** - Пример использования Table с useTableDefault
120
121
  - **[BreadcrumbsExample.vue](./examples/BreadcrumbsExample.vue)** - Пример использования useBreadcrumbs
122
+ - **[SidebarExample.vue](./examples/SidebarExample.vue)** - Пример использования Sidebar с внешними ссылками
121
123
 
122
124
  ## 🛠️ Разработка
123
125
 
@@ -220,6 +222,59 @@ function handleAddressChange(key, value) {
220
222
  </script>
221
223
  ```
222
224
 
225
+ ### Навигационное меню (Sidebar)
226
+
227
+ ```vue
228
+ <template>
229
+ <Sidebar
230
+ :links="sidebarLinks"
231
+ :is-collapsed="isCollapsed"
232
+ @navigate="handleNavigation"
233
+ >
234
+ <template #footer>
235
+ <button @click="toggleSidebar" class="btn btn-light w-100">
236
+ Toggle Sidebar
237
+ </button>
238
+ </template>
239
+ </Sidebar>
240
+ </template>
241
+
242
+ <script setup>
243
+ import { ref } from 'vue'
244
+ import { Sidebar } from 'r3ui-lib'
245
+
246
+ const isCollapsed = ref(false)
247
+
248
+ const sidebarLinks = [
249
+ {
250
+ level: 0,
251
+ uniqueKey: 1,
252
+ isVisible: true,
253
+ icon: '<i class="bi bi-house"></i>',
254
+ label: 'Главная',
255
+ href: '/',
256
+ },
257
+ {
258
+ level: 0,
259
+ uniqueKey: 2,
260
+ isVisible: true,
261
+ icon: '<i class="bi bi-github"></i>',
262
+ label: 'GitHub',
263
+ href: 'https://github.com',
264
+ isExternal: true, // Внешняя ссылка
265
+ }
266
+ ]
267
+
268
+ const handleNavigation = (href) => {
269
+ console.log('Navigation to:', href)
270
+ }
271
+
272
+ const toggleSidebar = () => {
273
+ isCollapsed.value = !isCollapsed.value
274
+ }
275
+ </script>
276
+ ```
277
+
223
278
  ## 🔗 Полезные ссылки
224
279
 
225
280
  - [GitHub Repository](git@github.com:REGAGRO-LTD-CY/r3ui-lib.git)
@@ -236,6 +291,15 @@ MIT License
236
291
  **Последнее обновление:** Декабрь 2024
237
292
 
238
293
  ## 🆕 Последние обновления
294
+
295
+ ### v1.2.3-1 (Декабрь 2024)
296
+ - ✅ **Новый компонент Sidebar** - Навигационное меню с поддержкой внешних ссылок
297
+ - ✅ **Внешние ссылки в Sidebar** - Автоматическое открытие в новой вкладке с безопасными атрибутами
298
+ - ✅ **Визуальные индикаторы** - Иконка ↗ для внешних ссылок
299
+ - ✅ **Storybook примеры** - Новые истории с внешними ссылками
300
+ - ✅ **Полная документация** - Подробное описание API и примеры использования
301
+
302
+ ### Предыдущие обновления
239
303
  - ✅ Добавлены новые компоненты форм: `BooleanCheckbox`, `MultiCheckbox`, `MultiInput`, `Flatpickr`, `HeaderSearchForm`, `AgeFromAgeTo`
240
304
  - ✅ Расширены компоненты таблиц: `ColumnSubFilter`, `TableAppliedFiltersStorage`, `TableQuickFilterComponent`, `EditTableColumns`, `ToggleAllTableRowButtons`
241
305
  - ✅ Добавлены новые модальные окна: `TableFilterModalComponent`, `EditTableColumnsModalComponent`
@@ -244,7 +308,7 @@ MIT License
244
308
  - ✅ Добавлены утилиты: `Spinner`, `Icon`, `DefaultDropDown`, `QuestionIcon`, `FilterValuesPanel`, `Slider`
245
309
  - ✅ Добавлен компонент экспорта: `ExportComponent`
246
310
  - ✅ Добавлены кнопки: `ClearFormButton`, `CollapseButton`, `ToggleButtons`
247
- - ✅ Обновлена документация с полным списком всех 56+ компонентов
311
+ - ✅ Обновлена документация с полным списком всех 57+ компонентов
248
312
  - ✅ Добавлены примеры использования для всех новых компонентов
249
313
  - ✅ Исправлена бесконечная рекурсия в `AddressForm`
250
314
  - ✅ Добавлен watcher для `countryId` с автоматической загрузкой регионов
@@ -252,5 +316,5 @@ MIT License
252
316
  - ✅ Добавлены методы сброса полей и получения полного адреса
253
317
  - ✅ Исправлены TypeScript декларации
254
318
  - ✅ Добавлена полная поддержка TypeScript
255
- - ✅ Все 56+ компонентов теперь доступны
319
+ - ✅ Все 57+ компонентов теперь доступны
256
320
  - ✅ Улучшена производительность сборки