indicator-ui 0.1.69 → 0.1.71
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 +25 -25
- package/dist/index.css +22 -0
- package/dist/index.css.map +1 -1
- package/dist/index.js +904 -878
- package/dist/index.js.map +1 -1
- package/dist/scss/styles/adaptive/index.scss +142 -142
- package/dist/scss/styles/colors/index.scss +1 -1
- package/dist/scss/styles/colors/primary.scss +54 -54
- package/dist/scss/styles/colors/secondary.scss +12 -12
- package/dist/scss/styles/index.scss +2 -2
- package/dist/scss/styles/mixins/centerInsideContent.scss +6 -6
- package/dist/scss/styles/mixins/changeSvg.scss +25 -25
- package/dist/scss/styles/mixins/fnt-flex.scss +38 -38
- package/dist/scss/styles/mixins/fnt.scss +25 -25
- package/dist/scss/styles/mixins/hiddeScrollBar.scss +9 -9
- package/dist/scss/styles/mixins/index.scss +7 -7
- package/dist/scss/styles/mixins/modify-flex.scss +17 -17
- package/dist/scss/styles/mixins/modify-svg.scss +30 -30
- package/dist/scss/test/global.scss +82 -82
- package/dist/scss/ui/Buttons/styles/mixins/baseButton.scss +48 -48
- package/dist/scss/ui/Buttons/styles/mixins/index.scss +1 -1
- package/dist/scss/ui/Buttons/styles/mixins/properties/index.scss +21 -21
- package/dist/scss/ui/Buttons/styles/mixins/properties/large.scss +28 -28
- package/dist/scss/ui/Buttons/styles/mixins/properties/link-black.scss +47 -47
- package/dist/scss/ui/Buttons/styles/mixins/properties/link-color.scss +47 -47
- package/dist/scss/ui/Buttons/styles/mixins/properties/link-dark-theme.scss +47 -47
- package/dist/scss/ui/Buttons/styles/mixins/properties/link-gray.scss +47 -47
- package/dist/scss/ui/Buttons/styles/mixins/properties/medium.scss +28 -28
- package/dist/scss/ui/Buttons/styles/mixins/properties/primary.scss +59 -59
- package/dist/scss/ui/Buttons/styles/mixins/properties/secondary-color.scss +72 -72
- package/dist/scss/ui/Buttons/styles/mixins/properties/secondary-gray.scss +90 -90
- package/dist/scss/ui/Buttons/styles/mixins/properties/small.scss +28 -28
- package/dist/scss/ui/Buttons/styles/mixins/properties/tab-active.scss +51 -51
- package/dist/scss/ui/Buttons/styles/mixins/properties/tab.scss +51 -51
- package/dist/scss/ui/Buttons/styles/mixins/properties/tertiary-color.scss +82 -82
- package/dist/scss/ui/Buttons/styles/mixins/properties/tertiary-gray.scss +42 -42
- package/dist/scss/ui/Buttons/styles/mixins/properties/tertiary-white.scss +83 -83
- package/dist/scss/ui/Buttons/styles/mixins/properties/ultra.scss +28 -28
- package/dist/scss/ui/Buttons/styles/mixins/properties/warning-link-color.scss +44 -44
- package/dist/scss/ui/Buttons/styles/mixins/properties/warning-primary.scss +36 -36
- package/dist/scss/ui/Buttons/styles/mixins/properties/warning-secondary-color.scss +40 -40
- package/dist/scss/ui/CheckboxMark/styles/mixins/base.scss +30 -30
- package/dist/scss/ui/CheckboxMark/styles/mixins/checkbox-mark.scss +95 -95
- package/dist/scss/ui/CheckboxMark/styles/mixins/index.scss +2 -2
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/checkbox.scss +2 -2
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/checked.scss +21 -21
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/correct.scss +48 -48
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/disabled.scss +28 -28
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/error.scss +23 -23
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/incorrect.scss +48 -48
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/indeterminate.scss +18 -18
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/index.scss +7 -7
- package/dist/scss/ui/CheckboxMark/styles/mixins/properties/radio.scss +14 -14
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomInputField/CustomInput.scss +125 -125
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomInputField/CustomInputField.scss +32 -32
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomInputField/CustomTextareaInput.scss +29 -29
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomInputField/index.scss +1 -1
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomInputWrapper/CustomInputWrapper.scss +54 -54
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomInputWrapper/config.scss +4 -4
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomOptionsInput/index.scss +47 -47
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomSelectField/CustomSelectField.scss +53 -53
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomSelectField/CustomSelectFieldOption.scss +50 -50
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomSelectField/CustomSelectFieldViewField.scss +27 -27
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomSwitchersField/CustomSwitchersField.scss +16 -16
- package/dist/scss/ui/FormBuilder/styles/CustomFields/CustomSwitchersField/components/option.scss +33 -33
- package/dist/scss/ui/FormBuilder/styles/CustomFields/index.scss +4 -4
- package/dist/scss/ui/InputFields/FlexField/styles/mixins/flexField.scss +150 -150
- package/dist/scss/ui/InputFields/InputFieldWrapper/styles/mixins/inputFieldWrapper.scss +49 -49
- package/dist/scss/ui/MicroButton/styles/mixins/base-button.scss +17 -17
- package/dist/scss/ui/MicroButton/styles/mixins/index.scss +1 -1
- package/dist/scss/ui/MicroButton/styles/mixins/micro-button.scss +68 -68
- package/dist/scss/ui/MicroButton/styles/mixins/properties/blue-light.scss +18 -18
- package/dist/scss/ui/MicroButton/styles/mixins/properties/color-fill.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/color-hover.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/color.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/dark.scss +18 -18
- package/dist/scss/ui/MicroButton/styles/mixins/properties/gray-fill.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/gray.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/index.scss +17 -17
- package/dist/scss/ui/MicroButton/styles/mixins/properties/light.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/red-fill.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/red-hover.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/rose.scss +20 -20
- package/dist/scss/ui/MicroButton/styles/mixins/properties/size-14.scss +11 -11
- package/dist/scss/ui/MicroButton/styles/mixins/properties/size-16.scss +11 -11
- package/dist/scss/ui/MicroButton/styles/mixins/properties/size-20.scss +11 -11
- package/dist/scss/ui/MicroButton/styles/mixins/properties/size-24.scss +11 -11
- package/dist/scss/ui/MicroButton/styles/mixins/properties/size-28.scss +11 -11
- package/dist/scss/ui/Tag/styles/properties/active.scss +15 -15
- package/dist/scss/ui/Tag/styles/properties/base.scss +33 -33
- package/dist/scss/ui/Tag/styles/properties/clicked.scss +2 -2
- package/dist/scss/ui/Tag/styles/properties/hover.scss +4 -4
- package/dist/scss/ui/Tag/styles/properties/index.scss +6 -6
- package/dist/scss/ui/Tag/styles/properties/large.scss +18 -18
- package/dist/scss/ui/Tag/styles/properties/medium.scss +18 -18
- package/dist/scss/ui/Tag/styles/properties/small.scss +18 -18
- package/dist/scss/ui/ToggleBase/styles/mixins/active.scss +12 -12
- package/dist/scss/ui/ToggleBase/styles/mixins/base-button.scss +8 -8
- package/dist/scss/ui/ToggleBase/styles/mixins/base.scss +13 -13
- package/dist/scss/ui/ToggleBase/styles/mixins/disabled.scss +5 -5
- package/dist/scss/ui/ToggleBase/styles/mixins/error.scss +6 -6
- package/dist/scss/ui/ToggleBase/styles/mixins/hover.scss +22 -22
- package/dist/scss/ui/ToggleBase/styles/mixins/index.scss +8 -8
- package/dist/scss/ui/ToggleBase/styles/mixins/large.scss +8 -8
- package/dist/scss/ui/ToggleBase/styles/mixins/medium.scss +8 -8
- package/dist/scss/ui/ToggleBase/styles/mixins/spacer.scss +4 -4
- package/dist/scss/ui/formFields/FormFieldWrapper/styles/mixins/inputFieldWrapper.scss +49 -49
- package/dist/types/src/hooks/forms/types/scheme.d.ts +2 -2
- package/dist/types/src/hooks/forms/useForm.d.ts +2 -2
- package/dist/types/src/test/App.d.ts +1 -1
- package/dist/types/src/test/layout/PageLayout.d.ts +1 -1
- package/dist/types/src/test/pages/ButtonsPage.d.ts +1 -1
- package/dist/types/src/test/pages/CascadeSelectorPage.d.ts +1 -1
- package/dist/types/src/test/pages/CheckboxMarkPage.d.ts +1 -1
- package/dist/types/src/test/pages/CheckboxPage.d.ts +1 -1
- package/dist/types/src/test/pages/DateTimeFieldMaskPage.d.ts +1 -1
- package/dist/types/src/test/pages/DateTimeFieldsPage.d.ts +1 -1
- package/dist/types/src/test/pages/DateTimePickerPage.d.ts +1 -1
- package/dist/types/src/test/pages/DropdownItemPage.d.ts +1 -1
- package/dist/types/src/test/pages/FieldsPage.d.ts +1 -1
- package/dist/types/src/test/pages/FormBuilderPage.d.ts +1 -1
- package/dist/types/src/test/pages/FormPage.d.ts +1 -1
- package/dist/types/src/test/pages/HomePage.d.ts +1 -1
- package/dist/types/src/test/pages/LoadingIndicatorPage.d.ts +1 -1
- package/dist/types/src/test/pages/MediaPlayerPage.d.ts +1 -1
- package/dist/types/src/test/pages/MicroButtonsPage.d.ts +1 -1
- package/dist/types/src/test/pages/ModalsPage.d.ts +1 -1
- package/dist/types/src/test/pages/PaginationPage.d.ts +1 -1
- package/dist/types/src/test/pages/SlideTransitionPage.d.ts +1 -1
- package/dist/types/src/test/pages/TabFramePage.d.ts +1 -1
- package/dist/types/src/test/pages/TagPage.d.ts +1 -1
- package/dist/types/src/test/pages/TestPage.d.ts +1 -1
- package/dist/types/src/test/pages/ToggleBasePage.d.ts +1 -1
- package/dist/types/src/test/pages/TogglePage.d.ts +1 -1
- package/dist/types/src/test/pages/TooltipTage.d.ts +1 -1
- package/dist/types/src/test/pages/UiAnimationsPage.d.ts +1 -1
- package/dist/types/src/test/pages/UseSmartPositionPage.d.ts +1 -1
- package/dist/types/src/test/pages/UseSmartScrollPage.d.ts +1 -1
- package/dist/types/src/test/pages/UserPickPage.d.ts +1 -1
- package/dist/types/src/types/mixins.d.ts +2 -2
- package/dist/types/src/ui/Carousel/ui/Carousel.d.ts +1 -1
- package/dist/types/src/ui/CascadeSelector/ui/CascadeSelector.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/components/CalendarButton.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/components/CalendarDay.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/components/CalendarMonth.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/components/CalendarYear.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/components/TimePickerFeed.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/components/TimePickerTag.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/parts/Footer.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/parts/Header.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/parts/Main.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/pickers/DatePicker.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/pickers/MonthPicker.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/pickers/TimePicker.d.ts +1 -1
- package/dist/types/src/ui/DateTimePicker/ui/pickers/YearPicker.d.ts +1 -1
- package/dist/types/src/ui/FormBuilder/lib/formBuilder.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeField/ui/DateField.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeField/ui/DateFieldBase.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeField/ui/DateTimeField.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeField/ui/TimeField.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeField/ui/TimeFieldBase.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeFieldMask/ui/DateTimeFieldMask.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeRangeField/ui/DateRangeField.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeRangeField/ui/DateTimeRangeField.d.ts +1 -1
- package/dist/types/src/ui/InputFields/DateTimeRangeField/ui/TimeRangeField.d.ts +1 -1
- package/dist/types/src/ui/InputFields/TextareaField/ui/TextareaField.d.ts +1 -1
- package/dist/types/src/ui/Loaders/types/LoadingIndicatorTypes.d.ts +1 -0
- package/dist/types/src/ui/Loaders/ui/LoadingIndicator.d.ts +1 -1
- package/dist/types/src/ui/MediaViewer/ui/components/ControlBar.d.ts +1 -1
- package/dist/types/src/ui/MediaViewer/ui/components/VideoProgressBar.d.ts +1 -1
- package/dist/types/src/ui/PaginationBar/ui/PageSwitcher.d.ts +1 -1
- package/dist/types/src/ui/PaginationBar/ui/PaginationBar.d.ts +1 -1
- package/dist/types/src/ui/PlayButton/ui/PlayButton.d.ts +1 -1
- package/dist/types/src/ui/SlideTransition/ui/SlideTransition.d.ts +1 -1
- package/dist/types/src/ui/TabButtons/ui/TabButtons.d.ts +1 -1
- package/dist/types/src/ui/TabFrame/ui/TabFrame.d.ts +1 -1
- package/dist/types/src/ui/Tag/ui/Tag.d.ts +1 -1
- package/dist/types/src/ui/Tag/ui/TagCheckbox.d.ts +1 -1
- package/dist/types/src/ui/Tag/ui/TagCount.d.ts +1 -1
- package/dist/types/src/ui/Toggle/ui/Toggle.d.ts +1 -1
- package/dist/types/src/ui/Tooltip/ui/Tooltip.d.ts +1 -1
- package/dist/types/src/ui/UserPick/ui/UserPick.d.ts +1 -1
- package/dist/types/src/ui/formFields/FormRadioField/ui/FieldItem.d.ts +1 -1
- package/dist/types/src/ui/formFields/FormRadioField/ui/FormRadioField.d.ts +1 -1
- package/dist/types/src/ui/formFields/FormSelectField/ui/FormSelectFieldBase.d.ts +1 -1
- package/dist/types/src/ui/formFields/FormTextareaField/ui/FormTextareaField.d.ts +1 -1
- package/dist/types/src/ui/formFields/extends/ui/DropdownArrow.d.ts +1 -1
- package/dist/types/src/ui/formFields/extends/ui/InputInnerButton.d.ts +1 -1
- package/docs/CSSVariables/CSSVariables.md +62 -62
- package/docs/CSSVariables/CSSVariablesCalifornia.md +61 -61
- package/docs/ForDev.md +106 -106
- package/docs/FormBuilderDocs.md +204 -204
- package/docs/Notes.md +189 -189
- package/docs/SCSSVariables.md +28 -28
- package/package.json +1 -1
package/docs/ForDev.md
CHANGED
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
[🔙 Назад](../README.md)
|
|
2
|
-
|
|
3
|
-
# 📌 Для разработки
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 🔥 Точки входа
|
|
8
|
-
|
|
9
|
-
В проекте есть два ключевых входа для модулей — **js/ts** и **scss**.
|
|
10
|
-
|
|
11
|
-
#### 📂 `src/index.ts` (js/ts модули)
|
|
12
|
-
|
|
13
|
-
Добавляем сюда все модули, которые должны быть доступны через:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
import {} from 'indicator-ui';
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
#### 🎨 `src/index.scss` (scss модули)
|
|
20
|
-
|
|
21
|
-
Добавляем сюда все стили, которые должны быть доступны через:
|
|
22
|
-
|
|
23
|
-
```scss
|
|
24
|
-
@use 'indicator-ui' as *;
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## ⚙️ Сборка проекта
|
|
30
|
-
|
|
31
|
-
Чтобы собрать проект, используйте:
|
|
32
|
-
|
|
33
|
-
```sh
|
|
34
|
-
npm run lib:build
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Результаты сборки появятся в папке `dist`. Там, возможно, живёт магия. 🧙♂️✨
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 🧪 Тестирование во время разработки
|
|
42
|
-
|
|
43
|
-
Для быстрого тестирования и проверки работы библиотеки используйте **React приложение** в папке с исходным кодом. Оно
|
|
44
|
-
доступно по следующему пути:
|
|
45
|
-
|
|
46
|
-
**[Жмак](../src/test/index.tsx)**
|
|
47
|
-
|
|
48
|
-
В этом приложении настроен роутинг с несколькими страницами. Для тестирования просто добавляйте нужные элементы и
|
|
49
|
-
страницы, следуя шаблону.
|
|
50
|
-
|
|
51
|
-
Для добавления страниц в роутинг откройте и отредактируйте файл:
|
|
52
|
-
|
|
53
|
-
**[Жмyк](../src/test/App.tsx)**
|
|
54
|
-
|
|
55
|
-
### 🏃♂️ Запуск dev-сервера
|
|
56
|
-
|
|
57
|
-
Чтобы запустить локальный сервер для разработки, выполните команду:
|
|
58
|
-
|
|
59
|
-
```sh
|
|
60
|
-
npm run dev:dev
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Важно:** Стремитесь создавать страницы, максимально приближенные к финальному дизайну, чтобы дизайнер мог проверить
|
|
64
|
-
вашу работу в реальном времени и удостовериться, что она соответствует его ожиданиям.
|
|
65
|
-
|
|
66
|
-
## 🛠 Тестирование перед публикацией
|
|
67
|
-
|
|
68
|
-
Перед публикацией можно протестировать библиотеку на локальном **React**-проекте `test-project`. Для этого используется
|
|
69
|
-
**yalc** — аналог npm, но для локальных пакетов.
|
|
70
|
-
|
|
71
|
-
### 🚀 Установка `yalc`
|
|
72
|
-
|
|
73
|
-
```sh
|
|
74
|
-
npm install -g yalc
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### 📦 Публикация в локальное хранилище
|
|
78
|
-
|
|
79
|
-
```sh
|
|
80
|
-
yalc publish
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Есть вторая команда, которая по идее должна еще и обновлять библу, где она используется.
|
|
84
|
-
|
|
85
|
-
```sh
|
|
86
|
-
yalc publish --push
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 📥 Установка библиотеки в проект
|
|
90
|
-
|
|
91
|
-
```sh
|
|
92
|
-
yalc add indicator-ui
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 🔄 Обновление библиотеки
|
|
96
|
-
|
|
97
|
-
```sh
|
|
98
|
-
yalc update
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Также советую делать удаление библы, так как `yalc` и `npm` очень странно работают и иногда могут добавлять изменения.
|
|
102
|
-
|
|
103
|
-
```sh
|
|
104
|
-
npm uninstall indicator-ui
|
|
105
|
-
```
|
|
106
|
-
|
|
1
|
+
[🔙 Назад](../README.md)
|
|
2
|
+
|
|
3
|
+
# 📌 Для разработки
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🔥 Точки входа
|
|
8
|
+
|
|
9
|
+
В проекте есть два ключевых входа для модулей — **js/ts** и **scss**.
|
|
10
|
+
|
|
11
|
+
#### 📂 `src/index.ts` (js/ts модули)
|
|
12
|
+
|
|
13
|
+
Добавляем сюда все модули, которые должны быть доступны через:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import {} from 'indicator-ui';
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
#### 🎨 `src/index.scss` (scss модули)
|
|
20
|
+
|
|
21
|
+
Добавляем сюда все стили, которые должны быть доступны через:
|
|
22
|
+
|
|
23
|
+
```scss
|
|
24
|
+
@use 'indicator-ui' as *;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## ⚙️ Сборка проекта
|
|
30
|
+
|
|
31
|
+
Чтобы собрать проект, используйте:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
npm run lib:build
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Результаты сборки появятся в папке `dist`. Там, возможно, живёт магия. 🧙♂️✨
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 🧪 Тестирование во время разработки
|
|
42
|
+
|
|
43
|
+
Для быстрого тестирования и проверки работы библиотеки используйте **React приложение** в папке с исходным кодом. Оно
|
|
44
|
+
доступно по следующему пути:
|
|
45
|
+
|
|
46
|
+
**[Жмак](../src/test/index.tsx)**
|
|
47
|
+
|
|
48
|
+
В этом приложении настроен роутинг с несколькими страницами. Для тестирования просто добавляйте нужные элементы и
|
|
49
|
+
страницы, следуя шаблону.
|
|
50
|
+
|
|
51
|
+
Для добавления страниц в роутинг откройте и отредактируйте файл:
|
|
52
|
+
|
|
53
|
+
**[Жмyк](../src/test/App.tsx)**
|
|
54
|
+
|
|
55
|
+
### 🏃♂️ Запуск dev-сервера
|
|
56
|
+
|
|
57
|
+
Чтобы запустить локальный сервер для разработки, выполните команду:
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
npm run dev:dev
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Важно:** Стремитесь создавать страницы, максимально приближенные к финальному дизайну, чтобы дизайнер мог проверить
|
|
64
|
+
вашу работу в реальном времени и удостовериться, что она соответствует его ожиданиям.
|
|
65
|
+
|
|
66
|
+
## 🛠 Тестирование перед публикацией
|
|
67
|
+
|
|
68
|
+
Перед публикацией можно протестировать библиотеку на локальном **React**-проекте `test-project`. Для этого используется
|
|
69
|
+
**yalc** — аналог npm, но для локальных пакетов.
|
|
70
|
+
|
|
71
|
+
### 🚀 Установка `yalc`
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
npm install -g yalc
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 📦 Публикация в локальное хранилище
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
yalc publish
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Есть вторая команда, которая по идее должна еще и обновлять библу, где она используется.
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
yalc publish --push
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 📥 Установка библиотеки в проект
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
yalc add indicator-ui
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 🔄 Обновление библиотеки
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
yalc update
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Также советую делать удаление библы, так как `yalc` и `npm` очень странно работают и иногда могут добавлять изменения.
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
npm uninstall indicator-ui
|
|
105
|
+
```
|
|
106
|
+
|
package/docs/FormBuilderDocs.md
CHANGED
|
@@ -1,205 +1,205 @@
|
|
|
1
|
-
[🔙 Назад](../README.md)
|
|
2
|
-
|
|
3
|
-
# `FormBuilder`
|
|
4
|
-
|
|
5
|
-
### Важно
|
|
6
|
-
|
|
7
|
-
Для работы нужно установить библы: `npm install clsx react-imask`
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Клиентский компонент, созданный для облегчения создания полей. По большей части он был создан для имплементации хука
|
|
12
|
-
`useFormBuilder` (чья цель, создать гибкое состояние формы). В `FormBuilder` передается основной пропс - `schema`.
|
|
13
|
-
|
|
14
|
-
`schema` - словарь, в котором перечислены все поля и другие компоненты. Fообще в билдере можно написать обсалютно любую
|
|
15
|
-
логику компонента (или почти любую), в этом и была основная идея `FormBuilder`.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
### Актуальные типы полей:
|
|
20
|
-
|
|
21
|
-
* `FORM_WRAPPER_SCHEMA`
|
|
22
|
-
* `REACT_NODE_SCHEMA`
|
|
23
|
-
* `INPUT_FIELD_SCHEMA`
|
|
24
|
-
* `ARRAY_FIELDS_SCHEMA`
|
|
25
|
-
* `BLOCK_WRAPPER_SCHEMA`
|
|
26
|
-
|
|
27
|
-
### Неактуальные типы полей (ими лучше не пользоваться, они потихоньку будут выпиливаться из проекта)
|
|
28
|
-
|
|
29
|
-
* `BLOCK_SCHEMA`
|
|
30
|
-
* `CUSTOM_FIELD_WRAPPER_SCHEMA`
|
|
31
|
-
* `ADDITION_PROPS`
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
### `INPUT_FIELD_SCHEMA`
|
|
36
|
-
|
|
37
|
-
Самая используемая схема поля ввода.
|
|
38
|
-
|
|
39
|
-
```ts
|
|
40
|
-
const schema: INPUT_FIELD_SCHEMA = {
|
|
41
|
-
type: 'input_field',
|
|
42
|
-
props: {
|
|
43
|
-
name: 'test',
|
|
44
|
-
labelText: 'label',
|
|
45
|
-
hintText: 'hint',
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Основной пропсы - это `name`, он отвечает за имя во вложенности формы
|
|
51
|
-
|
|
52
|
-
###### В результате получим:
|
|
53
|
-
|
|
54
|
-
```ts
|
|
55
|
-
const formData = {
|
|
56
|
-
test: 'data',
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
#### Дополнительные поля, предоставляемые `FormBuilder`:
|
|
61
|
-
|
|
62
|
-
* `keyWay` - позволяет вручную задать вложенность поля
|
|
63
|
-
|
|
64
|
-
```ts
|
|
65
|
-
const schema: INPUT_FIELD_SCHEMA = {
|
|
66
|
-
type: 'input_field',
|
|
67
|
-
props: {
|
|
68
|
-
keyWay: ['test1', 'test2', 'test3'],
|
|
69
|
-
labelText: 'label',
|
|
70
|
-
hintText: 'hint',
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
###### В результате получим:
|
|
76
|
-
|
|
77
|
-
```ts
|
|
78
|
-
const formData = {
|
|
79
|
-
test1: {
|
|
80
|
-
test2: {
|
|
81
|
-
test3: 'data',
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
* `onBlurValidation` - добавляет проверку на `onBlur`.
|
|
88
|
-
|
|
89
|
-
```ts
|
|
90
|
-
type onBlurValidation = { required: boolean, fun: (data: any) => boolean }
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
`required` - обязательное поле.
|
|
94
|
-
|
|
95
|
-
* `ownerInputComponent` - свое собственное `input` поле. Для работы оно должно принимать параметры `value` и `onChange`,
|
|
96
|
-
которые накидываются `FormBuilder`. Любые пропсы, переданные в `props` пойдут в компонент (можно накинуть на сам
|
|
97
|
-
компонент в `ownerInputComponent`, разницы нет, но `value`, `onChange`, `isError`, `isErrorMessage`, `onBlur` будут
|
|
98
|
-
перезаписаны).
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
### `ARRAY_FIELDS_SCHEMA`
|
|
103
|
-
|
|
104
|
-
Схема для создания массива в форме. Любой `input_field` будет класться в ячейку массива, а не в поле словаря.
|
|
105
|
-
|
|
106
|
-
```ts
|
|
107
|
-
const schemes: ARRAY_FIELDS_SCHEMA = [
|
|
108
|
-
{
|
|
109
|
-
type: 'array_fields',
|
|
110
|
-
props: {
|
|
111
|
-
name: 'test_arr',
|
|
112
|
-
children: [
|
|
113
|
-
{
|
|
114
|
-
type: 'input_field',
|
|
115
|
-
props: {
|
|
116
|
-
name: 'test',
|
|
117
|
-
labelText: 'label',
|
|
118
|
-
hintText: 'hint',
|
|
119
|
-
placeholder: 'placeholder',
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
]
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
###### В результате получим:
|
|
129
|
-
|
|
130
|
-
```ts
|
|
131
|
-
const formData = {
|
|
132
|
-
test_arr: [
|
|
133
|
-
{
|
|
134
|
-
test: "123213"
|
|
135
|
-
},
|
|
136
|
-
]
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
###### Если не указать `name` в `input_field`, то получим:
|
|
141
|
-
|
|
142
|
-
```ts
|
|
143
|
-
const formData = {
|
|
144
|
-
test_arr: [
|
|
145
|
-
"123123123123"
|
|
146
|
-
]
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
В зависимости от того, в каком порядке написаны поля ввода в массиве схемы, в том же порядке будет идти запись в форму.
|
|
151
|
-
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
### `FORM_WRAPPER_SCHEMA`
|
|
155
|
-
|
|
156
|
-
Используется для обертки формы, сбрасывает счетчик `ARRAY_FIELDS_SCHEMA` (это значит, что поля внутри `FORM_WAPPER`
|
|
157
|
-
**_не пойдут_** в массив).
|
|
158
|
-
|
|
159
|
-
```ts
|
|
160
|
-
const schemes: ARRAY_FIELDS_SCHEMA = [
|
|
161
|
-
{
|
|
162
|
-
type: 'form_wrapper',
|
|
163
|
-
props: {
|
|
164
|
-
name: 'test_arr',
|
|
165
|
-
children: [
|
|
166
|
-
{
|
|
167
|
-
type: 'input_field',
|
|
168
|
-
props: {
|
|
169
|
-
name: 'test',
|
|
170
|
-
labelText: 'label',
|
|
171
|
-
hintText: 'hint',
|
|
172
|
-
placeholder: 'placeholder',
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
]
|
|
176
|
-
}
|
|
177
|
-
},
|
|
178
|
-
]
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
###### В результате получим:
|
|
182
|
-
|
|
183
|
-
```ts
|
|
184
|
-
const formData = {
|
|
185
|
-
test_arr: {
|
|
186
|
-
test: "123123132132"
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
### `BLOCK_WRAPPER_SCHEMA`
|
|
194
|
-
|
|
195
|
-
Используется для обертки чего-то, не сбрасывает счетчик `ARRAY_FIELDS_SCHEMA`, но и прописать ключ значения в словаре
|
|
196
|
-
тоже нельзя (это значит, что поля внутри `FORM_WAPPER` **_пойдут_** в массив). Было сделано для того, чтобы можно было в
|
|
197
|
-
массиве (или просто в схеме) сделать обертку, а в нее передать схему поля. К примеру, у вас посреди схемы надо сделать
|
|
198
|
-
обертку для `input_field`, писать новый компонент поля не хочется, поэтому мы можем сделать компонент обертки и передать
|
|
199
|
-
его в `BLOCK_WRAPPER_SCHEMA`.
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
### `REACT_NODE_SCHEMA`
|
|
204
|
-
|
|
1
|
+
[🔙 Назад](../README.md)
|
|
2
|
+
|
|
3
|
+
# `FormBuilder`
|
|
4
|
+
|
|
5
|
+
### Важно
|
|
6
|
+
|
|
7
|
+
Для работы нужно установить библы: `npm install clsx react-imask`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Клиентский компонент, созданный для облегчения создания полей. По большей части он был создан для имплементации хука
|
|
12
|
+
`useFormBuilder` (чья цель, создать гибкое состояние формы). В `FormBuilder` передается основной пропс - `schema`.
|
|
13
|
+
|
|
14
|
+
`schema` - словарь, в котором перечислены все поля и другие компоненты. Fообще в билдере можно написать обсалютно любую
|
|
15
|
+
логику компонента (или почти любую), в этом и была основная идея `FormBuilder`.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
### Актуальные типы полей:
|
|
20
|
+
|
|
21
|
+
* `FORM_WRAPPER_SCHEMA`
|
|
22
|
+
* `REACT_NODE_SCHEMA`
|
|
23
|
+
* `INPUT_FIELD_SCHEMA`
|
|
24
|
+
* `ARRAY_FIELDS_SCHEMA`
|
|
25
|
+
* `BLOCK_WRAPPER_SCHEMA`
|
|
26
|
+
|
|
27
|
+
### Неактуальные типы полей (ими лучше не пользоваться, они потихоньку будут выпиливаться из проекта)
|
|
28
|
+
|
|
29
|
+
* `BLOCK_SCHEMA`
|
|
30
|
+
* `CUSTOM_FIELD_WRAPPER_SCHEMA`
|
|
31
|
+
* `ADDITION_PROPS`
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### `INPUT_FIELD_SCHEMA`
|
|
36
|
+
|
|
37
|
+
Самая используемая схема поля ввода.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
const schema: INPUT_FIELD_SCHEMA = {
|
|
41
|
+
type: 'input_field',
|
|
42
|
+
props: {
|
|
43
|
+
name: 'test',
|
|
44
|
+
labelText: 'label',
|
|
45
|
+
hintText: 'hint',
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Основной пропсы - это `name`, он отвечает за имя во вложенности формы
|
|
51
|
+
|
|
52
|
+
###### В результате получим:
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
const formData = {
|
|
56
|
+
test: 'data',
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### Дополнительные поля, предоставляемые `FormBuilder`:
|
|
61
|
+
|
|
62
|
+
* `keyWay` - позволяет вручную задать вложенность поля
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
const schema: INPUT_FIELD_SCHEMA = {
|
|
66
|
+
type: 'input_field',
|
|
67
|
+
props: {
|
|
68
|
+
keyWay: ['test1', 'test2', 'test3'],
|
|
69
|
+
labelText: 'label',
|
|
70
|
+
hintText: 'hint',
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
###### В результате получим:
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
const formData = {
|
|
79
|
+
test1: {
|
|
80
|
+
test2: {
|
|
81
|
+
test3: 'data',
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
* `onBlurValidation` - добавляет проверку на `onBlur`.
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
type onBlurValidation = { required: boolean, fun: (data: any) => boolean }
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`required` - обязательное поле.
|
|
94
|
+
|
|
95
|
+
* `ownerInputComponent` - свое собственное `input` поле. Для работы оно должно принимать параметры `value` и `onChange`,
|
|
96
|
+
которые накидываются `FormBuilder`. Любые пропсы, переданные в `props` пойдут в компонент (можно накинуть на сам
|
|
97
|
+
компонент в `ownerInputComponent`, разницы нет, но `value`, `onChange`, `isError`, `isErrorMessage`, `onBlur` будут
|
|
98
|
+
перезаписаны).
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### `ARRAY_FIELDS_SCHEMA`
|
|
103
|
+
|
|
104
|
+
Схема для создания массива в форме. Любой `input_field` будет класться в ячейку массива, а не в поле словаря.
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
const schemes: ARRAY_FIELDS_SCHEMA = [
|
|
108
|
+
{
|
|
109
|
+
type: 'array_fields',
|
|
110
|
+
props: {
|
|
111
|
+
name: 'test_arr',
|
|
112
|
+
children: [
|
|
113
|
+
{
|
|
114
|
+
type: 'input_field',
|
|
115
|
+
props: {
|
|
116
|
+
name: 'test',
|
|
117
|
+
labelText: 'label',
|
|
118
|
+
hintText: 'hint',
|
|
119
|
+
placeholder: 'placeholder',
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
###### В результате получим:
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
const formData = {
|
|
132
|
+
test_arr: [
|
|
133
|
+
{
|
|
134
|
+
test: "123213"
|
|
135
|
+
},
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
###### Если не указать `name` в `input_field`, то получим:
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
const formData = {
|
|
144
|
+
test_arr: [
|
|
145
|
+
"123123123123"
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
В зависимости от того, в каком порядке написаны поля ввода в массиве схемы, в том же порядке будет идти запись в форму.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### `FORM_WRAPPER_SCHEMA`
|
|
155
|
+
|
|
156
|
+
Используется для обертки формы, сбрасывает счетчик `ARRAY_FIELDS_SCHEMA` (это значит, что поля внутри `FORM_WAPPER`
|
|
157
|
+
**_не пойдут_** в массив).
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
const schemes: ARRAY_FIELDS_SCHEMA = [
|
|
161
|
+
{
|
|
162
|
+
type: 'form_wrapper',
|
|
163
|
+
props: {
|
|
164
|
+
name: 'test_arr',
|
|
165
|
+
children: [
|
|
166
|
+
{
|
|
167
|
+
type: 'input_field',
|
|
168
|
+
props: {
|
|
169
|
+
name: 'test',
|
|
170
|
+
labelText: 'label',
|
|
171
|
+
hintText: 'hint',
|
|
172
|
+
placeholder: 'placeholder',
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
]
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
###### В результате получим:
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
const formData = {
|
|
185
|
+
test_arr: {
|
|
186
|
+
test: "123123132132"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### `BLOCK_WRAPPER_SCHEMA`
|
|
194
|
+
|
|
195
|
+
Используется для обертки чего-то, не сбрасывает счетчик `ARRAY_FIELDS_SCHEMA`, но и прописать ключ значения в словаре
|
|
196
|
+
тоже нельзя (это значит, что поля внутри `FORM_WAPPER` **_пойдут_** в массив). Было сделано для того, чтобы можно было в
|
|
197
|
+
массиве (или просто в схеме) сделать обертку, а в нее передать схему поля. К примеру, у вас посреди схемы надо сделать
|
|
198
|
+
обертку для `input_field`, писать новый компонент поля не хочется, поэтому мы можем сделать компонент обертки и передать
|
|
199
|
+
его в `BLOCK_WRAPPER_SCHEMA`.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### `REACT_NODE_SCHEMA`
|
|
204
|
+
|
|
205
205
|
Схема простого `React-компонента`. Можно посреди схемы вcтавить какой-нибудь `ReactNode`.
|