r3ui-lib 1.3.12 → 1.3.14
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/CHANGELOG.md +63 -0
- package/README.md +10 -0
- package/dist/login.css +1 -1
- package/dist/login.es.js +1222 -1209
- package/dist/login.umd.js +5 -5
- package/dist/r3ui-lib.css +1 -1
- package/dist/r3ui-lib.es.js +16668 -13904
- package/dist/r3ui-lib.umd.js +35 -33
- package/dist/types/components/dropdowns/DefaultDropDown.vue.d.ts.map +1 -1
- package/dist/types/components/form/CustomInput.vue.d.ts.map +1 -1
- package/dist/types/components/form/PasswordInput.vue.d.ts +4 -0
- package/dist/types/components/form/PasswordInput.vue.d.ts.map +1 -1
- package/dist/types/components/form/VSelect.vue.d.ts +2 -2
- package/dist/types/components/form/VSelect.vue.d.ts.map +1 -1
- package/dist/types/components/forms/AddressForm.vue.d.ts +16 -5
- package/dist/types/components/forms/AddressForm.vue.d.ts.map +1 -1
- package/dist/types/components/forms/BooleanCheckbox.vue.d.ts +4 -4
- package/dist/types/components/forms/BooleanCheckbox.vue.d.ts.map +1 -1
- package/dist/types/components/forms/Flatpickr.vue.d.ts.map +1 -1
- package/dist/types/components/modals/ConfirmationModal.vue.d.ts +1 -1
- package/dist/types/components/modals/ConfirmationModal.vue.d.ts.map +1 -1
- package/dist/types/components/modals/DefaultModal.vue.d.ts.map +1 -1
- package/dist/types/components/modals/TableFilterModalComponent.vue.d.ts.map +1 -1
- package/dist/types/components/notifications/ErrorMessageComponent.vue.d.ts.map +1 -1
- package/dist/types/components/notifications/NotificationMessage.vue.d.ts +6 -0
- package/dist/types/components/notifications/NotificationMessage.vue.d.ts.map +1 -0
- package/dist/types/components/notifications/Toast.vue.d.ts +6 -0
- package/dist/types/components/notifications/Toast.vue.d.ts.map +1 -1
- package/dist/types/components/tables/EditTableColumns.vue.d.ts +2 -2
- package/dist/types/components/tables/ManagedRemoteTable.vue.d.ts +23 -0
- package/dist/types/components/tables/ManagedRemoteTable.vue.d.ts.map +1 -0
- package/dist/types/components/tables/Table.vue.d.ts +21 -3
- package/dist/types/components/tables/Table.vue.d.ts.map +1 -1
- package/dist/types/composables/forms/useAddressForm.d.ts +23 -17
- package/dist/types/composables/forms/useAddressForm.d.ts.map +1 -1
- package/dist/types/composables/modals/useModalLayer.d.ts +4 -0
- package/dist/types/composables/modals/useModalLayer.d.ts.map +1 -0
- package/dist/types/composables/table/createTableLifecycle.d.ts +12 -4
- package/dist/types/composables/table/createTableLifecycle.d.ts.map +1 -1
- package/dist/types/composables/table/createTableRebuildTransaction.d.ts +1 -1
- package/dist/types/composables/table/createTableSession.d.ts +2 -1
- package/dist/types/composables/table/createTableSession.d.ts.map +1 -1
- package/dist/types/composables/table/createTableState.d.ts +447 -12
- package/dist/types/composables/table/createTableState.d.ts.map +1 -1
- package/dist/types/composables/table/createTabulatorAdapter.d.ts +16 -1
- package/dist/types/composables/table/createTabulatorAdapter.d.ts.map +1 -1
- package/dist/types/composables/table/tableQueryTransitions.d.ts +59 -0
- package/dist/types/composables/table/tableQueryTransitions.d.ts.map +1 -0
- package/dist/types/composables/table/useManagedRemoteTable.d.ts +11 -5
- package/dist/types/composables/table/useManagedRemoteTable.d.ts.map +1 -1
- package/dist/types/composables/table/useRemoteTable.d.ts +4 -2
- package/dist/types/composables/table/useRemoteTable.d.ts.map +1 -1
- package/dist/types/composables/table/useTableDefault.d.ts.map +1 -1
- package/dist/types/main.d.ts +5 -1
- package/dist/types/main.d.ts.map +1 -1
- package/dist/types/types/managedRemoteTable.d.ts +29 -0
- package/dist/types/types/managedRemoteTable.d.ts.map +1 -0
- package/dist/types/types/table.d.ts +2 -1
- package/dist/types/types/table.d.ts.map +1 -1
- package/dist/types/types/tableInstance.d.ts +2 -1
- package/dist/types/types/tableInstance.d.ts.map +1 -1
- package/dist/types/utils/addressFormTranslations.d.ts +3 -0
- package/dist/types/utils/addressFormTranslations.d.ts.map +1 -1
- package/dist/types/utils/auth/sessionController.d.ts +20 -0
- package/dist/types/utils/auth/sessionController.d.ts.map +1 -0
- package/dist/types/utils/tableAdapter.d.ts +1 -0
- package/dist/types/utils/tableAdapter.d.ts.map +1 -1
- package/dist/types/utils/tableCancellation.d.ts.map +1 -1
- package/dist/types/utils/tableData.d.ts +64 -0
- package/dist/types/utils/tableData.d.ts.map +1 -0
- package/dist/types/utils/tableLoad.d.ts +1 -1
- package/dist/types/utils/tableLoad.d.ts.map +1 -1
- package/dist/types/utils/tableProjection.d.ts +35 -0
- package/dist/types/utils/tableProjection.d.ts.map +1 -0
- package/dist/types/utils/tableQueryParameters.d.ts +11 -0
- package/dist/types/utils/tableQueryParameters.d.ts.map +1 -0
- package/dist/types/utils/tableSnapshotValue.d.ts +5 -0
- package/dist/types/utils/tableSnapshotValue.d.ts.map +1 -0
- package/dist/types/utils/tabulatorQueryAdapter.d.ts +4 -0
- package/dist/types/utils/tabulatorQueryAdapter.d.ts.map +1 -0
- package/dist/types/utils/tabulatorRuntime.d.ts +143 -0
- package/dist/types/utils/tabulatorRuntime.d.ts.map +1 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## 1.3.13-session.0 (локальная проверка)
|
|
2
|
+
|
|
3
|
+
- Общий контроллер сессии управляет актуальностью загрузки пользователя, сбросом и единственным выполняемым выходом; транспорт и SSO задаются приложением.
|
|
4
|
+
- Во время выхода новые загрузки пользователя блокируются; поздние ответы и ошибки не изменяют сессию.
|
|
5
|
+
- Ошибка обработчика dataLoaded завершается внутри управляемой загрузки; её таймер освобождается вместе с runtime и не снимает индикатор следующего запроса.
|
|
6
|
+
|
|
1
7
|
# Changelog
|
|
2
8
|
|
|
3
9
|
Все значимые изменения в этом проекте будут документированы в этом файле.
|
|
@@ -5,6 +11,63 @@
|
|
|
5
11
|
Формат основан на [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
12
|
и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
13
|
|
|
14
|
+
## [1.3.13-runtime.0] - 2026-10-22
|
|
15
|
+
|
|
16
|
+
- Общая граница совместимости проверяет DataLoader, RowManager и модули запроса до установки перехватов; повторная установка не дублирует владельца.
|
|
17
|
+
- Подписки, регистрации, таймеры и перехваты принадлежат экземпляру. Освобождение после штатного destroy не прерывает очистку Tabulator; поздние ответы завершаются под защитой до восстановления методов.
|
|
18
|
+
- Очистка локального фильтра через setFilter([]) и props.filters учитывается при повторе и откате; одинаковые события не увеличивают ревизию представления.
|
|
19
|
+
|
|
20
|
+
## [1.3.13-view-events.1] - 2026-10-22
|
|
21
|
+
|
|
22
|
+
- Типизированные события конфигурации и локального представления учитывают владельца экземпляра и ревизию; служебные записи не становятся пользовательскими изменениями.
|
|
23
|
+
- Прямая смена контекста использует актуальные вложенные ajaxParams и удаление ключей; ошибка и отмена сохраняют желаемую конфигурацию.
|
|
24
|
+
- Локальные сортировка и фильтры сохраняются при отмене обычной загрузки и после действий пользователя во время повторного запроса. Подписки снимаются при уничтожении таблицы.
|
|
25
|
+
|
|
26
|
+
## [1.3.13-projection.0] - 2026-10-22
|
|
27
|
+
|
|
28
|
+
- Общая модель конфигурации хранит желаемые параметры отдельно от принятой серверной выборки; отмена, ошибка и пересоздание экземпляра не теряют изменения.
|
|
29
|
+
- Единый план проекции восстанавливает параметры и локальные сортировку/фильтры до пересчёта строк, затем обновляет пагинацию. Локальное представление сохраняется между экземплярами без HTTP-запроса при откате.
|
|
30
|
+
- Независимые снимки снимают вложенные Vue Proxy, сохраняя массивы, циклические ссылки и клонируемые типы; вложенные изменения параметров сравниваются по значению.
|
|
31
|
+
- Управляемая оболочка сообщает об обработанной ошибке готовности событием readyError; ошибка остаётся доступна в модели для повтора.
|
|
32
|
+
|
|
33
|
+
## [1.3.13-atomic.1] - 2026-10-22
|
|
34
|
+
|
|
35
|
+
- При пересборке новый экземпляр получает принятую выборку; отмена и ошибка восстанавливают строки, параметры, контекст и счётчики без HTTP-запроса.
|
|
36
|
+
- Восстановление и повтор сразу запрашивают целевую страницу, не применяя промежуточную первую страницу; локальный откат обновляет видимость пагинации.
|
|
37
|
+
- Повторная подготовка сохраняет изменения и удаления полей объектного ajaxParams; изменённая конфигурация передаётся живому экземпляру без потери явных параметров.
|
|
38
|
+
|
|
39
|
+
## [1.3.13-transitions.0] - 2026-10-22
|
|
40
|
+
|
|
41
|
+
- Чистые типизированные переходы сохраняют согласованную рабочую пару запроса и контекста; отмена и ошибка возвращают принятую пару, снимок попытки остаётся для повтора.
|
|
42
|
+
- Параметры снимка разделены на настроенные, динамические и явные. Удалённые динамические ключи не возвращаются из истории, callback вычисляется один раз на каждый запрос.
|
|
43
|
+
- Повтор воспроизводит параметры неудавшегося запроса, не превращая динамические значения в постоянные; происхождение параметров сохраняется при пересборке и применении колонок.
|
|
44
|
+
- Смена контекста возвращает исходные программные фильтры и параметры конфигурации; смена локали сохраняет текущие фильтры и функцию ajaxParams.
|
|
45
|
+
|
|
46
|
+
## [1.3.13-query.1] - 2026-10-22
|
|
47
|
+
|
|
48
|
+
- Адаптер полного запроса Tabulator восстанавливает URL Ajax-модуля и options, дополнительные параметры, программные и заголовочные фильтры, сортировку и пагинацию без повторной загрузки.
|
|
49
|
+
- Отмена и ошибка возвращают принятый запрос; повтор восстанавливает отклонённый запрос, изменение колонок и пересборка сохраняют полный снимок.
|
|
50
|
+
- Снимок учитывает dataSendParams, динамический ajaxParams продолжает вычисляться на каждый запрос.
|
|
51
|
+
|
|
52
|
+
## [1.3.13-data.2] - 2026-10-22
|
|
53
|
+
|
|
54
|
+
- requestedData и appliedData разделяют параметры ожидаемого запроса и фактически применённые строки, счётчики и контекст. Управляемый total вычисляется из appliedData.
|
|
55
|
+
- Прежние ajaxResponse работают с черновиком счётчика; публикация происходит после завершения применения строк, отмена и ошибка не публикуют подготовленный ответ.
|
|
56
|
+
- Отмена восстанавливает принятые страницу, размер, сортировку и фильтр локально; повтор после ошибки использует снимок неудавшегося запроса.
|
|
57
|
+
- Исключения onContextApplied и onDataApplied завершают операцию через failed и разрешают повтор. Если строки уже применены, принятый снимок сохраняет этот факт.
|
|
58
|
+
|
|
59
|
+
## [1.3.13-native.0] - 2026-10-22
|
|
60
|
+
|
|
61
|
+
- Нативные запросы пагинации, размера страницы, сортировки и фильтров используют общий планировщик команд; загрузки внутри фильтров, колонок и восстановления остаются дочерними.
|
|
62
|
+
- Новый самостоятельный запрос получает владение состоянием во всех стадиях: завершение вытесненных колонок не скрывает загрузку, ошибку и повтор.
|
|
63
|
+
- Пересечения нативных действий с колонками и фильтрами проверяются на настоящем Tabulator и собранном пакете, включая отмену ответа и поздний отказ старого запроса.
|
|
64
|
+
|
|
65
|
+
## [1.3.13-ui.2] - 2026-10-22
|
|
66
|
+
|
|
67
|
+
- ManagedRemoteTable подключает экземпляр и общие события через типизированный tableView; состояние загрузки, ошибки и повтора принадлежит контроллеру.
|
|
68
|
+
- Обычный Table сохраняет самостоятельный режим, управляемый режим использует внешний индикатор и не дублирует сообщение ошибки.
|
|
69
|
+
- Исключения dataLoaded не подтверждают применение строк; исключения dataLoadError не обходят завершение границы и доступность повтора.
|
|
70
|
+
|
|
8
71
|
## [1.3.12-completion.1] - 2026-10-21
|
|
9
72
|
|
|
10
73
|
- Единая граница завершения связывает HTTP-запрос, результат DataLoader и Promise применения строк RowManager; ready и применённый контекст подтверждаются после движка.
|
package/README.md
CHANGED
|
@@ -72,6 +72,16 @@ import { DefaultButton, Table, useTableDefault } from 'r3ui-lib'
|
|
|
72
72
|
- `Toast` - Всплывающие уведомления
|
|
73
73
|
- `ErrorMessageComponent` - Компонент ошибок
|
|
74
74
|
|
|
75
|
+
`Toast` сохраняет ссылки и простое HTML-форматирование сообщения после очистки
|
|
76
|
+
DOMPurify. Разрешены относительные адреса, `http`, `https`, `mailto` и `tel`;
|
|
77
|
+
`target="_blank"` получает `rel="noopener noreferrer"`. Скрипты, обработчики
|
|
78
|
+
событий, изображения, iframe и встроенные стили удаляются. Для буквального вывода
|
|
79
|
+
HTML передайте `:as-html="false"`. `closeLabel` задаёт локализованную подпись кнопки
|
|
80
|
+
закрытия, событие `clear-message` позволяет очистить сообщение у владельца.
|
|
81
|
+
|
|
82
|
+
`ErrorMessageComponent` по умолчанию выводит текст. При `:as-html="true"` действует
|
|
83
|
+
та же очистка HTML, что и в `Toast`.
|
|
84
|
+
|
|
75
85
|
### 🎨 Макет
|
|
76
86
|
- `PageTitle` - Заголовок страницы
|
|
77
87
|
- `Card` - Карточка
|
package/dist/login.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.sidebar .accordion-body[data-v-
|
|
1
|
+
.sidebar .accordion-body[data-v-ffaf1261]{padding:10px 0}.modal-body[data-v-ffaf1261]{font-size:1rem}.btn-close[data-v-ffaf1261]{font-size:20px}h1[data-v-ffaf1261],h2[data-v-ffaf1261],h3[data-v-ffaf1261],h4[data-v-ffaf1261],h5[data-v-ffaf1261],h6[data-v-ffaf1261],table[data-v-ffaf1261]{line-height:1.25}p[data-v-ffaf1261],span[data-v-ffaf1261],div[data-v-ffaf1261]{line-height:1.6}small[data-v-ffaf1261]{display:inline-block;line-height:1.25}.tab-content[data-v-ffaf1261]{width:100%!important}:root .ml-1[data-v-ffaf1261]{margin-left:.25rem!important}:root .mr-1[data-v-ffaf1261]{margin-right:.25rem!important}:root .ml-2[data-v-ffaf1261]{margin-left:.5rem!important}:root .mr-2[data-v-ffaf1261]{margin-right:.5rem!important}:root .ml-3[data-v-ffaf1261]{margin-left:.75rem!important}:root .mr-3[data-v-ffaf1261]{margin-right:.75rem!important}:root .pl-3[data-v-ffaf1261]{padding-left:.75rem!important}:root .pr-3[data-v-ffaf1261]{padding-right:.75rem!important}:root .text-right[data-v-ffaf1261]{text-align:right}:root .text-left[data-v-ffaf1261]{text-align:left}:root .text-start[data-v-ffaf1261]{text-align:start}:root .text-end[data-v-ffaf1261]{text-align:end}:root .text-justify[data-v-ffaf1261]{text-align:justify}:root .lh-n[data-v-ffaf1261]{line-height:normal}:root .cursor-pointer[data-v-ffaf1261]{cursor:pointer}:root .indeterminate[data-v-ffaf1261]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")!important}:root .flex-1[data-v-ffaf1261]{flex:1}:root .bg-btn-secondary[data-v-ffaf1261]{background-color:#e1e1e1}:root .bg-gray-light[data-v-ffaf1261]{background-color:#efefef}:root .bg-gray-light-2[data-v-ffaf1261]{background-color:#f6f6f6}:root .bg-gray-9[data-v-ffaf1261]{background-color:#999}:root .bg-gray-9-hover[data-v-ffaf1261]:hover{background-color:#999;color:#fff!important}:root .lh-normal[data-v-ffaf1261]{line-height:normal!important}:root .text-black-40[data-v-ffaf1261]{color:#0006!important}:root .padding-y-15[data-v-ffaf1261]{padding-top:15px;padding-bottom:15px}:root .border-left-1[data-v-ffaf1261]{border-left:1px solid #dee2e6}:root .border-right-1[data-v-ffaf1261]{border-right:1px solid #dee2e6}:root .badge-primary[data-v-ffaf1261]{background-color:#ffd80e;color:#000;border-radius:10rem;line-height:normal;font-weight:400;padding-left:.7rem;padding-right:.7rem}:root .border-dashed-2[data-v-ffaf1261]{border:2px dashed #e1e1e1}:root .font-weight-bold[data-v-ffaf1261]{font-weight:700}.dropdown-trigger[data-v-ffaf1261]{border:0;padding:0;background:transparent;font:inherit;cursor:pointer}.dropdown-trigger[data-v-ffaf1261]:focus-visible{outline:2px solid currentColor;outline-offset:3px}.circl[data-v-ffaf1261]{width:25px;min-width:25px;height:25px;min-height:25px;background:#bebebe;border-radius:100%;margin-inline-end:10px}.dropdown-list-wrapper[data-v-ffaf1261]{position:relative;width:100%}.custom-dropdown[data-v-ffaf1261]{display:inline-block}.custom-dropdown .link-dark[data-v-ffaf1261]{text-decoration:none}.custom-dropdown-menu[data-v-ffaf1261]{position:absolute;top:0;inset-inline-end:0;background:#fff;border:1px solid #e1e1e1;list-style:none;margin:0;padding:5px 0;padding-inline-start:0;border-radius:5px;z-index:10}.custom-dropdown-menu li[data-v-ffaf1261]{list-style:none;margin:0;padding:0}.custom-dropdown-menu .dropdown-item[data-v-ffaf1261]{display:block;width:100%;background:#fff;padding:5px 20px;border:none;text-align:start;cursor:pointer}.custom-dropdown-menu .dropdown-item[data-v-ffaf1261]:hover:not(:disabled){background:#e1e1e1}.custom-dropdown-menu .dropdown-item[data-v-ffaf1261]:disabled{cursor:not-allowed}.sidebar .accordion-body[data-v-57bc5457]{padding:10px 0}.modal-body[data-v-57bc5457]{font-size:1rem}.btn-close[data-v-57bc5457]{font-size:20px}h1[data-v-57bc5457],h2[data-v-57bc5457],h3[data-v-57bc5457],h4[data-v-57bc5457],h5[data-v-57bc5457],h6[data-v-57bc5457],table[data-v-57bc5457]{line-height:1.25}p[data-v-57bc5457],span[data-v-57bc5457],div[data-v-57bc5457]{line-height:1.6}small[data-v-57bc5457]{display:inline-block;line-height:1.25}.tab-content[data-v-57bc5457]{width:100%!important}:root .ml-1[data-v-57bc5457]{margin-left:.25rem!important}:root .mr-1[data-v-57bc5457]{margin-right:.25rem!important}:root .ml-2[data-v-57bc5457]{margin-left:.5rem!important}:root .mr-2[data-v-57bc5457]{margin-right:.5rem!important}:root .ml-3[data-v-57bc5457]{margin-left:.75rem!important}:root .mr-3[data-v-57bc5457]{margin-right:.75rem!important}:root .pl-3[data-v-57bc5457]{padding-left:.75rem!important}:root .pr-3[data-v-57bc5457]{padding-right:.75rem!important}:root .text-right[data-v-57bc5457]{text-align:right}:root .text-left[data-v-57bc5457]{text-align:left}:root .text-start[data-v-57bc5457]{text-align:start}:root .text-end[data-v-57bc5457]{text-align:end}:root .text-justify[data-v-57bc5457]{text-align:justify}:root .lh-n[data-v-57bc5457]{line-height:normal}:root .cursor-pointer[data-v-57bc5457]{cursor:pointer}:root .indeterminate[data-v-57bc5457]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")!important}:root .flex-1[data-v-57bc5457]{flex:1}:root .bg-btn-secondary[data-v-57bc5457]{background-color:#e1e1e1}:root .bg-gray-light[data-v-57bc5457]{background-color:#efefef}:root .bg-gray-light-2[data-v-57bc5457]{background-color:#f6f6f6}:root .bg-gray-9[data-v-57bc5457]{background-color:#999}:root .bg-gray-9-hover[data-v-57bc5457]:hover{background-color:#999;color:#fff!important}:root .lh-normal[data-v-57bc5457]{line-height:normal!important}:root .text-black-40[data-v-57bc5457]{color:#0006!important}:root .padding-y-15[data-v-57bc5457]{padding-top:15px;padding-bottom:15px}:root .border-left-1[data-v-57bc5457]{border-left:1px solid #dee2e6}:root .border-right-1[data-v-57bc5457]{border-right:1px solid #dee2e6}:root .badge-primary[data-v-57bc5457]{background-color:#ffd80e;color:#000;border-radius:10rem;line-height:normal;font-weight:400;padding-left:.7rem;padding-right:.7rem}:root .border-dashed-2[data-v-57bc5457]{border:2px dashed #e1e1e1}:root .font-weight-bold[data-v-57bc5457]{font-weight:700}.r3ui-logo-container[data-v-57bc5457]{display:flex;align-items:center;gap:.75rem}.r3ui-logo[data-v-57bc5457]{display:block;max-width:100%;height:auto}.r3ui-logo-text[data-v-57bc5457]{display:block;line-height:120%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.sidebar .accordion-body[data-v-a63a7e7f]{padding:10px 0}.modal-body[data-v-a63a7e7f]{font-size:1rem}.btn-close[data-v-a63a7e7f]{font-size:20px}h1[data-v-a63a7e7f],h2[data-v-a63a7e7f],h3[data-v-a63a7e7f],h4[data-v-a63a7e7f],h5[data-v-a63a7e7f],h6[data-v-a63a7e7f],table[data-v-a63a7e7f]{line-height:1.25}p[data-v-a63a7e7f],span[data-v-a63a7e7f],div[data-v-a63a7e7f]{line-height:1.6}small[data-v-a63a7e7f]{display:inline-block;line-height:1.25}.tab-content[data-v-a63a7e7f]{width:100%!important}:root .ml-1[data-v-a63a7e7f]{margin-left:.25rem!important}:root .mr-1[data-v-a63a7e7f]{margin-right:.25rem!important}:root .ml-2[data-v-a63a7e7f]{margin-left:.5rem!important}:root .mr-2[data-v-a63a7e7f]{margin-right:.5rem!important}:root .ml-3[data-v-a63a7e7f]{margin-left:.75rem!important}:root .mr-3[data-v-a63a7e7f]{margin-right:.75rem!important}:root .pl-3[data-v-a63a7e7f]{padding-left:.75rem!important}:root .pr-3[data-v-a63a7e7f]{padding-right:.75rem!important}:root .text-right[data-v-a63a7e7f]{text-align:right}:root .text-left[data-v-a63a7e7f]{text-align:left}:root .text-start[data-v-a63a7e7f]{text-align:start}:root .text-end[data-v-a63a7e7f]{text-align:end}:root .text-justify[data-v-a63a7e7f]{text-align:justify}:root .lh-n[data-v-a63a7e7f]{line-height:normal}:root .cursor-pointer[data-v-a63a7e7f]{cursor:pointer}:root .indeterminate[data-v-a63a7e7f]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")!important}:root .flex-1[data-v-a63a7e7f]{flex:1}:root .bg-btn-secondary[data-v-a63a7e7f]{background-color:#e1e1e1}:root .bg-gray-light[data-v-a63a7e7f]{background-color:#efefef}:root .bg-gray-light-2[data-v-a63a7e7f]{background-color:#f6f6f6}:root .bg-gray-9[data-v-a63a7e7f]{background-color:#999}:root .bg-gray-9-hover[data-v-a63a7e7f]:hover{background-color:#999;color:#fff!important}:root .lh-normal[data-v-a63a7e7f]{line-height:normal!important}:root .text-black-40[data-v-a63a7e7f]{color:#0006!important}:root .padding-y-15[data-v-a63a7e7f]{padding-top:15px;padding-bottom:15px}:root .border-left-1[data-v-a63a7e7f]{border-left:1px solid #dee2e6}:root .border-right-1[data-v-a63a7e7f]{border-right:1px solid #dee2e6}:root .badge-primary[data-v-a63a7e7f]{background-color:#ffd80e;color:#000;border-radius:10rem;line-height:normal;font-weight:400;padding-left:.7rem;padding-right:.7rem}:root .border-dashed-2[data-v-a63a7e7f]{border:2px dashed #e1e1e1}:root .font-weight-bold[data-v-a63a7e7f]{font-weight:700}.r3ui-header .r3ui-header-logo[data-v-a63a7e7f]{height:50px;margin-top:-8px;margin-bottom:-8px;width:auto}.r3ui-header .r3ui-header-link[data-v-a63a7e7f]{cursor:pointer}.r3ui-header .r3ui-header-link .r3ui-header-label[data-v-a63a7e7f]{font-size:12px;line-height:120%;color:#000;max-width:170px}.card-body[data-v-6eb41b83]{padding:20px 140px}.login-spinner[data-v-6eb41b83] .spinner-border{width:4rem;height:4rem}
|