bms-shared-components 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -1,92 +1,208 @@
1
- # BMS Shared Components
2
-
3
- Библиотека общих Vue 3 компонентов для переиспользования в различных проектах.
4
-
5
- ## Установка
6
-
7
- ```bash
8
- npm install bms-shared-components
9
- ```
10
-
11
- ## Использование
12
-
13
- ### Как плагин (глобальная регистрация)
14
-
15
- ```js
16
- import { createApp } from "vue";
17
- import App from "./App.vue";
18
- import BmsSharedComponents from "bms-shared-components";
19
- import "bms-shared-components/style.css";
20
-
21
- const app = createApp(App);
22
- app.use(BmsSharedComponents);
23
- app.mount("#app");
24
- ```
25
-
26
- ### Импорт отдельных компонентов
27
-
28
- ```js
29
- import { FullLoader } from "bms-shared-components";
30
- import "bms-shared-components/style.css";
31
-
32
- export default {
33
- components: {
34
- FullLoader,
35
- },
36
- };
37
- ```
38
-
39
- ## Компоненты
40
-
41
- ### FullLoader
42
-
43
- Компонент полноэкранного загрузчика с красивой анимацией.
44
-
45
- #### Пропсы
46
-
47
- - `modelValue` (Boolean) - управляет видимостью загрузчика
48
- - `minShowTime` (Number) - минимальное время показа в миллисекундах (по умолчанию 750)
49
-
50
- #### Пример использования
51
-
52
- ```vue
53
- <template>
54
- <div>
55
- <button @click="showLoader = true">Показать загрузчик</button>
56
-
57
- <FullLoader v-model="showLoader"> Загружаем данные... </FullLoader>
58
- </div>
59
- </template>
60
-
61
- <script setup>
62
- import { ref } from "vue";
63
- import { FullLoader } from "bms-shared-components";
64
-
65
- const showLoader = ref(false);
66
-
67
- // Автоматически скрыть через 3 секунды
68
- setTimeout(() => {
69
- showLoader.value = false;
70
- }, 3000);
71
- </script>
72
- ```
73
-
74
- ## Разработка
75
-
76
- ```bash
77
- # Установка зависимостей
78
- npm install
79
-
80
- # Запуск в режиме разработки
81
- npm run dev
82
-
83
- # Сборка библиотеки
84
- npm run build:lib
85
-
86
- # Публикация
87
- npm publish
88
- ```
89
-
90
- ## Лицензия
91
-
92
- MIT
1
+ # BMS Shared Components
2
+
3
+ Библиотека общих Vue 3 компонентов для переиспользования в различных проектах.
4
+
5
+ ## Установка
6
+
7
+ ```bash
8
+ npm install bms-shared-components
9
+ ```
10
+
11
+ ## Использование
12
+
13
+ ### Как плагин (глобальная регистрация)
14
+
15
+ ```js
16
+ import { createApp } from "vue";
17
+ import App from "./App.vue";
18
+ import BmsSharedComponents from "bms-shared-components";
19
+ import "bms-shared-components/style.css";
20
+
21
+ const app = createApp(App);
22
+ app.use(BmsSharedComponents);
23
+ app.mount("#app");
24
+ ```
25
+
26
+ ### С настройкой API при установке плагина
27
+
28
+ ```js
29
+ import { createApp } from "vue";
30
+ import App from "./App.vue";
31
+ import BmsSharedComponents from "bms-shared-components";
32
+ import "bms-shared-components/style.css";
33
+
34
+ const app = createApp(App);
35
+ app.use(BmsSharedComponents, {
36
+ apiConfig: {
37
+ baseURL: "https://api.example.com",
38
+ token: "your-auth-token",
39
+ },
40
+ });
41
+ app.mount("#app");
42
+ ```
43
+
44
+ ### Импорт отдельных компонентов
45
+
46
+ ```js
47
+ import { FullLoader } from "bms-shared-components";
48
+ import "bms-shared-components/style.css";
49
+
50
+ export default {
51
+ components: {
52
+ FullLoader,
53
+ },
54
+ };
55
+ ```
56
+
57
+ ## Настройка API
58
+
59
+ Если ваши компоненты будут обращаться к API, необходимо настроить базовый URL и токен авторизации.
60
+
61
+ ### Настройка с помощью configureApi
62
+
63
+ ```js
64
+ import { configureApi } from "bms-shared-components";
65
+
66
+ // Настройка API перед использованием компонентов
67
+ configureApi({
68
+ baseURL: "https://api.example.com",
69
+ token: "your-auth-token",
70
+ headers: {
71
+ // Дополнительные заголовки (опционально)
72
+ "Custom-Header": "value",
73
+ },
74
+ });
75
+ ```
76
+
77
+ ### Обновление токена
78
+
79
+ ```js
80
+ import { updateToken } from "bms-shared-components";
81
+
82
+ // Обновить токен авторизации
83
+ updateToken("new-auth-token");
84
+ ```
85
+
86
+ ### Получение текущей конфигурации
87
+
88
+ ```js
89
+ import { getApiConfig } from "bms-shared-components";
90
+
91
+ const config = getApiConfig();
92
+ console.log(config.baseURL); // текущий базовый URL
93
+ console.log(config.token); // текущий токен
94
+ ```
95
+
96
+ ## Композаблы
97
+
98
+ ### useAxios
99
+
100
+ Композабл для выполнения HTTP запросов с использованием настроенной конфигурации API.
101
+
102
+ ```vue
103
+ <template>
104
+ <div>
105
+ <button @click="loadData" :disabled="loading">Загрузить данные</button>
106
+
107
+ <div v-if="loading">Загрузка...</div>
108
+ <div v-if="error">Ошибка: {{ error }}</div>
109
+ <div v-if="data">
110
+ <pre>{{ JSON.stringify(data, null, 2) }}</pre>
111
+ </div>
112
+ </div>
113
+ </template>
114
+
115
+ <script setup>
116
+ import { useAxios } from "bms-shared-components";
117
+
118
+ const { loading, error, data, get, post, put, delete: del } = useAxios();
119
+
120
+ async function loadData() {
121
+ try {
122
+ // GET запрос
123
+ await get("/api/users");
124
+
125
+ // POST запрос
126
+ // await post("/api/users", { name: "John", email: "john@example.com" });
127
+
128
+ // PUT запрос
129
+ // await put("/api/users/1", { name: "Jane" });
130
+
131
+ // DELETE запрос
132
+ // await del("/api/users/1");
133
+ } catch (err) {
134
+ console.error("Ошибка запроса:", err);
135
+ }
136
+ }
137
+ </script>
138
+ ```
139
+
140
+ #### Возвращаемые значения useAxios
141
+
142
+ - `loading` - реактивное значение состояния загрузки
143
+ - `error` - реактивное значение с текстом ошибки
144
+ - `data` - реактивное значение с данными ответа
145
+ - `request(url, options)` - универсальный метод запроса
146
+ - `get(url, options)` - GET запрос
147
+ - `post(url, body, options)` - POST запрос
148
+ - `put(url, body, options)` - PUT запрос
149
+ - `delete(url, options)` - DELETE запрос
150
+
151
+ ## Компоненты
152
+
153
+ ### FullLoader
154
+
155
+ Компонент полноэкранного загрузчика с красивой анимацией.
156
+
157
+ #### Пропсы
158
+
159
+ - `modelValue` (Boolean) - управляет видимостью загрузчика
160
+ - `minShowTime` (Number) - минимальное время показа в миллисекундах (по умолчанию 750)
161
+
162
+ #### Пример использования
163
+
164
+ ```vue
165
+ <template>
166
+ <div>
167
+ <button @click="showLoader = true">Показать загрузчик</button>
168
+
169
+ <FullLoader v-model="showLoader"> Загружаем данные... </FullLoader>
170
+ </div>
171
+ </template>
172
+
173
+ <script setup>
174
+ import { ref } from "vue";
175
+ import { FullLoader } from "bms-shared-components";
176
+
177
+ const showLoader = ref(false);
178
+
179
+ // Автоматически скрыть через 3 секунды
180
+ setTimeout(() => {
181
+ showLoader.value = false;
182
+ }, 3000);
183
+ </script>
184
+ ```
185
+
186
+ ## Примеры
187
+
188
+ Полные примеры использования смотрите в папке `example/`.
189
+
190
+ ## Разработка
191
+
192
+ ```bash
193
+ # Установка зависимостей
194
+ npm install
195
+
196
+ # Запуск в режиме разработки
197
+ npm run dev
198
+
199
+ # Сборка библиотеки
200
+ npm run build:lib
201
+
202
+ # Публикация
203
+ npm publish
204
+ ```
205
+
206
+ ## Лицензия
207
+
208
+ MIT
@@ -1 +1 @@
1
- .loader-fade-enter-active[data-v-b1f0ef8e],.loader-fade-leave-active[data-v-b1f0ef8e]{transition:opacity .3s ease}.loader-fade-enter-from[data-v-b1f0ef8e],.loader-fade-leave-to[data-v-b1f0ef8e]{opacity:0}
1
+ .loader-fade-enter-active[data-v-b1f0ef8e],.loader-fade-leave-active[data-v-b1f0ef8e]{transition:opacity .3s ease}.loader-fade-enter-from[data-v-b1f0ef8e],.loader-fade-leave-to[data-v-b1f0ef8e]{opacity:0}.tox-promotion-link,.tox-statusbar__branding{display:none!important}.gutter{background-color:#eee;background-repeat:no-repeat;background-position:50%}.gutter.gutter-vertical{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=)}.gutter.gutter-horizontal{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}