From d3047eb80df4b8c10de7a95fcf7f2b481662caeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=83=D0=BB=D0=B0=D1=82=20=D0=A5=D0=B0=D0=B9=D1=80?= =?UTF-8?q?=D1=83=D0=BB=D0=BB=D0=B8=D0=BD?= Date: Wed, 25 Sep 2024 16:43:51 +0300 Subject: [PATCH] version>1.5.0-SNAPSHOT --- backend/pom.xml | 41 +- backend/src/main/java/AppConfig.java | 6 +- .../SecurityWebAppInitializer.java | 6 + .../db_beans/DefaultCatalog.java | 7 + .../ervu_dashboard/db_beans/appeals/Keys.java | 12 +- .../db_beans/appeals/tables/MainProfile.java | 9 +- .../appeals/tables/ReasonsAppeal.java | 9 +- .../db_beans/appeals/tables/ReviewRating.java | 9 +- .../db_beans/appeals/tables/TopicAppeal.java | 9 +- .../tables/records/MainProfileRecord.java | 9 +- .../tables/records/ReasonsAppealRecord.java | 9 +- .../tables/records/ReviewRatingRecord.java | 9 +- .../tables/records/TopicAppealRecord.java | 9 +- .../ervu_dashboard/ErvuDashboard.java | 153 + .../db_beans/ervu_dashboard/Keys.java | 68 + .../db_beans/ervu_dashboard/Routines.java | 285 + .../db_beans/ervu_dashboard/Tables.java | 104 + .../routines/UuidGenerateV1.java | 38 + .../routines/UuidGenerateV1mc.java | 39 + .../routines/UuidGenerateV3.java | 81 + .../routines/UuidGenerateV4.java | 38 + .../routines/UuidGenerateV5.java | 81 + .../ervu_dashboard/routines/UuidNil.java | 38 + .../ervu_dashboard/routines/UuidNsDns.java | 38 + .../ervu_dashboard/routines/UuidNsOid.java | 38 + .../ervu_dashboard/routines/UuidNsUrl.java | 38 + .../ervu_dashboard/routines/UuidNsX500.java | 38 + .../ervu_dashboard/tables/Citizen.java | 441 + .../ervu_dashboard/tables/CitizenChild.java | 267 + .../tables/CitizenGuardianship.java | 252 + .../ervu_dashboard/tables/CitizenSpouse.java | 290 + .../tables/Databasechangelog.java | 279 + .../tables/Databasechangeloglock.java | 238 + .../ervu_dashboard/tables/Disability.java | 274 + .../ervu_dashboard/tables/Disease.java | 255 + .../ervu_dashboard/tables/DriversLicence.java | 295 + .../tables/MedicalAuthorities.java | 259 + .../ervu_dashboard/tables/Property.java | 297 + .../ervu_dashboard/tables/PubRecruitment.java | 367 + .../tables/Recruitment.java | 141 +- .../tables/Subpoena.java | 45 +- .../tables/TemporaryMeasures.java | 261 + .../tables/records/CitizenChildRecord.java | 180 + .../records/CitizenGuardianshipRecord.java | 133 + .../tables/records/CitizenRecord.java | 703 + .../tables/records/CitizenSpouseRecord.java | 246 + .../records/DatabasechangelogRecord.java | 251 + .../records/DatabasechangeloglockRecord.java | 111 + .../tables/records/DisabilityRecord.java | 203 + .../tables/records/DiseaseRecord.java | 150 + .../tables/records/DriversLicenceRecord.java | 256 + .../records/MedicalAuthoritiesRecord.java | 154 + .../tables/records/PropertyRecord.java | 268 + .../tables/records/PubRecruitmentRecord.java | 169 + .../tables/records/RecruitmentRecord.java | 139 + .../tables/records/SubpoenaRecord.java | 105 +- .../records/TemporaryMeasuresRecord.java | 163 + .../db_beans/main_dashboard/Keys.java | 20 +- .../main_dashboard/tables/Appeals.java | 72 +- .../tables/RecruitmentCampaign.java | 84 +- .../tables/TotalRegistered.java | 73 +- .../tables/WaitingRegistration.java | 73 +- .../tables/records/AppealsRecord.java | 82 +- .../records/RecruitmentCampaignRecord.java | 165 +- .../tables/records/TotalRegisteredRecord.java | 88 +- .../records/WaitingRegistrationRecord.java | 112 +- .../ervu_dashboard/db_beans/public_/Keys.java | 44 +- .../db_beans/public_/Public.java | 61 +- .../db_beans/public_/Tables.java | 48 +- .../public_/enums/TypePropertyType.java | 62 + .../db_beans/public_/tables/ChannelLog.java | 272 + .../db_beans/public_/tables/Citizen.java | 438 - .../public_/tables/Databasechangelog.java | 277 + .../public_/tables/Databasechangeloglock.java | 236 + .../db_beans/public_/tables/Education.java | 283 - .../db_beans/public_/tables/Employment.java | 283 - .../db_beans/public_/tables/Gender.java | 297 - .../db_beans/public_/tables/JobEntryLog.java | 282 + .../db_beans/public_/tables/JobLog.java | 305 + .../public_/tables/MaritalStatus.java | 308 - .../public_/tables/PubRecruitment.java | 726 - .../public_/tables/ReasonRegistration.java | 284 - .../tables/records/ChannelLogRecord.java | 236 + .../public_/tables/records/CitizenRecord.java | 352 - .../records/DatabasechangelogRecord.java | 251 + .../records/DatabasechangeloglockRecord.java | 111 + .../tables/records/EducationRecord.java | 94 - .../tables/records/EmploymentRecord.java | 94 - .../public_/tables/records/GenderRecord.java | 94 - .../tables/records/JobEntryLogRecord.java | 266 + .../public_/tables/records/JobLogRecord.java | 306 + .../tables/records/MaritalStatusRecord.java | 109 - .../tables/records/PubRecruitmentRecord.java | 577 - .../records/ReasonRegistrationRecord.java | 96 - .../ervu_dashboard/db_beans/ratings/Keys.java | 20 +- .../db_beans/ratings/Ratings.java | 24 +- .../db_beans/ratings/Sequences.java | 23 + .../db_beans/ratings/Tables.java | 12 +- .../ratings/tables/AppearSubppoena.java | 17 +- .../ratings/tables/ConscriptionInfo.java | 323 + .../tables/ConsiderationComplaint.java | 9 +- .../db_beans/ratings/tables/Recruitment.java | 328 - .../tables/records/AppearSubppoenaRecord.java | 9 +- ...ecord.java => ConscriptionInfoRecord.java} | 69 +- .../records/ConsiderationComplaintRecord.java | 9 +- .../db_beans/recruitment_campaign/Keys.java | 17 +- .../RecruitmentCampaign.java | 16 +- .../recruitment_campaign/Sequences.java | 23 + .../db_beans/recruitment_campaign/Tables.java | 6 +- .../recruitment_campaign/tables/Appeals.java | 28 +- .../tables/PostponementInfo.java | 341 + .../tables/Subpoenas.java | 83 +- .../tables/records/AppealsRecord.java | 55 +- ...ecord.java => PostponementInfoRecord.java} | 129 +- .../tables/records/SubpoenasRecord.java | 139 +- .../ervu_dashboard/db_beans/space/Space.java | 9 +- .../ervu_dashboard/db_beans/space/Tables.java | 6 + .../db_beans/space/tables/Region.java | 28 +- .../space/tables/Testrecruitment.java | 19 +- .../space/tables/Ztestrecruitment.java | 217 + .../tables/records/TestrecruitmentRecord.java | 57 +- .../records/ZtestrecruitmentRecord.java | 71 + .../db_beans/total_registered/Keys.java | 35 +- .../db_beans/total_registered/tables/Age.java | 86 +- .../total_registered/tables/Busyness.java | 101 +- .../total_registered/tables/ChildMinor.java | 75 +- .../tables/DriverLicense.java | 77 +- .../tables/EducationLevel.java | 82 +- .../tables/MaritalStatus.java | 82 +- .../total_registered/tables/RegMilCat.java | 82 +- .../tables/RemovedRegistry.java | 67 +- .../total_registered/tables/Subpoenas.java | 82 +- .../tables/records/AgeRecord.java | 151 +- .../tables/records/BusynessRecord.java | 139 +- .../tables/records/ChildMinorRecord.java | 95 +- .../tables/records/DriverLicenseRecord.java | 107 +- .../tables/records/EducationLevelRecord.java | 89 +- .../tables/records/MaritalStatusRecord.java | 73 +- .../tables/records/RegMilCatRecord.java | 129 +- .../tables/records/RemovedRegistryRecord.java | 32 +- .../tables/records/SubpoenasRecord.java | 153 +- .../security/config/SecurityConfig.java | 60 + .../security/context/SecurityContext.java | 8 + .../security/context/SecurityContextImpl.java | 34 + .../controller/AuthorizationController.java | 34 + .../security/dto/SessionDto.java | 10 + .../filter/JwtAuthenticationFilter.java | 66 + .../security/model/jwt/UserSession.java | 55 + .../JwtTokenAuthentication.java | 55 + .../jwt/authentication/JwtTokenDummy.java | 56 + .../model/role/ErvuRoleAuthority.java | 17 + .../ErvuJwtAuthenticationProvider.java | 33 + .../security/service/ErvuJwtTokenService.java | 94 + .../security/service/JwtTokenService.java | 7 + .../java/ru/micord/db/DbConfiguration.java | 156 + .../ru/micord/security/SecurityConfig.java | 25 - ...ProjectRuntimeVariableAdapterProvider.java | 32 + ...rojectRuntimeVariableConditionAdapter.java | 23 + backend/src/main/webapp/WEB-INF/log4j2.xml | 30 + config.md | 561 +- config/.gitignore | 1 + config/Dockerfile | 49 + config/Dockerfile.TC | 22 + config/Dockerfile.alt | 49 + config/Dockerfile.backend | 40 + config/Dockerfile.frontend | 29 + config/docker-compose.yaml | 10 + config/entrypoint.sh | 6 + config/micord.env | 7 + config/pgs-npmrc | 1 - config/pgs-settings.xml | 20 - config/tomcat/etc/tomcat/conf.d/db.conf | 8 + .../{tomee/conf => etc/tomcat}/context.xml | 2 +- .../conf => etc/tomcat}/tomcat-users.xml | 0 config/tomcat/etc/tomcat/tomcat.conf | 52 + .../conf => etc/tomcat}/webbpm.properties | 5 + config/tomcat/tomee/bin/setenv.sh | 17 - .../webapps/manager/META-INF/context.xml | 0 distribution/pom.xml | 2 +- frontend/.env | 1 + frontend/angular.json | 2 +- frontend/normalize-css-path.js | 32 + frontend/normalize-css-path.ts | 33 + frontend/package-lock.json | 4863 +-- frontend/package.json | 39 +- frontend/pom.xml | 2 +- .../resources/css/components-dashboard.css | 2058 +- frontend/src/resources/css/font-faces.css | 45 + .../css/font-faces.css.shim.ngstyle.js | 10 + .../src/resources/css/inbox-dashboard.css | 281 +- frontend/src/resources/css/structure.css | 6 +- frontend/src/resources/css/style.css | 1 + .../src/resources/css/style.css.ngstyle.js | 10 + frontend/src/resources/img/svg/bg-people.svg | 11 + .../template/app/component/app_header.html | 9 +- .../resources/template/webbpm/jwt-form.html | 39 + .../resources/template/webbpm/mfe-webbpm.html | 14 + .../template/webbpm/mfe-wrapper.html | 1 + .../filter/ComboboxFilterComponent.ts | 20 + frontend/src/ts/mfe-app-tools.ts | 74 + frontend/src/ts/mfe-main.aot.ts | 18 + .../src/ts/modules/app/app-routing.module.ts | 23 +- frontend/src/ts/modules/app/app.module.ts | 6 +- .../app/component/app-header.component.ts | 15 +- .../src/ts/modules/app/guard/RolesGuard.ts | 48 + .../interceptor/token-interceptor.service.ts | 21 + .../ts/modules/app/provider/token.provider.ts | 3 + .../app-progress-indication.service.ts | 14 +- .../app/service/authorization.service.ts | 55 + .../mfe/component/mfe-webbpm.component.ts | 36 + .../mfe/component/mfe-wrapper.component.ts | 12 + .../src/ts/modules/mfe/guard/MfeRolesGuard.ts | 10 + .../mfe-default-interceptors.prod.ts | 14 + .../mfe-http-backend-interceptor.ts | 66 + .../modules/mfe/mfe-webbpm-routing.module.ts | 41 + .../src/ts/modules/mfe/mfe-webbpm.module.ts | 68 + .../provider/mfe-configuration.provider.ts | 14 + .../mfe/provider/mfe-token.provider.ts | 8 + .../mfe/service/mfe-app-config.service.ts | 28 + .../mfe/service/mfe-app-version.service.ts | 29 + .../mfe-progress-indication.service.ts | 20 + .../webbpm/component/token-form.component.ts | 49 + .../webbpm/component/webbpm.component.ts | 15 +- .../modules/webbpm/guard/WebbpmRolesGuard.ts | 10 + .../interceptor/default-interceptors.prod.ts | 4 +- .../interceptor/default-interceptors.ts | 4 +- .../webbpm/provider/webbpm-token-provider.ts | 12 + .../modules/webbpm/webbpm-routing.module.ts | 8 +- .../src/ts/modules/webbpm/webbpm.module.ts | 12 +- frontend/webpack.aot.config.js | 63 +- .../.flattened-pom.xml | 14 +- .../grids/NavigateOnGridCellOrRow.html | 2 +- .../META-INF/package-descriptor.xml | 8 +- .../component/buttons/Button.component | 4 +- .../component/buttons/CancelButton.component | 4 +- .../buttons/ClearFilterButton.component | 4 +- .../component/buttons/DeleteButton.component | 4 +- .../buttons/DownloadButton.component | 4 +- .../component/buttons/ErrorButton.component | 4 +- .../buttons/ExecProcessButton.component | 4 +- .../buttons/ExecuteSqlButton.component | 4 +- .../component/buttons/FilterButton.component | 4 +- .../buttons/NavigationButton.component | 4 +- .../component/buttons/SaveButton.component | 4 +- .../component/buttons/SelectButton.component | 4 +- .../component/buttons/SignButton.component | 4 +- .../buttons/StartProcessButton.component | 4 +- .../EntityGraphReportingButton.component | 4 +- .../reporting/FormReportingButton.component | 4 +- .../containers/CollapsiblePanel.component | 4 +- .../component/containers/Dialog.component | 4 +- .../component/containers/DropDown.component | 4 +- .../component/containers/FieldSet.component | 4 +- .../containers/FilterGroup.component | 4 +- .../component/containers/Form.component | 4 +- .../component/containers/HBox.component | 4 +- .../containers/TabContainer.component | 4 +- .../component/containers/TabItem.component | 4 +- .../component/containers/VBox.component | 4 +- .../component/containers/Window.component | 4 +- .../editable-grids/EditableGrid.component | 4 +- .../columns/AutocompleteGridColumn.component | 4 +- .../columns/CheckBoxGridColumn.component | 4 +- .../columns/ComboBoxGridColumn.component | 4 +- .../DateTimePickerGridColumn.component | 4 +- .../columns/MoneyFieldGridColumn.component | 4 +- .../columns/NumberFieldGridColumn.component | 4 +- .../columns/OneToManyGridColumn.component | 4 +- .../columns/OneToManyGridColumnV2.component | 4 +- .../ReadonlyClientGridColumn.component | 4 +- .../ReadonlyServerGridColumn.component | 4 +- .../StaticComboBoxGridColumn.component | 4 +- .../columns/TextAreaGridColumn.component | 4 +- .../columns/TextFieldGridColumn.component | 4 +- .../columns/TimePickerGridColumn.component | 4 +- .../component/fields/Address.component | 4 +- .../component/fields/Autocomplete.component | 4 +- .../component/fields/CheckBox.component | 4 +- .../component/fields/ComboBox.component | 4 +- .../component/fields/DateTimePicker.component | 4 +- .../fields/EditableOneToMany.component | 4 +- .../component/fields/FilePreview.component | 4 +- .../component/fields/FileUpload.component | 4 +- .../component/fields/ManyToMany.component | 4 +- .../fields/ManyToManyField.component | 4 +- .../component/fields/MoneyField.component | 4 +- .../component/fields/NumberField.component | 4 +- .../component/fields/OneToMany.component | 4 +- .../component/fields/OneToManyV2.component | 4 +- .../component/fields/RadioButton.component | 4 +- .../fields/SignVerification.component | 4 +- .../component/fields/StaticComboBox.component | 4 +- .../fields/StaticRadioButton.component | 4 +- .../component/fields/Text.component | 4 +- .../component/fields/TextArea.component | 4 +- .../component/fields/TextField.component | 4 +- .../component/fields/TimePicker.component | 4 +- .../component/fields/TreeField.component | 4 +- .../editableonetomany/EditableGrid.component | 4 +- .../fields/editableonetomany/Form.component | 4 +- .../fileupload/FileUploadField.component | 4 +- .../fields/filters/FilterAddress.component | 4 +- .../filters/FilterAutocomplete.component | 4 +- .../fields/filters/FilterBoolean.component | 4 +- .../fields/filters/FilterCheckBox.component | 4 +- .../fields/filters/FilterComboBox.component | 4 +- .../filters/FilterDateTimePicker.component | 4 +- .../filters/FilterNumberField.component | 4 +- .../filters/FilterRadioButton.component | 4 +- .../filters/FilterStaticComboBox.component | 4 +- .../fields/filters/FilterTextArea.component | 4 +- .../fields/filters/FilterTextField.component | 4 +- .../fields/treefield/LinkField.component | 4 +- .../treefield/MultiValueField.component | 4 +- .../component/grids/Grid.component | 4 +- .../component/grids/GridV2.component | 4 +- .../component/grids/GridV2Column.component | 4 +- .../component/grids/GridV2Group.component | 4 +- .../component/grids/PagingGrid.component | 4 +- .../component/grids/TreeGrid.component | 4 +- .../uncategorized/ActionController.component | 4 +- .../uncategorized/Calendar.component | 4 +- .../component/uncategorized/Chart.component | 4 +- .../component/uncategorized/ChartV2.component | 4 +- .../uncategorized/EventCalendar.component | 4 +- .../uncategorized/GanttChart.component | 4 +- .../uncategorized/HyperLink.component | 10 +- .../component/uncategorized/IFrame.component | 4 +- .../uncategorized/InnerHtml.component | 4 +- .../uncategorized/MenuGroup.component | 4 +- .../uncategorized/MenuItem.component | 4 +- .../ValidationController.component | 4 +- .../converters/converters.jar | Bin 94768 -> 97828 bytes .../metadata/java.metadata | Bin 1113132 -> 1113244 bytes .../metadata/typescript.metadata.json | 2 +- .../ProcessInstance.component | 4 +- .../ProcessInstanceDiagram.component | 4 +- .../ProcessInstanceList.component | 4 +- .../user-management/Groups.component | 4 +- .../user-management/GroupsCreate.component | 4 +- .../user-management/GroupsEdit.component | 4 +- .../OrganizationEdit.component | 4 +- .../user-management/Organizations.component | 4 +- .../user-management/Roles.component | 4 +- .../user-management/RolesEdit.component | 4 +- .../SecurityFeatures.component | 4 +- .../StaticRouteNavigationButton.component | 4 +- .../StaticRouteSelectButton.component | 4 +- .../user-management/UserForm.component | 4 +- .../user-management/Users.component | 4 +- .../user-management/UsersCreate.component | 4 +- .../user-management/UsersEdit.component | 4 +- pom.xml | 99 +- resources/pom.xml | 2 +- .../resources/business-model/appeals.page | 147 +- .../resources/business-model/citizen.page | 3469 +- .../resources/business-model/citizencard.page | 29878 +++++++++++++++- .../main/resources/business-model/main.page | 160 +- .../business-model/milregistration.page | 4681 ++- .../business-model/notregistered.page | 177 +- .../resources/business-model/ratings.page | 424 +- .../resources/business-model/recruitment.page | 278 +- .../Всего на учете (2й уровень).page | 144 +- .../main/resources/database/datasource.xml | 1 + ...-4f10-b748-c9a7f33d31d9.component.override | 4 +- ...-4367-8ff3-7f049c284978.component.override | 4 +- ...-4c33-b29b-886876016415.component.override | 4 +- ...-413e-babf-ce54cb4e5279.component.override | 4 +- ...-4b0e-b7a7-15a36bdeb682.component.override | 4 +- ...-4c2d-99df-924b5ba018d6.component.override | 4 +- ...-47a8-a9dc-3170f1a99721.component.override | 4 +- ...-4df3-b93c-e48534e798db.component.override | 4 +- ...-423b-b6b5-727ecfce2ca1.component.override | 4 +- ...-4662-96ad-84c0dae0ecff.component.override | 4 +- ...-4453-a2df-d5ffafa2c019.component.override | 4 +- ...-4960-9c59-02f4f0c2e4dd.component.override | 4 +- ...-431e-815a-490959083787.component.override | 4 +- ...-48fe-9ae0-dec9b6f4c53c.component.override | 4 +- ...-4161-b8ae-ef66de5776b7.component.override | 4 +- ...-4360-8f61-1087179ad78b.component.override | 4 +- ...-485e-a069-18b92ab4f7f7.component.override | 4 +- test/pom.xml | 2 +- 382 files changed, 54072 insertions(+), 15705 deletions(-) create mode 100644 backend/src/main/java/ervu_dashboard/SecurityWebAppInitializer.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/ErvuDashboard.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Routines.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1mc.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV3.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV4.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV5.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNil.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsDns.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsOid.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsUrl.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsX500.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Citizen.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenChild.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenGuardianship.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenSpouse.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangelog.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangeloglock.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disability.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disease.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/DriversLicence.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/MedicalAuthorities.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Property.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/PubRecruitment.java rename backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/{recruitment_campaign => ervu_dashboard}/tables/Recruitment.java (60%) rename backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/{public_ => ervu_dashboard}/tables/Subpoena.java (82%) create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/TemporaryMeasures.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenChildRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenGuardianshipRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenSpouseRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangelogRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangeloglockRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DisabilityRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DiseaseRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DriversLicenceRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/MedicalAuthoritiesRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PropertyRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PubRecruitmentRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/RecruitmentRecord.java rename backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/{public_ => ervu_dashboard}/tables/records/SubpoenaRecord.java (62%) create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/TemporaryMeasuresRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/enums/TypePropertyType.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ChannelLog.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Citizen.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangelog.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangeloglock.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Education.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Employment.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Gender.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobEntryLog.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobLog.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/MaritalStatus.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/PubRecruitment.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ReasonRegistration.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ChannelLogRecord.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/CitizenRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangelogRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangeloglockRecord.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EducationRecord.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EmploymentRecord.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/GenderRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobEntryLogRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobLogRecord.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/MaritalStatusRecord.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/PubRecruitmentRecord.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ReasonRegistrationRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Sequences.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConscriptionInfo.java delete mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/Recruitment.java rename backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/{RecruitmentRecord.java => ConscriptionInfoRecord.java} (50%) create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Sequences.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/PostponementInfo.java rename backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/{RecruitmentRecord.java => PostponementInfoRecord.java} (53%) create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Ztestrecruitment.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/ZtestrecruitmentRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/security/config/SecurityConfig.java create mode 100644 backend/src/main/java/ervu_dashboard/security/context/SecurityContext.java create mode 100644 backend/src/main/java/ervu_dashboard/security/context/SecurityContextImpl.java create mode 100644 backend/src/main/java/ervu_dashboard/security/controller/AuthorizationController.java create mode 100644 backend/src/main/java/ervu_dashboard/security/dto/SessionDto.java create mode 100644 backend/src/main/java/ervu_dashboard/security/filter/JwtAuthenticationFilter.java create mode 100644 backend/src/main/java/ervu_dashboard/security/model/jwt/UserSession.java create mode 100644 backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenAuthentication.java create mode 100644 backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenDummy.java create mode 100644 backend/src/main/java/ervu_dashboard/security/model/role/ErvuRoleAuthority.java create mode 100644 backend/src/main/java/ervu_dashboard/security/provider/ErvuJwtAuthenticationProvider.java create mode 100644 backend/src/main/java/ervu_dashboard/security/service/ErvuJwtTokenService.java create mode 100644 backend/src/main/java/ervu_dashboard/security/service/JwtTokenService.java create mode 100644 backend/src/main/java/ru/micord/db/DbConfiguration.java delete mode 100644 backend/src/main/java/ru/micord/security/SecurityConfig.java create mode 100644 backend/src/main/java/service/adapter/ProjectRuntimeVariableAdapterProvider.java create mode 100644 backend/src/main/java/service/adapter/ProjectRuntimeVariableConditionAdapter.java create mode 100644 backend/src/main/webapp/WEB-INF/log4j2.xml create mode 100644 config/Dockerfile create mode 100644 config/Dockerfile.TC create mode 100644 config/Dockerfile.alt create mode 100644 config/Dockerfile.backend create mode 100644 config/Dockerfile.frontend create mode 100644 config/docker-compose.yaml create mode 100644 config/entrypoint.sh create mode 100644 config/micord.env delete mode 100644 config/pgs-npmrc delete mode 100644 config/pgs-settings.xml create mode 100644 config/tomcat/etc/tomcat/conf.d/db.conf rename config/tomcat/{tomee/conf => etc/tomcat}/context.xml (96%) rename config/tomcat/{tomee/conf => etc/tomcat}/tomcat-users.xml (100%) create mode 100644 config/tomcat/etc/tomcat/tomcat.conf rename config/tomcat/{tomee/conf => etc/tomcat}/webbpm.properties (92%) delete mode 100644 config/tomcat/tomee/bin/setenv.sh rename config/tomcat/{tomee => var/lib/tomcat}/webapps/manager/META-INF/context.xml (100%) create mode 100644 frontend/.env create mode 100644 frontend/normalize-css-path.js create mode 100644 frontend/normalize-css-path.ts create mode 100644 frontend/src/resources/css/font-faces.css create mode 100644 frontend/src/resources/css/font-faces.css.shim.ngstyle.js create mode 100644 frontend/src/resources/css/style.css.ngstyle.js create mode 100644 frontend/src/resources/img/svg/bg-people.svg create mode 100644 frontend/src/resources/template/webbpm/jwt-form.html create mode 100644 frontend/src/resources/template/webbpm/mfe-webbpm.html create mode 100644 frontend/src/resources/template/webbpm/mfe-wrapper.html create mode 100644 frontend/src/ts/ervu-dashboard/component/filter/ComboboxFilterComponent.ts create mode 100644 frontend/src/ts/mfe-app-tools.ts create mode 100644 frontend/src/ts/mfe-main.aot.ts create mode 100644 frontend/src/ts/modules/app/guard/RolesGuard.ts create mode 100644 frontend/src/ts/modules/app/interceptor/token-interceptor.service.ts create mode 100644 frontend/src/ts/modules/app/provider/token.provider.ts create mode 100644 frontend/src/ts/modules/app/service/authorization.service.ts create mode 100644 frontend/src/ts/modules/mfe/component/mfe-webbpm.component.ts create mode 100644 frontend/src/ts/modules/mfe/component/mfe-wrapper.component.ts create mode 100644 frontend/src/ts/modules/mfe/guard/MfeRolesGuard.ts create mode 100644 frontend/src/ts/modules/mfe/interceptor/mfe-default-interceptors.prod.ts create mode 100644 frontend/src/ts/modules/mfe/interceptor/mfe-http-backend-interceptor.ts create mode 100644 frontend/src/ts/modules/mfe/mfe-webbpm-routing.module.ts create mode 100644 frontend/src/ts/modules/mfe/mfe-webbpm.module.ts create mode 100644 frontend/src/ts/modules/mfe/provider/mfe-configuration.provider.ts create mode 100644 frontend/src/ts/modules/mfe/provider/mfe-token.provider.ts create mode 100644 frontend/src/ts/modules/mfe/service/mfe-app-config.service.ts create mode 100644 frontend/src/ts/modules/mfe/service/mfe-app-version.service.ts create mode 100644 frontend/src/ts/modules/mfe/service/mfe-progress-indication.service.ts create mode 100644 frontend/src/ts/modules/webbpm/component/token-form.component.ts create mode 100644 frontend/src/ts/modules/webbpm/guard/WebbpmRolesGuard.ts create mode 100644 frontend/src/ts/modules/webbpm/provider/webbpm-token-provider.ts diff --git a/backend/pom.xml b/backend/pom.xml index 19aa758..ab32ca0 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -5,16 +5,12 @@ ru.micord.ervu dashboard - 1.0.0-SNAPSHOT + 1.5.0-SNAPSHOT ru.micord.ervu.dashboard backend war - - org.springframework.security - spring-security-jwt - io.jsonwebtoken jjwt-api @@ -24,6 +20,11 @@ jjwt-impl runtime + + io.jsonwebtoken + jjwt-jackson + runtime + ru.micord.ervu.dashboard resources @@ -53,7 +54,6 @@ org.slf4j slf4j-api - provided org.springframework @@ -130,6 +130,7 @@ ru.cg.webbpm.modules.database database-impl + compile ru.cg.webbpm.modules.jndi @@ -208,18 +209,6 @@ org.apache.tika tika-core - - org.bouncycastle - bcprov-jdk15on - - - org.bouncycastle - bcpkix-jdk15on - - - org.mnode.ical4j - ical4j - net.javacrumbs.shedlock shedlock-spring @@ -232,6 +221,22 @@ ru.cg.webbpm.packages.base backend + + org.apache.logging.log4j + log4j-slf4j2-impl + + + org.apache.logging.log4j + log4j-core + + + org.apache.logging.log4j + log4j-jul + + + org.apache.logging.log4j + log4j-web + ${parent.artifactId} diff --git a/backend/src/main/java/AppConfig.java b/backend/src/main/java/AppConfig.java index ccd3330..f88d493 100644 --- a/backend/src/main/java/AppConfig.java +++ b/backend/src/main/java/AppConfig.java @@ -34,9 +34,11 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc; "component.addresses", "gen", "ru.cg", - "ru.micord" + "ru.micord", + "ervu_dashboard" }, excludeFilters = { - @ComponentScan.Filter(type = FilterType.REGEX, pattern = "security.WebSecurityConfig") + @ComponentScan.Filter(type = FilterType.REGEX, pattern = "security.WebSecurityConfig"), + @ComponentScan.Filter(type = FilterType.REGEX, pattern = "ru.cg.webbpm.modules.database.impl.DatabaseConfiguration"), }) @EnableAspectJAutoProxy(proxyTargetClass = true) @EnableWebMvc diff --git a/backend/src/main/java/ervu_dashboard/SecurityWebAppInitializer.java b/backend/src/main/java/ervu_dashboard/SecurityWebAppInitializer.java new file mode 100644 index 0000000..ae4c0d1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/SecurityWebAppInitializer.java @@ -0,0 +1,6 @@ +package ervu_dashboard; + +import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer; + +public class SecurityWebAppInitializer extends AbstractSecurityWebApplicationInitializer { +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/DefaultCatalog.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/DefaultCatalog.java index ea9d1b7..f5b95dc 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/DefaultCatalog.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/DefaultCatalog.java @@ -5,6 +5,7 @@ package ervu_dashboard.ervu_dashboard.db_beans; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Appeals; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.MainDashboard; import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; import ervu_dashboard.ervu_dashboard.db_beans.ratings.Ratings; @@ -39,6 +40,11 @@ public class DefaultCatalog extends CatalogImpl { */ public final Appeals APPEALS = Appeals.APPEALS; + /** + * The schema ervu_dashboard. + */ + public final ErvuDashboard ERVU_DASHBOARD = ErvuDashboard.ERVU_DASHBOARD; + /** * The schema main_dashboard. */ @@ -85,6 +91,7 @@ public class DefaultCatalog extends CatalogImpl { public final List getSchemas() { return Arrays.asList( Appeals.APPEALS, + ErvuDashboard.ERVU_DASHBOARD, MainDashboard.MAIN_DASHBOARD, Public.PUBLIC, Ratings.RATINGS, diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Keys.java index e04e95a..16d90a8 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Keys.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Keys.java @@ -12,8 +12,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.MainProfile import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.ReasonsAppealRecord; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.ReviewRatingRecord; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.TopicAppealRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.PubRecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.PubRecruitmentRecord; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.RegionRecord; @@ -44,9 +44,9 @@ public class Keys { // FOREIGN KEY definitions // ------------------------------------------------------------------------- - public static final ForeignKey MAIN_PROFILE__MAIN_PROFILE_FK1 = Internal.createForeignKey(MainProfile.MAIN_PROFILE, DSL.name("main_profile_fk1"), new TableField[] { MainProfile.MAIN_PROFILE.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey REASONS_APPEAL__REASONS_APPEAL_FK1 = Internal.createForeignKey(ReasonsAppeal.REASONS_APPEAL, DSL.name("reasons_appeal_fk1"), new TableField[] { ReasonsAppeal.REASONS_APPEAL.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final ForeignKey MAIN_PROFILE__MAIN_PROFILE_FK1 = Internal.createForeignKey(MainProfile.MAIN_PROFILE, DSL.name("main_profile_fk1"), new TableField[] { MainProfile.MAIN_PROFILE.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.PUB_RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final ForeignKey REASONS_APPEAL__REASONS_APPEAL_FK1 = Internal.createForeignKey(ReasonsAppeal.REASONS_APPEAL, DSL.name("reasons_appeal_fk1"), new TableField[] { ReasonsAppeal.REASONS_APPEAL.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.PUB_RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); public static final ForeignKey REVIEW_RATING__FK_REGION = Internal.createForeignKey(ReviewRating.REVIEW_RATING, DSL.name("fk_region"), new TableField[] { ReviewRating.REVIEW_RATING.ID_REGION }, ervu_dashboard.ervu_dashboard.db_beans.space.Keys.PK_REGION, new TableField[] { Region.REGION.ID_REGION }, true); - public static final ForeignKey REVIEW_RATING__REVIEW_RATING_FK1 = Internal.createForeignKey(ReviewRating.REVIEW_RATING, DSL.name("review_rating_fk1"), new TableField[] { ReviewRating.REVIEW_RATING.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey TOPIC_APPEAL__TOPIC_APPEAL_FK1 = Internal.createForeignKey(TopicAppeal.TOPIC_APPEAL, DSL.name("topic_appeal_fk1"), new TableField[] { TopicAppeal.TOPIC_APPEAL.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final ForeignKey REVIEW_RATING__REVIEW_RATING_FK1 = Internal.createForeignKey(ReviewRating.REVIEW_RATING, DSL.name("review_rating_fk1"), new TableField[] { ReviewRating.REVIEW_RATING.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.PUB_RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final ForeignKey TOPIC_APPEAL__TOPIC_APPEAL_FK1 = Internal.createForeignKey(TopicAppeal.TOPIC_APPEAL, DSL.name("topic_appeal_fk1"), new TableField[] { TopicAppeal.TOPIC_APPEAL.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.PUB_RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/MainProfile.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/MainProfile.java index 6345042..21b3af9 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/MainProfile.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/MainProfile.java @@ -7,13 +7,12 @@ package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Appeals; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.MainProfileRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment.PubRecruitmentPath; import java.sql.Date; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -97,7 +96,7 @@ public class MainProfile extends TableImpl { /** * The column appeals.main_profile.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); private MainProfile(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -182,8 +181,8 @@ public class MainProfile extends TableImpl { private transient PubRecruitmentPath _pubRecruitment; /** - * Get the implicit join path to the public.pub_recruitment - * table. + * Get the implicit join path to the + * ervu_dashboard.pub_recruitment table. */ public PubRecruitmentPath pubRecruitment() { if (_pubRecruitment == null) diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReasonsAppeal.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReasonsAppeal.java index a6f9e0a..90ee08f 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReasonsAppeal.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReasonsAppeal.java @@ -7,14 +7,13 @@ package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Appeals; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.ReasonsAppealRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment.PubRecruitmentPath; import java.math.BigDecimal; import java.sql.Date; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -113,7 +112,7 @@ public class ReasonsAppeal extends TableImpl { /** * The column appeals.reasons_appeal.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); private ReasonsAppeal(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -198,8 +197,8 @@ public class ReasonsAppeal extends TableImpl { private transient PubRecruitmentPath _pubRecruitment; /** - * Get the implicit join path to the public.pub_recruitment - * table. + * Get the implicit join path to the + * ervu_dashboard.pub_recruitment table. */ public PubRecruitmentPath pubRecruitment() { if (_pubRecruitment == null) diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReviewRating.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReviewRating.java index 6768665..cc24a8e 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReviewRating.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReviewRating.java @@ -7,7 +7,7 @@ package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Appeals; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.ReviewRatingRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region.RegionPath; import java.math.BigDecimal; @@ -15,7 +15,6 @@ import java.sql.Date; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -91,7 +90,7 @@ public class ReviewRating extends TableImpl { /** * The column appeals.review_rating.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); private ReviewRating(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -188,8 +187,8 @@ public class ReviewRating extends TableImpl { private transient PubRecruitmentPath _pubRecruitment; /** - * Get the implicit join path to the public.pub_recruitment - * table. + * Get the implicit join path to the + * ervu_dashboard.pub_recruitment table. */ public PubRecruitmentPath pubRecruitment() { if (_pubRecruitment == null) diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/TopicAppeal.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/TopicAppeal.java index cdedef0..fec1b6f 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/TopicAppeal.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/TopicAppeal.java @@ -7,14 +7,13 @@ package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Appeals; import ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.TopicAppealRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment.PubRecruitmentPath; import java.math.BigDecimal; import java.sql.Date; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -121,7 +120,7 @@ public class TopicAppeal extends TableImpl { /** * The column appeals.topic_appeal.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); private TopicAppeal(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -206,8 +205,8 @@ public class TopicAppeal extends TableImpl { private transient PubRecruitmentPath _pubRecruitment; /** - * Get the implicit join path to the public.pub_recruitment - * table. + * Get the implicit join path to the + * ervu_dashboard.pub_recruitment table. */ public PubRecruitmentPath pubRecruitment() { if (_pubRecruitment == null) diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/MainProfileRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/MainProfileRecord.java index 12e6a9a..590e276 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/MainProfileRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/MainProfileRecord.java @@ -7,7 +7,6 @@ package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.MainProfile; import java.sql.Date; -import java.util.UUID; import org.jooq.Record1; import org.jooq.impl.UpdatableRecordImpl; @@ -122,15 +121,15 @@ public class MainProfileRecord extends UpdatableRecordImpl { /** * Setter for appeals.main_profile.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(7, value); } /** * Getter for appeals.main_profile.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(7); + public String getRecruitmentId() { + return (String) get(7); } // ------------------------------------------------------------------------- @@ -156,7 +155,7 @@ public class MainProfileRecord extends UpdatableRecordImpl { /** * Create a detached, initialised MainProfileRecord */ - public MainProfileRecord(Long idMainProfile, String gender, String age, String childMin_18, String education, String employment, Date recordingDate, UUID recruitmentId) { + public MainProfileRecord(Long idMainProfile, String gender, String age, String childMin_18, String education, String employment, Date recordingDate, String recruitmentId) { super(MainProfile.MAIN_PROFILE); setIdMainProfile(idMainProfile); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReasonsAppealRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReasonsAppealRecord.java index 6d177b6..7abcd68 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReasonsAppealRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReasonsAppealRecord.java @@ -8,7 +8,6 @@ import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReasonsAppeal; import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; import org.jooq.Record1; import org.jooq.impl.UpdatableRecordImpl; @@ -161,15 +160,15 @@ public class ReasonsAppealRecord extends UpdatableRecordImplappeals.reasons_appeal.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(9, value); } /** * Getter for appeals.reasons_appeal.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(9); + public String getRecruitmentId() { + return (String) get(9); } // ------------------------------------------------------------------------- @@ -195,7 +194,7 @@ public class ReasonsAppealRecord extends UpdatableRecordImpl /** * Setter for appeals.review_rating.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(5, value); } /** * Getter for appeals.review_rating.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(5); + public String getRecruitmentId() { + return (String) get(5); } // ------------------------------------------------------------------------- @@ -133,7 +132,7 @@ public class ReviewRatingRecord extends UpdatableRecordImpl /** * Create a detached, initialised ReviewRatingRecord */ - public ReviewRatingRecord(Long idReviewRating, BigDecimal speed, BigDecimal rating, Date recordingDate, Long idRegion, UUID recruitmentId) { + public ReviewRatingRecord(Long idReviewRating, BigDecimal speed, BigDecimal rating, Date recordingDate, Long idRegion, String recruitmentId) { super(ReviewRating.REVIEW_RATING); setIdReviewRating(idReviewRating); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/TopicAppealRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/TopicAppealRecord.java index 677c11a..fc50c10 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/TopicAppealRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/TopicAppealRecord.java @@ -8,7 +8,6 @@ import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.TopicAppeal; import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; import org.jooq.Record1; import org.jooq.impl.UpdatableRecordImpl; @@ -181,15 +180,15 @@ public class TopicAppealRecord extends UpdatableRecordImpl { /** * Setter for appeals.topic_appeal.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(10, value); } /** * Getter for appeals.topic_appeal.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(10); + public String getRecruitmentId() { + return (String) get(10); } // ------------------------------------------------------------------------- @@ -215,7 +214,7 @@ public class TopicAppealRecord extends UpdatableRecordImpl { /** * Create a detached, initialised TopicAppealRecord */ - public TopicAppealRecord(Long idTopicAppeal, BigDecimal registration, BigDecimal sabpoena, BigDecimal appear, BigDecimal temporaryMeasures, Date recordingDate, BigDecimal registrationPercent, BigDecimal sabpoenaPercent, BigDecimal appearPercent, BigDecimal temporaryMeasuresPercent, UUID recruitmentId) { + public TopicAppealRecord(Long idTopicAppeal, BigDecimal registration, BigDecimal sabpoena, BigDecimal appear, BigDecimal temporaryMeasures, Date recordingDate, BigDecimal registrationPercent, BigDecimal sabpoenaPercent, BigDecimal appearPercent, BigDecimal temporaryMeasuresPercent, String recruitmentId) { super(TopicAppeal.TOPIC_APPEAL); setIdTopicAppeal(idTopicAppeal); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/ErvuDashboard.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/ErvuDashboard.java new file mode 100644 index 0000000..ec3afd3 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/ErvuDashboard.java @@ -0,0 +1,153 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard; + + +import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Citizen; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenChild; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenGuardianship; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenSpouse; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Databasechangelog; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Databasechangeloglock; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disability; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disease; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.DriversLicence; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.MedicalAuthorities; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Property; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Subpoena; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.TemporaryMeasures; + +import java.util.Arrays; +import java.util.List; + +import org.jooq.Catalog; +import org.jooq.Table; +import org.jooq.impl.SchemaImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ErvuDashboard extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard + */ + public static final ErvuDashboard ERVU_DASHBOARD = new ErvuDashboard(); + + /** + * The table ervu_dashboard.citizen. + */ + public final Citizen CITIZEN = Citizen.CITIZEN; + + /** + * сведения о детях гражданина + */ + public final CitizenChild CITIZEN_CHILD = CitizenChild.CITIZEN_CHILD; + + /** + * сведения о лице, опекаемом или находящемся на попечении + */ + public final CitizenGuardianship CITIZEN_GUARDIANSHIP = CitizenGuardianship.CITIZEN_GUARDIANSHIP; + + /** + * сведения о супруге (бывшей/ем супруге) гражданина + */ + public final CitizenSpouse CITIZEN_SPOUSE = CitizenSpouse.CITIZEN_SPOUSE; + + /** + * The table ervu_dashboard.databasechangelog. + */ + public final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; + + /** + * The table ervu_dashboard.databasechangeloglock. + */ + public final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; + + /** + * сведения об инвалидности/недееспособности/ограниченной дееспособности + */ + public final Disability DISABILITY = Disability.DISABILITY; + + /** + * сведения о заболеваниях гражданина + */ + public final Disease DISEASE = Disease.DISEASE; + + /** + * удостоверение водительское/тракториста-машиниста + */ + public final DriversLicence DRIVERS_LICENCE = DriversLicence.DRIVERS_LICENCE; + + /** + * сведения о гражданах, стоящих на учете в ПНД/по ВИЧ + */ + public final MedicalAuthorities MEDICAL_AUTHORITIES = MedicalAuthorities.MEDICAL_AUTHORITIES; + + /** + * сведения об имуществе + */ + public final Property PROPERTY = Property.PROPERTY; + + /** + * The table ervu_dashboard.pub_recruitment. + */ + public final PubRecruitment PUB_RECRUITMENT = PubRecruitment.PUB_RECRUITMENT; + + /** + * The table ervu_dashboard.recruitment. + */ + public final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + + /** + * The table ervu_dashboard.subpoena. + */ + public final Subpoena SUBPOENA = Subpoena.SUBPOENA; + + /** + * The table ervu_dashboard.temporary_measures. + */ + public final TemporaryMeasures TEMPORARY_MEASURES = TemporaryMeasures.TEMPORARY_MEASURES; + + /** + * No further instances allowed + */ + private ErvuDashboard() { + super("ervu_dashboard", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + Citizen.CITIZEN, + CitizenChild.CITIZEN_CHILD, + CitizenGuardianship.CITIZEN_GUARDIANSHIP, + CitizenSpouse.CITIZEN_SPOUSE, + Databasechangelog.DATABASECHANGELOG, + Databasechangeloglock.DATABASECHANGELOGLOCK, + Disability.DISABILITY, + Disease.DISEASE, + DriversLicence.DRIVERS_LICENCE, + MedicalAuthorities.MEDICAL_AUTHORITIES, + Property.PROPERTY, + PubRecruitment.PUB_RECRUITMENT, + Recruitment.RECRUITMENT, + Subpoena.SUBPOENA, + TemporaryMeasures.TEMPORARY_MEASURES + ); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Keys.java new file mode 100644 index 0000000..55bf1a9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Keys.java @@ -0,0 +1,68 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Citizen; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenChild; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenGuardianship; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenSpouse; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Databasechangeloglock; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disability; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disease; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.DriversLicence; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.MedicalAuthorities; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Property; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Subpoena; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.TemporaryMeasures; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenChildRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenGuardianshipRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenSpouseRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DatabasechangeloglockRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DisabilityRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DiseaseRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DriversLicenceRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.MedicalAuthoritiesRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.PropertyRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.PubRecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.RecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.SubpoenaRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.TemporaryMeasuresRecord; + +import org.jooq.TableField; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.Internal; + + +/** + * A class modelling foreign key relationships and constraints of tables in + * ervu_dashboard. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Keys { + + // ------------------------------------------------------------------------- + // UNIQUE and PRIMARY KEY definitions + // ------------------------------------------------------------------------- + + public static final UniqueKey CITIZEN_PKEY = Internal.createUniqueKey(Citizen.CITIZEN, DSL.name("citizen_pkey"), new TableField[] { Citizen.CITIZEN.RECRUIT_ID }, true); + public static final UniqueKey PK_CITIZEN_CHILD = Internal.createUniqueKey(CitizenChild.CITIZEN_CHILD, DSL.name("pk_citizen_child"), new TableField[] { CitizenChild.CITIZEN_CHILD.CITIZEN_CHILD_ID }, true); + public static final UniqueKey PK_CITIZEN_GUARDIANSHIP = Internal.createUniqueKey(CitizenGuardianship.CITIZEN_GUARDIANSHIP, DSL.name("pk_citizen_guardianship"), new TableField[] { CitizenGuardianship.CITIZEN_GUARDIANSHIP.CITIZEN_GUARDIANSHIP_ID }, true); + public static final UniqueKey PK_CITIZEN_SPOUSE = Internal.createUniqueKey(CitizenSpouse.CITIZEN_SPOUSE, DSL.name("pk_citizen_spouse"), new TableField[] { CitizenSpouse.CITIZEN_SPOUSE.CITIZEN_SPOUSE_ID }, true); + public static final UniqueKey DATABASECHANGELOGLOCK_PKEY = Internal.createUniqueKey(Databasechangeloglock.DATABASECHANGELOGLOCK, DSL.name("databasechangeloglock_pkey"), new TableField[] { Databasechangeloglock.DATABASECHANGELOGLOCK.ID }, true); + public static final UniqueKey PK_DISABILITY = Internal.createUniqueKey(Disability.DISABILITY, DSL.name("pk_disability"), new TableField[] { Disability.DISABILITY.DISABILITY_ID }, true); + public static final UniqueKey PK_DISEASE = Internal.createUniqueKey(Disease.DISEASE, DSL.name("pk_disease"), new TableField[] { Disease.DISEASE.DISEASE_ID }, true); + public static final UniqueKey PK_DRIVERS_LICENCE = Internal.createUniqueKey(DriversLicence.DRIVERS_LICENCE, DSL.name("pk_drivers_licence"), new TableField[] { DriversLicence.DRIVERS_LICENCE.DRIVERS_LICENCE_ID }, true); + public static final UniqueKey PK_MEDICAL_AUTHORITIES = Internal.createUniqueKey(MedicalAuthorities.MEDICAL_AUTHORITIES, DSL.name("pk_medical_authorities"), new TableField[] { MedicalAuthorities.MEDICAL_AUTHORITIES.MEDICAL_AUTHORITIES_ID }, true); + public static final UniqueKey PK_PROPERTY = Internal.createUniqueKey(Property.PROPERTY, DSL.name("pk_property"), new TableField[] { Property.PROPERTY.PROPERTY_ID }, true); + public static final UniqueKey PUB_RECRUITMENT_PKEY = Internal.createUniqueKey(PubRecruitment.PUB_RECRUITMENT, DSL.name("pub_recruitment_pkey"), new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final UniqueKey RECRUITMENT_IDM_ID_KEY = Internal.createUniqueKey(PubRecruitment.PUB_RECRUITMENT, DSL.name("recruitment_idm_id_key"), new TableField[] { PubRecruitment.PUB_RECRUITMENT.IDM_ID }, true); + public static final UniqueKey RECRUITMENT_PKEY = Internal.createUniqueKey(Recruitment.RECRUITMENT, DSL.name("recruitment_pkey"), new TableField[] { Recruitment.RECRUITMENT.ID }, true); + public static final UniqueKey SUBPOENA_PKEY = Internal.createUniqueKey(Subpoena.SUBPOENA, DSL.name("subpoena_pkey"), new TableField[] { Subpoena.SUBPOENA.SUBPOENA_ID }, true); + public static final UniqueKey TEMPORARY_MEASURES_PKEY = Internal.createUniqueKey(TemporaryMeasures.TEMPORARY_MEASURES, DSL.name("temporary_measures_pkey"), new TableField[] { TemporaryMeasures.TEMPORARY_MEASURES.TEMPORARY_MEASURES_ID }, true); +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Routines.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Routines.java new file mode 100644 index 0000000..ff9915f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Routines.java @@ -0,0 +1,285 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidGenerateV1; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidGenerateV1mc; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidGenerateV3; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidGenerateV4; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidGenerateV5; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidNil; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidNsDns; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidNsOid; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidNsUrl; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines.UuidNsX500; + +import java.util.UUID; + +import org.jooq.Configuration; +import org.jooq.Field; + + +/** + * Convenience access to all stored procedures and functions in ervu_dashboard. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Routines { + + /** + * Call ervu_dashboard.uuid_generate_v1 + */ + public static UUID uuidGenerateV1( + Configuration configuration + ) { + UuidGenerateV1 f = new UuidGenerateV1(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_generate_v1 as a field. + */ + public static Field uuidGenerateV1() { + UuidGenerateV1 f = new UuidGenerateV1(); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_generate_v1mc + */ + public static UUID uuidGenerateV1mc( + Configuration configuration + ) { + UuidGenerateV1mc f = new UuidGenerateV1mc(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_generate_v1mc as a field. + */ + public static Field uuidGenerateV1mc() { + UuidGenerateV1mc f = new UuidGenerateV1mc(); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_generate_v3 + */ + public static UUID uuidGenerateV3( + Configuration configuration + , UUID namespace + , String name + ) { + UuidGenerateV3 f = new UuidGenerateV3(); + f.setNamespace(namespace); + f.setName_(name); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_generate_v3 as a field. + */ + public static Field uuidGenerateV3( + UUID namespace + , String name + ) { + UuidGenerateV3 f = new UuidGenerateV3(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Get ervu_dashboard.uuid_generate_v3 as a field. + */ + public static Field uuidGenerateV3( + Field namespace + , Field name + ) { + UuidGenerateV3 f = new UuidGenerateV3(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_generate_v4 + */ + public static UUID uuidGenerateV4( + Configuration configuration + ) { + UuidGenerateV4 f = new UuidGenerateV4(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_generate_v4 as a field. + */ + public static Field uuidGenerateV4() { + UuidGenerateV4 f = new UuidGenerateV4(); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_generate_v5 + */ + public static UUID uuidGenerateV5( + Configuration configuration + , UUID namespace + , String name + ) { + UuidGenerateV5 f = new UuidGenerateV5(); + f.setNamespace(namespace); + f.setName_(name); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_generate_v5 as a field. + */ + public static Field uuidGenerateV5( + UUID namespace + , String name + ) { + UuidGenerateV5 f = new UuidGenerateV5(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Get ervu_dashboard.uuid_generate_v5 as a field. + */ + public static Field uuidGenerateV5( + Field namespace + , Field name + ) { + UuidGenerateV5 f = new UuidGenerateV5(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_nil + */ + public static UUID uuidNil( + Configuration configuration + ) { + UuidNil f = new UuidNil(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_nil as a field. + */ + public static Field uuidNil() { + UuidNil f = new UuidNil(); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_ns_dns + */ + public static UUID uuidNsDns( + Configuration configuration + ) { + UuidNsDns f = new UuidNsDns(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_ns_dns as a field. + */ + public static Field uuidNsDns() { + UuidNsDns f = new UuidNsDns(); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_ns_oid + */ + public static UUID uuidNsOid( + Configuration configuration + ) { + UuidNsOid f = new UuidNsOid(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_ns_oid as a field. + */ + public static Field uuidNsOid() { + UuidNsOid f = new UuidNsOid(); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_ns_url + */ + public static UUID uuidNsUrl( + Configuration configuration + ) { + UuidNsUrl f = new UuidNsUrl(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_ns_url as a field. + */ + public static Field uuidNsUrl() { + UuidNsUrl f = new UuidNsUrl(); + + return f.asField(); + } + + /** + * Call ervu_dashboard.uuid_ns_x500 + */ + public static UUID uuidNsX500( + Configuration configuration + ) { + UuidNsX500 f = new UuidNsX500(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get ervu_dashboard.uuid_ns_x500 as a field. + */ + public static Field uuidNsX500() { + UuidNsX500 f = new UuidNsX500(); + + return f.asField(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Tables.java new file mode 100644 index 0000000..b08f69c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/Tables.java @@ -0,0 +1,104 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Citizen; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenChild; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenGuardianship; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenSpouse; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Databasechangelog; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Databasechangeloglock; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disability; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disease; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.DriversLicence; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.MedicalAuthorities; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Property; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Subpoena; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.TemporaryMeasures; + + +/** + * Convenience access to all tables in ervu_dashboard. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * The table ervu_dashboard.citizen. + */ + public static final Citizen CITIZEN = Citizen.CITIZEN; + + /** + * сведения о детях гражданина + */ + public static final CitizenChild CITIZEN_CHILD = CitizenChild.CITIZEN_CHILD; + + /** + * сведения о лице, опекаемом или находящемся на попечении + */ + public static final CitizenGuardianship CITIZEN_GUARDIANSHIP = CitizenGuardianship.CITIZEN_GUARDIANSHIP; + + /** + * сведения о супруге (бывшей/ем супруге) гражданина + */ + public static final CitizenSpouse CITIZEN_SPOUSE = CitizenSpouse.CITIZEN_SPOUSE; + + /** + * The table ervu_dashboard.databasechangelog. + */ + public static final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; + + /** + * The table ervu_dashboard.databasechangeloglock. + */ + public static final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; + + /** + * сведения об инвалидности/недееспособности/ограниченной дееспособности + */ + public static final Disability DISABILITY = Disability.DISABILITY; + + /** + * сведения о заболеваниях гражданина + */ + public static final Disease DISEASE = Disease.DISEASE; + + /** + * удостоверение водительское/тракториста-машиниста + */ + public static final DriversLicence DRIVERS_LICENCE = DriversLicence.DRIVERS_LICENCE; + + /** + * сведения о гражданах, стоящих на учете в ПНД/по ВИЧ + */ + public static final MedicalAuthorities MEDICAL_AUTHORITIES = MedicalAuthorities.MEDICAL_AUTHORITIES; + + /** + * сведения об имуществе + */ + public static final Property PROPERTY = Property.PROPERTY; + + /** + * The table ervu_dashboard.pub_recruitment. + */ + public static final PubRecruitment PUB_RECRUITMENT = PubRecruitment.PUB_RECRUITMENT; + + /** + * The table ervu_dashboard.recruitment. + */ + public static final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + + /** + * The table ervu_dashboard.subpoena. + */ + public static final Subpoena SUBPOENA = Subpoena.SUBPOENA; + + /** + * The table ervu_dashboard.temporary_measures. + */ + public static final TemporaryMeasures TEMPORARY_MEASURES = TemporaryMeasures.TEMPORARY_MEASURES; +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1.java new file mode 100644 index 0000000..4e866c3 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidGenerateV1 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_generate_v1.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV1() { + super("uuid_generate_v1", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1mc.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1mc.java new file mode 100644 index 0000000..b6f6833 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV1mc.java @@ -0,0 +1,39 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidGenerateV1mc extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter + * ervu_dashboard.uuid_generate_v1mc.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV1mc() { + super("uuid_generate_v1mc", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV3.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV3.java new file mode 100644 index 0000000..4dad69f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV3.java @@ -0,0 +1,81 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Field; +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidGenerateV3 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_generate_v3.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * The parameter ervu_dashboard.uuid_generate_v3.namespace. + */ + public static final Parameter NAMESPACE = Internal.createParameter("namespace", SQLDataType.UUID, false, false); + + /** + * The parameter ervu_dashboard.uuid_generate_v3.name. + */ + public static final Parameter NAME = Internal.createParameter("name", SQLDataType.CLOB, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV3() { + super("uuid_generate_v3", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + addInParameter(NAMESPACE); + addInParameter(NAME); + } + + /** + * Set the namespace parameter IN value to the routine + */ + public void setNamespace(UUID value) { + setValue(NAMESPACE, value); + } + + /** + * Set the namespace parameter to the function to be used with + * a {@link org.jooq.Select} statement + */ + public void setNamespace(Field field) { + setField(NAMESPACE, field); + } + + /** + * Set the name parameter IN value to the routine + */ + public void setName_(String value) { + setValue(NAME, value); + } + + /** + * Set the name parameter to the function to be used with a + * {@link org.jooq.Select} statement + */ + public void setName_(Field field) { + setField(NAME, field); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV4.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV4.java new file mode 100644 index 0000000..4374257 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV4.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidGenerateV4 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_generate_v4.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV4() { + super("uuid_generate_v4", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV5.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV5.java new file mode 100644 index 0000000..4abd149 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidGenerateV5.java @@ -0,0 +1,81 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Field; +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidGenerateV5 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_generate_v5.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * The parameter ervu_dashboard.uuid_generate_v5.namespace. + */ + public static final Parameter NAMESPACE = Internal.createParameter("namespace", SQLDataType.UUID, false, false); + + /** + * The parameter ervu_dashboard.uuid_generate_v5.name. + */ + public static final Parameter NAME = Internal.createParameter("name", SQLDataType.CLOB, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV5() { + super("uuid_generate_v5", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + addInParameter(NAMESPACE); + addInParameter(NAME); + } + + /** + * Set the namespace parameter IN value to the routine + */ + public void setNamespace(UUID value) { + setValue(NAMESPACE, value); + } + + /** + * Set the namespace parameter to the function to be used with + * a {@link org.jooq.Select} statement + */ + public void setNamespace(Field field) { + setField(NAMESPACE, field); + } + + /** + * Set the name parameter IN value to the routine + */ + public void setName_(String value) { + setValue(NAME, value); + } + + /** + * Set the name parameter to the function to be used with a + * {@link org.jooq.Select} statement + */ + public void setName_(Field field) { + setField(NAME, field); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNil.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNil.java new file mode 100644 index 0000000..fa7a18f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNil.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidNil extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_nil.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNil() { + super("uuid_nil", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsDns.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsDns.java new file mode 100644 index 0000000..39c88c0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsDns.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidNsDns extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_ns_dns.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsDns() { + super("uuid_ns_dns", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsOid.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsOid.java new file mode 100644 index 0000000..60cf391 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsOid.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidNsOid extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_ns_oid.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsOid() { + super("uuid_ns_oid", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsUrl.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsUrl.java new file mode 100644 index 0000000..b43757f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsUrl.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidNsUrl extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_ns_url.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsUrl() { + super("uuid_ns_url", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsX500.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsX500.java new file mode 100644 index 0000000..ad2accb --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/routines/UuidNsX500.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; + +import java.util.UUID; + +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidNsX500 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter ervu_dashboard.uuid_ns_x500.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsX500() { + super("uuid_ns_x500", ErvuDashboard.ERVU_DASHBOARD, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Citizen.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Citizen.java new file mode 100644 index 0000000..9d6cb5f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Citizen.java @@ -0,0 +1,441 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenRecord; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Citizen extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.citizen + */ + public static final Citizen CITIZEN = new Citizen(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return CitizenRecord.class; + } + + /** + * The column ervu_dashboard.citizen.residence. Адрес места + * жительства + */ + public final TableField RESIDENCE = createField(DSL.name("residence"), SQLDataType.VARCHAR, this, "Адрес места жительства"); + + /** + * The column ervu_dashboard.citizen.is_registered. Сведения о + * воинском учёте + */ + public final TableField IS_REGISTERED = createField(DSL.name("is_registered"), SQLDataType.VARCHAR, this, "Сведения о воинском учёте"); + + /** + * The column ervu_dashboard.citizen.passport_series. Серия + * паспорта + */ + public final TableField PASSPORT_SERIES = createField(DSL.name("passport_series"), SQLDataType.VARCHAR, this, "Серия паспорта"); + + /** + * The column ervu_dashboard.citizen.passport_number. Номер + * паспорта + */ + public final TableField PASSPORT_NUMBER = createField(DSL.name("passport_number"), SQLDataType.VARCHAR, this, "Номер паспорта"); + + /** + * The column ervu_dashboard.citizen.phone. Телефон + */ + public final TableField PHONE = createField(DSL.name("phone"), SQLDataType.VARCHAR, this, "Телефон"); + + /** + * The column ervu_dashboard.citizen.medical_requirements. + * Медицинские сведения + */ + public final TableField MEDICAL_REQUIREMENTS = createField(DSL.name("medical_requirements"), SQLDataType.VARCHAR, this, "Медицинские сведения"); + + /** + * The column ervu_dashboard.citizen.deferment_liberation. + * Наличие отсрочки или освобождения от военной службы + */ + public final TableField DEFERMENT_LIBERATION = createField(DSL.name("deferment_liberation"), SQLDataType.VARCHAR, this, "Наличие отсрочки или освобождения от военной службы"); + + /** + * The column ervu_dashboard.citizen.gender. Пол + */ + public final TableField GENDER = createField(DSL.name("gender"), SQLDataType.VARCHAR, this, "Пол"); + + /** + * The column ervu_dashboard.citizen.marital_status. Семейное + * положение + */ + public final TableField MARITAL_STATUS = createField(DSL.name("marital_status"), SQLDataType.VARCHAR, this, "Семейное положение"); + + /** + * The column ervu_dashboard.citizen.education. Образование + */ + public final TableField EDUCATION = createField(DSL.name("education"), SQLDataType.VARCHAR, this, "Образование"); + + /** + * The column ervu_dashboard.citizen.employment. Занятость + */ + public final TableField EMPLOYMENT = createField(DSL.name("employment"), SQLDataType.VARCHAR, this, "Занятость"); + + /** + * The column ervu_dashboard.citizen.reason_registration. + * Причина постановки на учёт + */ + public final TableField REASON_REGISTRATION = createField(DSL.name("reason_registration"), SQLDataType.VARCHAR, this, "Причина постановки на учёт"); + + /** + * The column ervu_dashboard.citizen.driver_license. + * Водительское удостоверение + */ + public final TableField DRIVER_LICENSE = createField(DSL.name("driver_license"), SQLDataType.VARCHAR, this, "Водительское удостоверение"); + + /** + * The column ervu_dashboard.citizen.disability_group. Группа + * инвалидности + */ + public final TableField DISABILITY_GROUP = createField(DSL.name("disability_group"), SQLDataType.VARCHAR, this, "Группа инвалидности"); + + /** + * The column + * ervu_dashboard.citizen.dispensary_registration_code. Код + * диспансерного учета + */ + public final TableField DISPENSARY_REGISTRATION_CODE = createField(DSL.name("dispensary_registration_code"), SQLDataType.VARCHAR, this, "Код диспансерного учета"); + + /** + * The column ervu_dashboard.citizen.region_birth. Регион места + * рождения + */ + public final TableField REGION_BIRTH = createField(DSL.name("region_birth"), SQLDataType.VARCHAR, this, "Регион места рождения"); + + /** + * The column ervu_dashboard.citizen.city_birth. Город места + * рождения + */ + public final TableField CITY_BIRTH = createField(DSL.name("city_birth"), SQLDataType.VARCHAR, this, "Город места рождения"); + + /** + * The column ervu_dashboard.citizen.right_deferment. Имеет + * право на отсрочку + */ + public final TableField RIGHT_DEFERMENT = createField(DSL.name("right_deferment"), SQLDataType.BOOLEAN, this, "Имеет право на отсрочку"); + + /** + * The column ervu_dashboard.citizen.took_break. Воспользовался + * отсрочкой + */ + public final TableField TOOK_BREAK = createField(DSL.name("took_break"), SQLDataType.BOOLEAN, this, "Воспользовался отсрочкой"); + + /** + * The column ervu_dashboard.citizen.medic. Является медиком + */ + public final TableField MEDIC = createField(DSL.name("medic"), SQLDataType.BOOLEAN, this, "Является медиком"); + + /** + * The column ervu_dashboard.citizen.sports_category. Имеет + * спортивный разряд/звание + */ + public final TableField SPORTS_CATEGORY = createField(DSL.name("sports_category"), SQLDataType.BOOLEAN, this, "Имеет спортивный разряд/звание"); + + /** + * The column ervu_dashboard.citizen.tractor_license. Имеет + * удостоверение тракториста + */ + public final TableField TRACTOR_LICENSE = createField(DSL.name("tractor_license"), SQLDataType.BOOLEAN, this, "Имеет удостоверение тракториста"); + + /** + * The column ervu_dashboard.citizen.is_wanted. Находится в + * розыске + */ + public final TableField IS_WANTED = createField(DSL.name("is_wanted"), SQLDataType.BOOLEAN, this, "Находится в розыске"); + + /** + * The column ervu_dashboard.citizen.is_in_prison. Находится в + * местах лишения свободы + */ + public final TableField IS_IN_PRISON = createField(DSL.name("is_in_prison"), SQLDataType.BOOLEAN, this, "Находится в местах лишения свободы"); + + /** + * The column ervu_dashboard.citizen.acquired_citizenship. + * Получивший гражданство + */ + public final TableField ACQUIRED_CITIZENSHIP = createField(DSL.name("acquired_citizenship"), SQLDataType.BOOLEAN, this, "Получивший гражданство"); + + /** + * The column ervu_dashboard.citizen.urgent_service. Признак + * критерия срочной службы + */ + public final TableField URGENT_SERVICE = createField(DSL.name("urgent_service"), SQLDataType.BOOLEAN, this, "Признак критерия срочной службы"); + + /** + * The column ervu_dashboard.citizen.contract_service. Признак + * критерия контрактной службы + */ + public final TableField CONTRACT_SERVICE = createField(DSL.name("contract_service"), SQLDataType.BOOLEAN, this, "Признак критерия контрактной службы"); + + /** + * The column ervu_dashboard.citizen.mobilization. Признак + * критерия службы по мобмлизации + */ + public final TableField MOBILIZATION = createField(DSL.name("mobilization"), SQLDataType.BOOLEAN, this, "Признак критерия службы по мобмлизации"); + + /** + * The column ervu_dashboard.citizen.full_name. + */ + public final TableField FULL_NAME = createField(DSL.name("full_name"), SQLDataType.VARCHAR, this, ""); + + /** + * The column ervu_dashboard.citizen.last_name. + */ + public final TableField LAST_NAME = createField(DSL.name("last_name"), SQLDataType.VARCHAR, this, ""); + + /** + * The column ervu_dashboard.citizen.first_name. + */ + public final TableField FIRST_NAME = createField(DSL.name("first_name"), SQLDataType.VARCHAR, this, ""); + + /** + * The column ervu_dashboard.citizen.middle_name. + */ + public final TableField MIDDLE_NAME = createField(DSL.name("middle_name"), SQLDataType.VARCHAR, this, ""); + + /** + * The column ervu_dashboard.citizen.age. + */ + public final TableField AGE = createField(DSL.name("age"), SQLDataType.NUMERIC, this, ""); + + /** + * The column ervu_dashboard.citizen.birth_place. + */ + public final TableField BIRTH_PLACE = createField(DSL.name("birth_place"), SQLDataType.VARCHAR, this, ""); + + /** + * The column ervu_dashboard.citizen.number_children. + */ + public final TableField NUMBER_CHILDREN = createField(DSL.name("number_children"), SQLDataType.NUMERIC, this, ""); + + /** + * The column ervu_dashboard.citizen.birth_date. + */ + public final TableField BIRTH_DATE = createField(DSL.name("birth_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen.recruit_id. id рекрута из + * БД ЕРВУ + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "id рекрута из БД ЕРВУ"); + + /** + * The column ervu_dashboard.citizen.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column ervu_dashboard.citizen.issue_date. + */ + public final TableField ISSUE_DATE = createField(DSL.name("issue_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen.number_children_18_old. + */ + public final TableField NUMBER_CHILDREN_18_OLD = createField(DSL.name("number_children_18_old"), SQLDataType.NUMERIC, this, ""); + + private Citizen(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Citizen(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.citizen table reference + */ + public Citizen(String alias) { + this(DSL.name(alias), CITIZEN); + } + + /** + * Create an aliased ervu_dashboard.citizen table reference + */ + public Citizen(Name alias) { + this(alias, CITIZEN); + } + + /** + * Create a ervu_dashboard.citizen table reference + */ + public Citizen() { + this(DSL.name("citizen"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.CITIZEN_PKEY; + } + + @Override + public Citizen as(String alias) { + return new Citizen(DSL.name(alias), this); + } + + @Override + public Citizen as(Name alias) { + return new Citizen(alias, this); + } + + @Override + public Citizen as(Table alias) { + return new Citizen(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Citizen rename(String name) { + return new Citizen(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Citizen rename(Name name) { + return new Citizen(name, null); + } + + /** + * Rename this table + */ + @Override + public Citizen rename(Table name) { + return new Citizen(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Citizen where(Condition condition) { + return new Citizen(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Citizen where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Citizen where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Citizen where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Citizen where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Citizen where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Citizen where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Citizen where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Citizen whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Citizen whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenChild.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenChild.java new file mode 100644 index 0000000..d08e1d2 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenChild.java @@ -0,0 +1,267 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenChildRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * сведения о детях гражданина + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class CitizenChild extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.citizen_child + */ + public static final CitizenChild CITIZEN_CHILD = new CitizenChild(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return CitizenChildRecord.class; + } + + /** + * The column ervu_dashboard.citizen_child.citizen_child_id. + */ + public final TableField CITIZEN_CHILD_ID = createField(DSL.name("citizen_child_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.citizen_child.recruit_id. ссылка + * на гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.citizen_child.kinship_type. тип + * родственной связи: сын/дочь + */ + public final TableField KINSHIP_TYPE = createField(DSL.name("kinship_type"), SQLDataType.VARCHAR(50), this, "тип родственной связи: сын/дочь"); + + /** + * The column ervu_dashboard.citizen_child.full_name. ФИО + */ + public final TableField FULL_NAME = createField(DSL.name("full_name"), SQLDataType.VARCHAR, this, "ФИО"); + + /** + * The column ervu_dashboard.citizen_child.birth_date. + */ + public final TableField BIRTH_DATE = createField(DSL.name("birth_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen_child.birth_az_number. + * номер актовой записи о рождении + */ + public final TableField BIRTH_AZ_NUMBER = createField(DSL.name("birth_az_number"), SQLDataType.VARCHAR(50), this, "номер актовой записи о рождении"); + + /** + * The column ervu_dashboard.citizen_child.death_date. + */ + public final TableField DEATH_DATE = createField(DSL.name("death_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen_child.death_az_number. + * номер актовой записи о смерти + */ + public final TableField DEATH_AZ_NUMBER = createField(DSL.name("death_az_number"), SQLDataType.VARCHAR(50), this, "номер актовой записи о смерти"); + + private CitizenChild(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private CitizenChild(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("сведения о детях гражданина"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.citizen_child table + * reference + */ + public CitizenChild(String alias) { + this(DSL.name(alias), CITIZEN_CHILD); + } + + /** + * Create an aliased ervu_dashboard.citizen_child table + * reference + */ + public CitizenChild(Name alias) { + this(alias, CITIZEN_CHILD); + } + + /** + * Create a ervu_dashboard.citizen_child table reference + */ + public CitizenChild() { + this(DSL.name("citizen_child"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_CITIZEN_CHILD; + } + + @Override + public CitizenChild as(String alias) { + return new CitizenChild(DSL.name(alias), this); + } + + @Override + public CitizenChild as(Name alias) { + return new CitizenChild(alias, this); + } + + @Override + public CitizenChild as(Table alias) { + return new CitizenChild(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public CitizenChild rename(String name) { + return new CitizenChild(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public CitizenChild rename(Name name) { + return new CitizenChild(name, null); + } + + /** + * Rename this table + */ + @Override + public CitizenChild rename(Table name) { + return new CitizenChild(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenChild where(Condition condition) { + return new CitizenChild(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenChild where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenChild where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenChild where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenChild where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenChild where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenChild where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenChild where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenChild whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenChild whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenGuardianship.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenGuardianship.java new file mode 100644 index 0000000..29313d0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenGuardianship.java @@ -0,0 +1,252 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenGuardianshipRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * сведения о лице, опекаемом или находящемся на попечении + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class CitizenGuardianship extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * ervu_dashboard.citizen_guardianship + */ + public static final CitizenGuardianship CITIZEN_GUARDIANSHIP = new CitizenGuardianship(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return CitizenGuardianshipRecord.class; + } + + /** + * The column + * ervu_dashboard.citizen_guardianship.citizen_guardianship_id. + */ + public final TableField CITIZEN_GUARDIANSHIP_ID = createField(DSL.name("citizen_guardianship_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.citizen_guardianship.recruit_id. + * ссылка на гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.citizen_guardianship.full_name. + * ФИО + */ + public final TableField FULL_NAME = createField(DSL.name("full_name"), SQLDataType.VARCHAR, this, "ФИО"); + + /** + * The column ervu_dashboard.citizen_guardianship.birth_date. + */ + public final TableField BIRTH_DATE = createField(DSL.name("birth_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen_guardianship.snils. + */ + public final TableField SNILS = createField(DSL.name("snils"), SQLDataType.VARCHAR(50), this, ""); + + private CitizenGuardianship(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private CitizenGuardianship(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("сведения о лице, опекаемом или находящемся на попечении"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.citizen_guardianship table + * reference + */ + public CitizenGuardianship(String alias) { + this(DSL.name(alias), CITIZEN_GUARDIANSHIP); + } + + /** + * Create an aliased ervu_dashboard.citizen_guardianship table + * reference + */ + public CitizenGuardianship(Name alias) { + this(alias, CITIZEN_GUARDIANSHIP); + } + + /** + * Create a ervu_dashboard.citizen_guardianship table reference + */ + public CitizenGuardianship() { + this(DSL.name("citizen_guardianship"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_CITIZEN_GUARDIANSHIP; + } + + @Override + public CitizenGuardianship as(String alias) { + return new CitizenGuardianship(DSL.name(alias), this); + } + + @Override + public CitizenGuardianship as(Name alias) { + return new CitizenGuardianship(alias, this); + } + + @Override + public CitizenGuardianship as(Table alias) { + return new CitizenGuardianship(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public CitizenGuardianship rename(String name) { + return new CitizenGuardianship(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public CitizenGuardianship rename(Name name) { + return new CitizenGuardianship(name, null); + } + + /** + * Rename this table + */ + @Override + public CitizenGuardianship rename(Table name) { + return new CitizenGuardianship(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenGuardianship where(Condition condition) { + return new CitizenGuardianship(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenGuardianship where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenGuardianship where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenGuardianship where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenGuardianship where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenGuardianship where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenGuardianship where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenGuardianship where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenGuardianship whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenGuardianship whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenSpouse.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenSpouse.java new file mode 100644 index 0000000..74920c7 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/CitizenSpouse.java @@ -0,0 +1,290 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenSpouseRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * сведения о супруге (бывшей/ем супруге) гражданина + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class CitizenSpouse extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.citizen_spouse + */ + public static final CitizenSpouse CITIZEN_SPOUSE = new CitizenSpouse(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return CitizenSpouseRecord.class; + } + + /** + * The column ervu_dashboard.citizen_spouse.citizen_spouse_id. + */ + public final TableField CITIZEN_SPOUSE_ID = createField(DSL.name("citizen_spouse_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.citizen_spouse.recruit_id. ссылка + * на гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.citizen_spouse.kinship_type. тип + * родственной связи: супруг/бывший супруг + */ + public final TableField KINSHIP_TYPE = createField(DSL.name("kinship_type"), SQLDataType.VARCHAR(50), this, "тип родственной связи: супруг/бывший супруг"); + + /** + * The column ervu_dashboard.citizen_spouse.full_name. ФИО + */ + public final TableField FULL_NAME = createField(DSL.name("full_name"), SQLDataType.VARCHAR, this, "ФИО"); + + /** + * The column ervu_dashboard.citizen_spouse.birth_date. + */ + public final TableField BIRTH_DATE = createField(DSL.name("birth_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen_spouse.death_az_number. + * номер актовой записи о смерти + */ + public final TableField DEATH_AZ_NUMBER = createField(DSL.name("death_az_number"), SQLDataType.VARCHAR(50), this, "номер актовой записи о смерти"); + + /** + * The column ervu_dashboard.citizen_spouse.death_date. + */ + public final TableField DEATH_DATE = createField(DSL.name("death_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen_spouse.marriage_az_number. + * номер актовой записи о браке + */ + public final TableField MARRIAGE_AZ_NUMBER = createField(DSL.name("marriage_az_number"), SQLDataType.VARCHAR(50), this, "номер актовой записи о браке"); + + /** + * The column ervu_dashboard.citizen_spouse.marriage_date. + */ + public final TableField MARRIAGE_DATE = createField(DSL.name("marriage_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.citizen_spouse.divorce_az_number. + * номер актовой записи о расторжении брака + */ + public final TableField DIVORCE_AZ_NUMBER = createField(DSL.name("divorce_az_number"), SQLDataType.VARCHAR(50), this, "номер актовой записи о расторжении брака"); + + /** + * The column ervu_dashboard.citizen_spouse.divorce_date. + */ + public final TableField DIVORCE_DATE = createField(DSL.name("divorce_date"), SQLDataType.DATE, this, ""); + + /** + * The column + * ervu_dashboard.citizen_spouse.information_excluded. сведения + * о супруге исключены + */ + public final TableField INFORMATION_EXCLUDED = createField(DSL.name("information_excluded"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, "сведения о супруге исключены"); + + private CitizenSpouse(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private CitizenSpouse(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("сведения о супруге (бывшей/ем супруге) гражданина"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.citizen_spouse table + * reference + */ + public CitizenSpouse(String alias) { + this(DSL.name(alias), CITIZEN_SPOUSE); + } + + /** + * Create an aliased ervu_dashboard.citizen_spouse table + * reference + */ + public CitizenSpouse(Name alias) { + this(alias, CITIZEN_SPOUSE); + } + + /** + * Create a ervu_dashboard.citizen_spouse table reference + */ + public CitizenSpouse() { + this(DSL.name("citizen_spouse"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_CITIZEN_SPOUSE; + } + + @Override + public CitizenSpouse as(String alias) { + return new CitizenSpouse(DSL.name(alias), this); + } + + @Override + public CitizenSpouse as(Name alias) { + return new CitizenSpouse(alias, this); + } + + @Override + public CitizenSpouse as(Table alias) { + return new CitizenSpouse(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public CitizenSpouse rename(String name) { + return new CitizenSpouse(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public CitizenSpouse rename(Name name) { + return new CitizenSpouse(name, null); + } + + /** + * Rename this table + */ + @Override + public CitizenSpouse rename(Table name) { + return new CitizenSpouse(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenSpouse where(Condition condition) { + return new CitizenSpouse(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenSpouse where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenSpouse where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenSpouse where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenSpouse where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenSpouse where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenSpouse where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public CitizenSpouse where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenSpouse whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public CitizenSpouse whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangelog.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangelog.java new file mode 100644 index 0000000..3f1fbee --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangelog.java @@ -0,0 +1,279 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DatabasechangelogRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangelog extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.databasechangelog + */ + public static final Databasechangelog DATABASECHANGELOG = new Databasechangelog(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangelogRecord.class; + } + + /** + * The column ervu_dashboard.databasechangelog.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.author. + */ + public final TableField AUTHOR = createField(DSL.name("author"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.filename. + */ + public final TableField FILENAME = createField(DSL.name("filename"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.dateexecuted. + */ + public final TableField DATEEXECUTED = createField(DSL.name("dateexecuted"), SQLDataType.TIMESTAMP(0).nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.orderexecuted. + */ + public final TableField ORDEREXECUTED = createField(DSL.name("orderexecuted"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.exectype. + */ + public final TableField EXECTYPE = createField(DSL.name("exectype"), SQLDataType.VARCHAR(10).nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.md5sum. + */ + public final TableField MD5SUM = createField(DSL.name("md5sum"), SQLDataType.VARCHAR(35), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.description. + */ + public final TableField DESCRIPTION = createField(DSL.name("description"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.comments. + */ + public final TableField COMMENTS = createField(DSL.name("comments"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.tag. + */ + public final TableField TAG = createField(DSL.name("tag"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.liquibase. + */ + public final TableField LIQUIBASE = createField(DSL.name("liquibase"), SQLDataType.VARCHAR(20), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.contexts. + */ + public final TableField CONTEXTS = createField(DSL.name("contexts"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.labels. + */ + public final TableField LABELS = createField(DSL.name("labels"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_dashboard.databasechangelog.deployment_id. + */ + public final TableField DEPLOYMENT_ID = createField(DSL.name("deployment_id"), SQLDataType.VARCHAR(10), this, ""); + + private Databasechangelog(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangelog(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.databasechangelog table + * reference + */ + public Databasechangelog(String alias) { + this(DSL.name(alias), DATABASECHANGELOG); + } + + /** + * Create an aliased ervu_dashboard.databasechangelog table + * reference + */ + public Databasechangelog(Name alias) { + this(alias, DATABASECHANGELOG); + } + + /** + * Create a ervu_dashboard.databasechangelog table reference + */ + public Databasechangelog() { + this(DSL.name("databasechangelog"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Databasechangelog as(String alias) { + return new Databasechangelog(DSL.name(alias), this); + } + + @Override + public Databasechangelog as(Name alias) { + return new Databasechangelog(alias, this); + } + + @Override + public Databasechangelog as(Table alias) { + return new Databasechangelog(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(String name) { + return new Databasechangelog(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Name name) { + return new Databasechangelog(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Table name) { + return new Databasechangelog(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition condition) { + return new Databasechangelog(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangeloglock.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangeloglock.java new file mode 100644 index 0000000..341bdbd --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Databasechangeloglock.java @@ -0,0 +1,238 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DatabasechangeloglockRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangeloglock extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * ervu_dashboard.databasechangeloglock + */ + public static final Databasechangeloglock DATABASECHANGELOGLOCK = new Databasechangeloglock(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangeloglockRecord.class; + } + + /** + * The column ervu_dashboard.databasechangeloglock.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangeloglock.locked. + */ + public final TableField LOCKED = createField(DSL.name("locked"), SQLDataType.BOOLEAN.nullable(false), this, ""); + + /** + * The column ervu_dashboard.databasechangeloglock.lockgranted. + */ + public final TableField LOCKGRANTED = createField(DSL.name("lockgranted"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column ervu_dashboard.databasechangeloglock.lockedby. + */ + public final TableField LOCKEDBY = createField(DSL.name("lockedby"), SQLDataType.VARCHAR(255), this, ""); + + private Databasechangeloglock(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangeloglock(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.databasechangeloglock table + * reference + */ + public Databasechangeloglock(String alias) { + this(DSL.name(alias), DATABASECHANGELOGLOCK); + } + + /** + * Create an aliased ervu_dashboard.databasechangeloglock table + * reference + */ + public Databasechangeloglock(Name alias) { + this(alias, DATABASECHANGELOGLOCK); + } + + /** + * Create a ervu_dashboard.databasechangeloglock table + * reference + */ + public Databasechangeloglock() { + this(DSL.name("databasechangeloglock"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.DATABASECHANGELOGLOCK_PKEY; + } + + @Override + public Databasechangeloglock as(String alias) { + return new Databasechangeloglock(DSL.name(alias), this); + } + + @Override + public Databasechangeloglock as(Name alias) { + return new Databasechangeloglock(alias, this); + } + + @Override + public Databasechangeloglock as(Table alias) { + return new Databasechangeloglock(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(String name) { + return new Databasechangeloglock(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Name name) { + return new Databasechangeloglock(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Table name) { + return new Databasechangeloglock(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition condition) { + return new Databasechangeloglock(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disability.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disability.java new file mode 100644 index 0000000..56bf49b --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disability.java @@ -0,0 +1,274 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DisabilityRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * сведения об инвалидности/недееспособности/ограниченной дееспособности + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Disability extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.disability + */ + public static final Disability DISABILITY = new Disability(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DisabilityRecord.class; + } + + /** + * The column ervu_dashboard.disability.disability_id. + */ + public final TableField DISABILITY_ID = createField(DSL.name("disability_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.disability.recruit_id. ссылка на + * гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.disability.disability. сведения об + * инвалидности(true)/недееспособности(false) + */ + public final TableField DISABILITY_ = createField(DSL.name("disability"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, "сведения об инвалидности(true)/недееспособности(false)"); + + /** + * The column ervu_dashboard.disability.organization_name. + * наименование организации, установившей инвалидность/судебного органа + */ + public final TableField ORGANIZATION_NAME = createField(DSL.name("organization_name"), SQLDataType.VARCHAR(300), this, "наименование организации, установившей инвалидность/судебного органа"); + + /** + * The column ervu_dashboard.disability.start_date. дата + * установления инвалидности/признания гражданина недееспособным + */ + public final TableField START_DATE = createField(DSL.name("start_date"), SQLDataType.DATE, this, "дата установления инвалидности/признания гражданина недееспособным"); + + /** + * The column ervu_dashboard.disability.close_date. дата снятия + * инвалидности/отмены ограничения гражданина в дееспособности + */ + public final TableField CLOSE_DATE = createField(DSL.name("close_date"), SQLDataType.DATE, this, "дата снятия инвалидности/отмены ограничения гражданина в дееспособности"); + + /** + * The column ervu_dashboard.disability.confirmation_date. дата + * подтверждения инвалидности + */ + public final TableField CONFIRMATION_DATE = createField(DSL.name("confirmation_date"), SQLDataType.DATE, this, "дата подтверждения инвалидности"); + + /** + * The column ervu_dashboard.disability.re_examination_date. + * дата переосвидетельствования по инвалидности + */ + public final TableField RE_EXAMINATION_DATE = createField(DSL.name("re_examination_date"), SQLDataType.DATE, this, "дата переосвидетельствования по инвалидности"); + + /** + * The column ervu_dashboard.disability.disability_group. + * группа инвалидности + */ + public final TableField DISABILITY_GROUP = createField(DSL.name("disability_group"), SQLDataType.VARCHAR(30), this, "группа инвалидности"); + + private Disability(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Disability(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("сведения об инвалидности/недееспособности/ограниченной дееспособности"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.disability table reference + */ + public Disability(String alias) { + this(DSL.name(alias), DISABILITY); + } + + /** + * Create an aliased ervu_dashboard.disability table reference + */ + public Disability(Name alias) { + this(alias, DISABILITY); + } + + /** + * Create a ervu_dashboard.disability table reference + */ + public Disability() { + this(DSL.name("disability"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_DISABILITY; + } + + @Override + public Disability as(String alias) { + return new Disability(DSL.name(alias), this); + } + + @Override + public Disability as(Name alias) { + return new Disability(alias, this); + } + + @Override + public Disability as(Table alias) { + return new Disability(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Disability rename(String name) { + return new Disability(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Disability rename(Name name) { + return new Disability(name, null); + } + + /** + * Rename this table + */ + @Override + public Disability rename(Table name) { + return new Disability(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disability where(Condition condition) { + return new Disability(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disability where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disability where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disability where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disability where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disability where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disability where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disability where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disability whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disability whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disease.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disease.java new file mode 100644 index 0000000..c396937 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Disease.java @@ -0,0 +1,255 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DiseaseRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * сведения о заболеваниях гражданина + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Disease extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.disease + */ + public static final Disease DISEASE = new Disease(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DiseaseRecord.class; + } + + /** + * The column ervu_dashboard.disease.disease_id. + */ + public final TableField DISEASE_ID = createField(DSL.name("disease_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.disease.recruit_id. ссылка на + * гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.disease.code. код заболевания + */ + public final TableField CODE = createField(DSL.name("code"), SQLDataType.VARCHAR, this, "код заболевания"); + + /** + * The column ervu_dashboard.disease.name. наименование + * заболевания + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR, this, "наименование заболевания"); + + /** + * The column ervu_dashboard.disease.reg_date. дата постановки + * диагноза + */ + public final TableField REG_DATE = createField(DSL.name("reg_date"), SQLDataType.DATE, this, "дата постановки диагноза"); + + /** + * The column ervu_dashboard.disease.registered. поставлен на + * учет по заболеванию + */ + public final TableField REGISTERED = createField(DSL.name("registered"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, "поставлен на учет по заболеванию"); + + private Disease(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Disease(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("сведения о заболеваниях гражданина"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.disease table reference + */ + public Disease(String alias) { + this(DSL.name(alias), DISEASE); + } + + /** + * Create an aliased ervu_dashboard.disease table reference + */ + public Disease(Name alias) { + this(alias, DISEASE); + } + + /** + * Create a ervu_dashboard.disease table reference + */ + public Disease() { + this(DSL.name("disease"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_DISEASE; + } + + @Override + public Disease as(String alias) { + return new Disease(DSL.name(alias), this); + } + + @Override + public Disease as(Name alias) { + return new Disease(alias, this); + } + + @Override + public Disease as(Table alias) { + return new Disease(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Disease rename(String name) { + return new Disease(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Disease rename(Name name) { + return new Disease(name, null); + } + + /** + * Rename this table + */ + @Override + public Disease rename(Table name) { + return new Disease(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disease where(Condition condition) { + return new Disease(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disease where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disease where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disease where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disease where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disease where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disease where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Disease where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disease whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Disease whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/DriversLicence.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/DriversLicence.java new file mode 100644 index 0000000..44df617 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/DriversLicence.java @@ -0,0 +1,295 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.DriversLicenceRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * удостоверение водительское/тракториста-машиниста + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DriversLicence extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.drivers_licence + */ + public static final DriversLicence DRIVERS_LICENCE = new DriversLicence(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DriversLicenceRecord.class; + } + + /** + * The column + * ervu_dashboard.drivers_licence.drivers_licence_id. + */ + public final TableField DRIVERS_LICENCE_ID = createField(DSL.name("drivers_licence_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.drivers_licence.recruit_id. ссылка + * на гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.drivers_licence.tractor_driver. + * удостоверение тракториста + */ + public final TableField TRACTOR_DRIVER = createField(DSL.name("tractor_driver"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, "удостоверение тракториста"); + + /** + * The column ervu_dashboard.drivers_licence.licence_series. + * серия + */ + public final TableField LICENCE_SERIES = createField(DSL.name("licence_series"), SQLDataType.VARCHAR(50), this, "серия"); + + /** + * The column ervu_dashboard.drivers_licence.licence_number. + * номер + */ + public final TableField LICENCE_NUMBER = createField(DSL.name("licence_number"), SQLDataType.VARCHAR(50), this, "номер"); + + /** + * The column ervu_dashboard.drivers_licence.start_date. дата + * выдачи + */ + public final TableField START_DATE = createField(DSL.name("start_date"), SQLDataType.DATE, this, "дата выдачи"); + + /** + * The column ervu_dashboard.drivers_licence.close_date. дата + * окончания действия + */ + public final TableField CLOSE_DATE = createField(DSL.name("close_date"), SQLDataType.DATE, this, "дата окончания действия"); + + /** + * The column ervu_dashboard.drivers_licence.categories. + * категории + */ + public final TableField CATEGORIES = createField(DSL.name("categories"), SQLDataType.VARCHAR(50), this, "категории"); + + /** + * The column ervu_dashboard.drivers_licence.status. статус + * удостоверения + */ + public final TableField STATUS = createField(DSL.name("status"), SQLDataType.VARCHAR(50), this, "статус удостоверения"); + + /** + * The column ervu_dashboard.drivers_licence.replacement_date. + * дата замены + */ + public final TableField REPLACEMENT_DATE = createField(DSL.name("replacement_date"), SQLDataType.DATE, this, "дата замены"); + + /** + * The column ervu_dashboard.drivers_licence.return_date. дата + * возврата + */ + public final TableField RETURN_DATE = createField(DSL.name("return_date"), SQLDataType.DATE, this, "дата возврата"); + + /** + * The column ervu_dashboard.drivers_licence.seizure_date. дата + * изъятия + */ + public final TableField SEIZURE_DATE = createField(DSL.name("seizure_date"), SQLDataType.DATE, this, "дата изъятия"); + + private DriversLicence(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private DriversLicence(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("удостоверение водительское/тракториста-машиниста"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.drivers_licence table + * reference + */ + public DriversLicence(String alias) { + this(DSL.name(alias), DRIVERS_LICENCE); + } + + /** + * Create an aliased ervu_dashboard.drivers_licence table + * reference + */ + public DriversLicence(Name alias) { + this(alias, DRIVERS_LICENCE); + } + + /** + * Create a ervu_dashboard.drivers_licence table reference + */ + public DriversLicence() { + this(DSL.name("drivers_licence"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_DRIVERS_LICENCE; + } + + @Override + public DriversLicence as(String alias) { + return new DriversLicence(DSL.name(alias), this); + } + + @Override + public DriversLicence as(Name alias) { + return new DriversLicence(alias, this); + } + + @Override + public DriversLicence as(Table alias) { + return new DriversLicence(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public DriversLicence rename(String name) { + return new DriversLicence(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public DriversLicence rename(Name name) { + return new DriversLicence(name, null); + } + + /** + * Rename this table + */ + @Override + public DriversLicence rename(Table name) { + return new DriversLicence(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriversLicence where(Condition condition) { + return new DriversLicence(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriversLicence where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriversLicence where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriversLicence where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriversLicence where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriversLicence where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriversLicence where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriversLicence where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriversLicence whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriversLicence whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/MedicalAuthorities.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/MedicalAuthorities.java new file mode 100644 index 0000000..ec6c13d --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/MedicalAuthorities.java @@ -0,0 +1,259 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.MedicalAuthoritiesRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * сведения о гражданах, стоящих на учете в ПНД/по ВИЧ + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MedicalAuthorities extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.medical_authorities + */ + public static final MedicalAuthorities MEDICAL_AUTHORITIES = new MedicalAuthorities(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return MedicalAuthoritiesRecord.class; + } + + /** + * The column + * ervu_dashboard.medical_authorities.medical_authorities_id. + */ + public final TableField MEDICAL_AUTHORITIES_ID = createField(DSL.name("medical_authorities_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.medical_authorities.recruit_id. + * ссылка на гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.medical_authorities.start_date. + * дата постановки на учет + */ + public final TableField START_DATE = createField(DSL.name("start_date"), SQLDataType.DATE, this, "дата постановки на учет"); + + /** + * The column ervu_dashboard.medical_authorities.close_date. + * дата снятия с учета + */ + public final TableField CLOSE_DATE = createField(DSL.name("close_date"), SQLDataType.DATE, this, "дата снятия с учета"); + + /** + * The column ervu_dashboard.medical_authorities.change_date. + * дата планового срока пересмотра диагноза + */ + public final TableField CHANGE_DATE = createField(DSL.name("change_date"), SQLDataType.DATE, this, "дата планового срока пересмотра диагноза"); + + /** + * The column ervu_dashboard.medical_authorities.hiv. на учете + * по ВИЧ(true) или в ПНД(false) + */ + public final TableField HIV = createField(DSL.name("hiv"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, "на учете по ВИЧ(true) или в ПНД(false)"); + + private MedicalAuthorities(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private MedicalAuthorities(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("сведения о гражданах, стоящих на учете в ПНД/по ВИЧ"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.medical_authorities table + * reference + */ + public MedicalAuthorities(String alias) { + this(DSL.name(alias), MEDICAL_AUTHORITIES); + } + + /** + * Create an aliased ervu_dashboard.medical_authorities table + * reference + */ + public MedicalAuthorities(Name alias) { + this(alias, MEDICAL_AUTHORITIES); + } + + /** + * Create a ervu_dashboard.medical_authorities table reference + */ + public MedicalAuthorities() { + this(DSL.name("medical_authorities"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_MEDICAL_AUTHORITIES; + } + + @Override + public MedicalAuthorities as(String alias) { + return new MedicalAuthorities(DSL.name(alias), this); + } + + @Override + public MedicalAuthorities as(Name alias) { + return new MedicalAuthorities(alias, this); + } + + @Override + public MedicalAuthorities as(Table alias) { + return new MedicalAuthorities(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public MedicalAuthorities rename(String name) { + return new MedicalAuthorities(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public MedicalAuthorities rename(Name name) { + return new MedicalAuthorities(name, null); + } + + /** + * Rename this table + */ + @Override + public MedicalAuthorities rename(Table name) { + return new MedicalAuthorities(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MedicalAuthorities where(Condition condition) { + return new MedicalAuthorities(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MedicalAuthorities where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MedicalAuthorities where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MedicalAuthorities where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MedicalAuthorities where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MedicalAuthorities where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MedicalAuthorities where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MedicalAuthorities where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MedicalAuthorities whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MedicalAuthorities whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Property.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Property.java new file mode 100644 index 0000000..7247fc8 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Property.java @@ -0,0 +1,297 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.PropertyRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.enums.TypePropertyType; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * сведения об имуществе + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Property extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.property + */ + public static final Property PROPERTY = new Property(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return PropertyRecord.class; + } + + /** + * The column ervu_dashboard.property.property_id. + */ + public final TableField PROPERTY_ID = createField(DSL.name("property_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.property.recruit_id. ссылка на + * гражданина (citizen) + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)"); + + /** + * The column ervu_dashboard.property.type_property. тип + * имущества: недвижимое/наземный/воздушный/водный транспорт + */ + public final TableField TYPE_PROPERTY = createField(DSL.name("type_property"), SQLDataType.VARCHAR.asEnumDataType(TypePropertyType.class), this, "тип имущества: недвижимое/наземный/воздушный/водный транспорт"); + + /** + * The column ervu_dashboard.property.start_date. дата + * регистрации права владения + */ + public final TableField START_DATE = createField(DSL.name("start_date"), SQLDataType.DATE, this, "дата регистрации права владения"); + + /** + * The column ervu_dashboard.property.close_date. дата + * прекращения права владения + */ + public final TableField CLOSE_DATE = createField(DSL.name("close_date"), SQLDataType.DATE, this, "дата прекращения права владения"); + + /** + * The column ervu_dashboard.property.vehicle_type. вид + * транспортного средства + */ + public final TableField VEHICLE_TYPE = createField(DSL.name("vehicle_type"), SQLDataType.VARCHAR(100), this, "вид транспортного средства"); + + /** + * The column ervu_dashboard.property.vehicle_category. + * категория транспортного средства + */ + public final TableField VEHICLE_CATEGORY = createField(DSL.name("vehicle_category"), SQLDataType.VARCHAR(100), this, "категория транспортного средства"); + + /** + * The column ervu_dashboard.property.address. адрес объекта + * недвижимости + */ + public final TableField ADDRESS = createField(DSL.name("address"), SQLDataType.CLOB, this, "адрес объекта недвижимости"); + + /** + * The column ervu_dashboard.property.kind_right. вид права + */ + public final TableField KIND_RIGHT = createField(DSL.name("kind_right"), SQLDataType.VARCHAR(50), this, "вид права"); + + /** + * The column ervu_dashboard.property.issue_year. год выпуска + * транспортного средства + */ + public final TableField ISSUE_YEAR = createField(DSL.name("issue_year"), SQLDataType.VARCHAR(4), this, "год выпуска транспортного средства"); + + /** + * The column ervu_dashboard.property.brand_model. марка, + * модель транспортного средства + */ + public final TableField BRAND_MODEL = createField(DSL.name("brand_model"), SQLDataType.VARCHAR(100), this, "марка, модель транспортного средства"); + + /** + * The column ervu_dashboard.property.reg_plate. + * регистрационный номер + */ + public final TableField REG_PLATE = createField(DSL.name("reg_plate"), SQLDataType.VARCHAR(100), this, "регистрационный номер"); + + /** + * The column ervu_dashboard.property.vin. + */ + public final TableField VIN = createField(DSL.name("vin"), SQLDataType.VARCHAR(100), this, ""); + + private Property(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Property(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("сведения об имуществе"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.property table reference + */ + public Property(String alias) { + this(DSL.name(alias), PROPERTY); + } + + /** + * Create an aliased ervu_dashboard.property table reference + */ + public Property(Name alias) { + this(alias, PROPERTY); + } + + /** + * Create a ervu_dashboard.property table reference + */ + public Property() { + this(DSL.name("property"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_PROPERTY; + } + + @Override + public Property as(String alias) { + return new Property(DSL.name(alias), this); + } + + @Override + public Property as(Name alias) { + return new Property(alias, this); + } + + @Override + public Property as(Table alias) { + return new Property(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Property rename(String name) { + return new Property(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Property rename(Name name) { + return new Property(name, null); + } + + /** + * Rename this table + */ + @Override + public Property rename(Table name) { + return new Property(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Property where(Condition condition) { + return new Property(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Property where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Property where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Property where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Property where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Property where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Property where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Property where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Property whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Property whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/PubRecruitment.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/PubRecruitment.java new file mode 100644 index 0000000..1955b06 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/PubRecruitment.java @@ -0,0 +1,367 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.MainProfile.MainProfilePath; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReasonsAppeal.ReasonsAppealPath; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReviewRating.ReviewRatingPath; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.TopicAppeal.TopicAppealPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.PubRecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationComplaint.ConsiderationComplaintPath; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.ForeignKey; +import org.jooq.InverseForeignKey; +import org.jooq.Name; +import org.jooq.Path; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.Record; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class PubRecruitment extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.pub_recruitment + */ + public static final PubRecruitment PUB_RECRUITMENT = new PubRecruitment(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return PubRecruitmentRecord.class; + } + + /** + * The column ervu_dashboard.pub_recruitment.idm_id. + */ + public final TableField IDM_ID = createField(DSL.name("idm_id"), SQLDataType.VARCHAR(256), this, ""); + + /** + * The column ervu_dashboard.pub_recruitment.parent_id. + */ + public final TableField PARENT_ID = createField(DSL.name("parent_id"), SQLDataType.VARCHAR, this, ""); + + /** + * The column ervu_dashboard.pub_recruitment.military_code. + */ + public final TableField MILITARY_CODE = createField(DSL.name("military_code"), SQLDataType.VARCHAR, this, ""); + + /** + * The column ervu_dashboard.pub_recruitment.shortname. + */ + public final TableField SHORTNAME = createField(DSL.name("shortname"), SQLDataType.VARCHAR.nullable(false), this, ""); + + /** + * The column ervu_dashboard.pub_recruitment.fullname. + */ + public final TableField FULLNAME = createField(DSL.name("fullname"), SQLDataType.VARCHAR.nullable(false), this, ""); + + /** + * The column ervu_dashboard.pub_recruitment.code. + */ + public final TableField CODE = createField(DSL.name("code"), SQLDataType.VARCHAR(64), this, ""); + + /** + * The column ervu_dashboard.pub_recruitment.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column ervu_dashboard.pub_recruitment.sort. + */ + public final TableField SORT = createField(DSL.name("sort"), SQLDataType.VARCHAR.nullable(false), this, ""); + + private PubRecruitment(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private PubRecruitment(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.pub_recruitment table + * reference + */ + public PubRecruitment(String alias) { + this(DSL.name(alias), PUB_RECRUITMENT); + } + + /** + * Create an aliased ervu_dashboard.pub_recruitment table + * reference + */ + public PubRecruitment(Name alias) { + this(alias, PUB_RECRUITMENT); + } + + /** + * Create a ervu_dashboard.pub_recruitment table reference + */ + public PubRecruitment() { + this(DSL.name("pub_recruitment"), null); + } + + public PubRecruitment(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, PUB_RECRUITMENT); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class PubRecruitmentPath extends PubRecruitment implements Path { + public PubRecruitmentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private PubRecruitmentPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public PubRecruitmentPath as(String alias) { + return new PubRecruitmentPath(DSL.name(alias), this); + } + + @Override + public PubRecruitmentPath as(Name alias) { + return new PubRecruitmentPath(alias, this); + } + + @Override + public PubRecruitmentPath as(Table alias) { + return new PubRecruitmentPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PUB_RECRUITMENT_PKEY; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.RECRUITMENT_IDM_ID_KEY); + } + + private transient MainProfilePath _mainProfile; + + /** + * Get the implicit to-many join path to the + * appeals.main_profile table + */ + public MainProfilePath mainProfile() { + if (_mainProfile == null) + _mainProfile = new MainProfilePath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.MAIN_PROFILE__MAIN_PROFILE_FK1.getInverseKey()); + + return _mainProfile; + } + + private transient ReasonsAppealPath _reasonsAppeal; + + /** + * Get the implicit to-many join path to the + * appeals.reasons_appeal table + */ + public ReasonsAppealPath reasonsAppeal() { + if (_reasonsAppeal == null) + _reasonsAppeal = new ReasonsAppealPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.REASONS_APPEAL__REASONS_APPEAL_FK1.getInverseKey()); + + return _reasonsAppeal; + } + + private transient ReviewRatingPath _reviewRating; + + /** + * Get the implicit to-many join path to the + * appeals.review_rating table + */ + public ReviewRatingPath reviewRating() { + if (_reviewRating == null) + _reviewRating = new ReviewRatingPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.REVIEW_RATING__REVIEW_RATING_FK1.getInverseKey()); + + return _reviewRating; + } + + private transient TopicAppealPath _topicAppeal; + + /** + * Get the implicit to-many join path to the + * appeals.topic_appeal table + */ + public TopicAppealPath topicAppeal() { + if (_topicAppeal == null) + _topicAppeal = new TopicAppealPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.TOPIC_APPEAL__TOPIC_APPEAL_FK1.getInverseKey()); + + return _topicAppeal; + } + + private transient ConsiderationComplaintPath _considerationComplaint; + + /** + * Get the implicit to-many join path to the + * ratings.consideration_complaint table + */ + public ConsiderationComplaintPath considerationComplaint() { + if (_considerationComplaint == null) + _considerationComplaint = new ConsiderationComplaintPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.CONSIDERATION_COMPLAINT__CONSIDERATION_COMPLAINT_FK1.getInverseKey()); + + return _considerationComplaint; + } + + @Override + public PubRecruitment as(String alias) { + return new PubRecruitment(DSL.name(alias), this); + } + + @Override + public PubRecruitment as(Name alias) { + return new PubRecruitment(alias, this); + } + + @Override + public PubRecruitment as(Table alias) { + return new PubRecruitment(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public PubRecruitment rename(String name) { + return new PubRecruitment(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public PubRecruitment rename(Name name) { + return new PubRecruitment(name, null); + } + + /** + * Rename this table + */ + @Override + public PubRecruitment rename(Table name) { + return new PubRecruitment(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PubRecruitment where(Condition condition) { + return new PubRecruitment(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PubRecruitment where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PubRecruitment where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PubRecruitment where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PubRecruitment where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PubRecruitment where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PubRecruitment where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PubRecruitment where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PubRecruitment whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PubRecruitment whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Recruitment.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Recruitment.java similarity index 60% rename from backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Recruitment.java rename to backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Recruitment.java index bbbe3d7..8a8b9a6 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Recruitment.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Recruitment.java @@ -1,20 +1,18 @@ /* * This file is generated by jOOQ. */ -package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables; +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; -import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.RecruitmentCampaign; -import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records.RecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.RecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.AppearSubppoena.AppearSubppoenaPath; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConscriptionInfo.ConscriptionInfoPath; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Appeals.AppealsPath; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.PostponementInfo.PostponementInfoPath; -import java.math.BigDecimal; -import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -48,7 +46,7 @@ public class Recruitment extends TableImpl { private static final long serialVersionUID = 1L; /** - * The reference instance of recruitment_campaign.recruitment + * The reference instance of ervu_dashboard.recruitment */ public static final Recruitment RECRUITMENT = new Recruitment(); @@ -61,61 +59,34 @@ public class Recruitment extends TableImpl { } /** - * The column recruitment_campaign.recruitment.id_recruitment. + * The column ervu_dashboard.recruitment.id. */ - public final TableField ID_RECRUITMENT = createField(DSL.name("id_recruitment"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + public final TableField ID = createField(DSL.name("id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** - * The column - * recruitment_campaign.recruitment.suitable_recruit. Подходят - * под призыв + * The column ervu_dashboard.recruitment.shortname. */ - public final TableField SUITABLE_RECRUIT = createField(DSL.name("suitable_recruit"), SQLDataType.NUMERIC, this, "Подходят под призыв"); + public final TableField SHORTNAME = createField(DSL.name("shortname"), SQLDataType.CHAR(300), this, ""); /** - * The column - * recruitment_campaign.recruitment.postponement_have_right. - * Имеют право на отсрочку + * The column ervu_dashboard.recruitment.idm_id. */ - public final TableField POSTPONEMENT_HAVE_RIGHT = createField(DSL.name("postponement_have_right"), SQLDataType.NUMERIC, this, "Имеют право на отсрочку"); + public final TableField IDM_ID = createField(DSL.name("idm_id"), SQLDataType.VARCHAR(36), this, ""); /** - * The column - * recruitment_campaign.recruitment.postponement_granted. - * Предоставлена отсрочка + * The column ervu_dashboard.recruitment.code. */ - public final TableField POSTPONEMENT_GRANTED = createField(DSL.name("postponement_granted"), SQLDataType.NUMERIC, this, "Предоставлена отсрочка"); + public final TableField CODE = createField(DSL.name("code"), SQLDataType.CHAR(300), this, ""); /** - * The column recruitment_campaign.recruitment.spring_autumn. - * Осень/Весна + * The column ervu_dashboard.recruitment.parent_id. */ - public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CLOB, this, "Осень/Весна"); + public final TableField PARENT_ID = createField(DSL.name("parent_id"), SQLDataType.CHAR(300), this, ""); /** - * The column recruitment_campaign.recruitment.recording_date. - * Дата записи + * The column ervu_dashboard.recruitment.sort. */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); - - /** - * The column - * recruitment_campaign.recruitment.postponement_have_right_percent. - * Процент имеющих право на отсрочку - */ - public final TableField POSTPONEMENT_HAVE_RIGHT_PERCENT = createField(DSL.name("postponement_have_right_percent"), SQLDataType.NUMERIC, this, "Процент имеющих право на отсрочку"); - - /** - * The column - * recruitment_campaign.recruitment.postponement_granted_percent. - * Процент предоставленных отсрочек - */ - public final TableField POSTPONEMENT_GRANTED_PERCENT = createField(DSL.name("postponement_granted_percent"), SQLDataType.NUMERIC, this, "Процент предоставленных отсрочек"); - - /** - * The column recruitment_campaign.recruitment.recruitment_id. - */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField SORT = createField(DSL.name("sort"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private Recruitment(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -126,23 +97,21 @@ public class Recruitment extends TableImpl { } /** - * Create an aliased recruitment_campaign.recruitment table - * reference + * Create an aliased ervu_dashboard.recruitment table reference */ public Recruitment(String alias) { this(DSL.name(alias), RECRUITMENT); } /** - * Create an aliased recruitment_campaign.recruitment table - * reference + * Create an aliased ervu_dashboard.recruitment table reference */ public Recruitment(Name alias) { this(alias, RECRUITMENT); } /** - * Create a recruitment_campaign.recruitment table reference + * Create a ervu_dashboard.recruitment table reference */ public Recruitment() { this(DSL.name("recruitment"), null); @@ -181,7 +150,7 @@ public class Recruitment extends TableImpl { @Override public Schema getSchema() { - return aliased() ? null : RecruitmentCampaign.RECRUITMENT_CAMPAIGN; + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; } @Override @@ -191,25 +160,59 @@ public class Recruitment extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_RECRUITMENT; + return Keys.RECRUITMENT_PKEY; } - @Override - public List> getReferences() { - return Arrays.asList(Keys.RECRUITMENT__RC_RECRUITMENT_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; + private transient AppearSubppoenaPath _appearSubppoena; /** - * Get the implicit join path to the public.pub_recruitment - * table. + * Get the implicit to-many join path to the + * ratings.appear_subppoena table */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.RECRUITMENT__RC_RECRUITMENT_FK1, null); + public AppearSubppoenaPath appearSubppoena() { + if (_appearSubppoena == null) + _appearSubppoena = new AppearSubppoenaPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_FK1.getInverseKey()); - return _pubRecruitment; + return _appearSubppoena; + } + + private transient ConscriptionInfoPath _conscriptionInfo; + + /** + * Get the implicit to-many join path to the + * ratings.conscription_info table + */ + public ConscriptionInfoPath conscriptionInfo() { + if (_conscriptionInfo == null) + _conscriptionInfo = new ConscriptionInfoPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK1.getInverseKey()); + + return _conscriptionInfo; + } + + private transient AppealsPath _appeals; + + /** + * Get the implicit to-many join path to the + * recruitment_campaign.appeals table + */ + public AppealsPath appeals() { + if (_appeals == null) + _appeals = new AppealsPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.Keys.APPEALS__RC_APPEALS_FK1.getInverseKey()); + + return _appeals; + } + + private transient PostponementInfoPath _postponementInfo; + + /** + * Get the implicit to-many join path to the + * recruitment_campaign.postponement_info table + */ + public PostponementInfoPath postponementInfo() { + if (_postponementInfo == null) + _postponementInfo = new PostponementInfoPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.Keys.POSTPONEMENT_INFO__POSTPONEMENT_INFO_FK1.getInverseKey()); + + return _postponementInfo; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Subpoena.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Subpoena.java similarity index 82% rename from backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Subpoena.java rename to backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Subpoena.java index 099e305..55c9acf 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Subpoena.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/Subpoena.java @@ -1,12 +1,12 @@ /* * This file is generated by jOOQ. */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.SubpoenaRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.SubpoenaRecord; import java.sql.Timestamp; import java.util.Collection; @@ -40,7 +40,7 @@ public class Subpoena extends TableImpl { private static final long serialVersionUID = 1L; /** - * The reference instance of public.subpoena + * The reference instance of ervu_dashboard.subpoena */ public static final Subpoena SUBPOENA = new Subpoena(); @@ -53,62 +53,57 @@ public class Subpoena extends TableImpl { } /** - * The column public.subpoena.subpoena_id. + * The column ervu_dashboard.subpoena.subpoena_id. */ public final TableField SUBPOENA_ID = createField(DSL.name("subpoena_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); /** - * The column public.subpoena.series. + * The column ervu_dashboard.subpoena.series. */ public final TableField SERIES = createField(DSL.name("series"), SQLDataType.VARCHAR(16), this, ""); /** - * The column public.subpoena.number. + * The column ervu_dashboard.subpoena.number. */ public final TableField NUMBER = createField(DSL.name("number"), SQLDataType.VARCHAR(36).nullable(false), this, ""); /** - * The column public.subpoena.id_ern. - */ - public final TableField ID_ERN = createField(DSL.name("id_ern"), SQLDataType.VARCHAR(36), this, ""); - - /** - * The column public.subpoena.create_date. + * The column ervu_dashboard.subpoena.create_date. */ public final TableField CREATE_DATE = createField(DSL.name("create_date"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); /** - * The column public.subpoena.visit_date. + * The column ervu_dashboard.subpoena.visit_date. */ public final TableField VISIT_DATE = createField(DSL.name("visit_date"), SQLDataType.TIMESTAMP(0), this, ""); /** - * The column public.subpoena.send_date. + * The column ervu_dashboard.subpoena.send_date. */ public final TableField SEND_DATE = createField(DSL.name("send_date"), SQLDataType.TIMESTAMP(0), this, ""); /** - * The column public.subpoena.reason_cancelled. + * The column ervu_dashboard.subpoena.reason_cancelled. */ public final TableField REASON_CANCELLED = createField(DSL.name("reason_cancelled"), SQLDataType.VARCHAR(255), this, ""); /** - * The column public.subpoena.recruit_id. + * The column ervu_dashboard.subpoena.recruit_id. */ public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID, this, ""); /** - * The column public.subpoena.department_id. + * The column ervu_dashboard.subpoena.department_id. */ public final TableField DEPARTMENT_ID = createField(DSL.name("department_id"), SQLDataType.UUID, this, ""); /** - * The column public.subpoena.subpoena_status. + * The column ervu_dashboard.subpoena.subpoena_status. */ public final TableField SUBPOENA_STATUS = createField(DSL.name("subpoena_status"), SQLDataType.CLOB, this, ""); /** - * The column public.subpoena.subpoena_reason. + * The column ervu_dashboard.subpoena.subpoena_reason. */ public final TableField SUBPOENA_REASON = createField(DSL.name("subpoena_reason"), SQLDataType.CLOB, this, ""); @@ -121,21 +116,21 @@ public class Subpoena extends TableImpl { } /** - * Create an aliased public.subpoena table reference + * Create an aliased ervu_dashboard.subpoena table reference */ public Subpoena(String alias) { this(DSL.name(alias), SUBPOENA); } /** - * Create an aliased public.subpoena table reference + * Create an aliased ervu_dashboard.subpoena table reference */ public Subpoena(Name alias) { this(alias, SUBPOENA); } /** - * Create a public.subpoena table reference + * Create a ervu_dashboard.subpoena table reference */ public Subpoena() { this(DSL.name("subpoena"), null); @@ -143,7 +138,7 @@ public class Subpoena extends TableImpl { @Override public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/TemporaryMeasures.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/TemporaryMeasures.java new file mode 100644 index 0000000..4c6e2ba --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/TemporaryMeasures.java @@ -0,0 +1,261 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.TemporaryMeasuresRecord; + +import java.sql.Date; +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class TemporaryMeasures extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_dashboard.temporary_measures + */ + public static final TemporaryMeasures TEMPORARY_MEASURES = new TemporaryMeasures(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return TemporaryMeasuresRecord.class; + } + + /** + * The column + * ervu_dashboard.temporary_measures.temporary_measures_id. + */ + public final TableField TEMPORARY_MEASURES_ID = createField(DSL.name("temporary_measures_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ervu_dashboard.temporary_measures.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.VARCHAR.nullable(false), this, ""); + + /** + * The column ervu_dashboard.temporary_measures.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR.nullable(false), this, ""); + + /** + * The column + * ervu_dashboard.temporary_measures.date_application. + */ + public final TableField DATE_APPLICATION = createField(DSL.name("date_application"), SQLDataType.DATE.nullable(false), this, ""); + + /** + * The column + * ervu_dashboard.temporary_measures.withdrawal_date. + */ + public final TableField WITHDRAWAL_DATE = createField(DSL.name("withdrawal_date"), SQLDataType.DATE, this, ""); + + /** + * The column ervu_dashboard.temporary_measures.status. + */ + public final TableField STATUS = createField(DSL.name("status"), SQLDataType.CHAR(100), this, ""); + + /** + * The column ervu_dashboard.temporary_measures.citizen_id. + */ + public final TableField CITIZEN_ID = createField(DSL.name("citizen_id"), SQLDataType.UUID, this, ""); + + private TemporaryMeasures(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private TemporaryMeasures(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_dashboard.temporary_measures table + * reference + */ + public TemporaryMeasures(String alias) { + this(DSL.name(alias), TEMPORARY_MEASURES); + } + + /** + * Create an aliased ervu_dashboard.temporary_measures table + * reference + */ + public TemporaryMeasures(Name alias) { + this(alias, TEMPORARY_MEASURES); + } + + /** + * Create a ervu_dashboard.temporary_measures table reference + */ + public TemporaryMeasures() { + this(DSL.name("temporary_measures"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuDashboard.ERVU_DASHBOARD; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.TEMPORARY_MEASURES_PKEY; + } + + @Override + public TemporaryMeasures as(String alias) { + return new TemporaryMeasures(DSL.name(alias), this); + } + + @Override + public TemporaryMeasures as(Name alias) { + return new TemporaryMeasures(alias, this); + } + + @Override + public TemporaryMeasures as(Table alias) { + return new TemporaryMeasures(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public TemporaryMeasures rename(String name) { + return new TemporaryMeasures(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public TemporaryMeasures rename(Name name) { + return new TemporaryMeasures(name, null); + } + + /** + * Rename this table + */ + @Override + public TemporaryMeasures rename(Table name) { + return new TemporaryMeasures(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TemporaryMeasures where(Condition condition) { + return new TemporaryMeasures(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TemporaryMeasures where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TemporaryMeasures where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TemporaryMeasures where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TemporaryMeasures where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TemporaryMeasures where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TemporaryMeasures where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TemporaryMeasures where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TemporaryMeasures whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TemporaryMeasures whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenChildRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenChildRecord.java new file mode 100644 index 0000000..a355044 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenChildRecord.java @@ -0,0 +1,180 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenChild; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * сведения о детях гражданина + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class CitizenChildRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.citizen_child.citizen_child_id. + */ + public void setCitizenChildId(Long value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.citizen_child_id. + */ + public Long getCitizenChildId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.citizen_child.recruit_id. ссылка + * на гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.recruit_id. ссылка + * на гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.citizen_child.kinship_type. тип + * родственной связи: сын/дочь + */ + public void setKinshipType(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.kinship_type. тип + * родственной связи: сын/дочь + */ + public String getKinshipType() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.citizen_child.full_name. ФИО + */ + public void setFullName(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.full_name. ФИО + */ + public String getFullName() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.citizen_child.birth_date. + */ + public void setBirthDate(Date value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.birth_date. + */ + public Date getBirthDate() { + return (Date) get(4); + } + + /** + * Setter for ervu_dashboard.citizen_child.birth_az_number. + * номер актовой записи о рождении + */ + public void setBirthAzNumber(String value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.birth_az_number. + * номер актовой записи о рождении + */ + public String getBirthAzNumber() { + return (String) get(5); + } + + /** + * Setter for ervu_dashboard.citizen_child.death_date. + */ + public void setDeathDate(Date value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.death_date. + */ + public Date getDeathDate() { + return (Date) get(6); + } + + /** + * Setter for ervu_dashboard.citizen_child.death_az_number. + * номер актовой записи о смерти + */ + public void setDeathAzNumber(String value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.citizen_child.death_az_number. + * номер актовой записи о смерти + */ + public String getDeathAzNumber() { + return (String) get(7); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached CitizenChildRecord + */ + public CitizenChildRecord() { + super(CitizenChild.CITIZEN_CHILD); + } + + /** + * Create a detached, initialised CitizenChildRecord + */ + public CitizenChildRecord(Long citizenChildId, UUID recruitId, String kinshipType, String fullName, Date birthDate, String birthAzNumber, Date deathDate, String deathAzNumber) { + super(CitizenChild.CITIZEN_CHILD); + + setCitizenChildId(citizenChildId); + setRecruitId(recruitId); + setKinshipType(kinshipType); + setFullName(fullName); + setBirthDate(birthDate); + setBirthAzNumber(birthAzNumber); + setDeathDate(deathDate); + setDeathAzNumber(deathAzNumber); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenGuardianshipRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenGuardianshipRecord.java new file mode 100644 index 0000000..ce0da37 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenGuardianshipRecord.java @@ -0,0 +1,133 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenGuardianship; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * сведения о лице, опекаемом или находящемся на попечении + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class CitizenGuardianshipRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * ervu_dashboard.citizen_guardianship.citizen_guardianship_id. + */ + public void setCitizenGuardianshipId(Long value) { + set(0, value); + } + + /** + * Getter for + * ervu_dashboard.citizen_guardianship.citizen_guardianship_id. + */ + public Long getCitizenGuardianshipId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.citizen_guardianship.recruit_id. + * ссылка на гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.citizen_guardianship.recruit_id. + * ссылка на гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.citizen_guardianship.full_name. + * ФИО + */ + public void setFullName(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.citizen_guardianship.full_name. + * ФИО + */ + public String getFullName() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.citizen_guardianship.birth_date. + */ + public void setBirthDate(Date value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.citizen_guardianship.birth_date. + */ + public Date getBirthDate() { + return (Date) get(3); + } + + /** + * Setter for ervu_dashboard.citizen_guardianship.snils. + */ + public void setSnils(String value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.citizen_guardianship.snils. + */ + public String getSnils() { + return (String) get(4); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached CitizenGuardianshipRecord + */ + public CitizenGuardianshipRecord() { + super(CitizenGuardianship.CITIZEN_GUARDIANSHIP); + } + + /** + * Create a detached, initialised CitizenGuardianshipRecord + */ + public CitizenGuardianshipRecord(Long citizenGuardianshipId, UUID recruitId, String fullName, Date birthDate, String snils) { + super(CitizenGuardianship.CITIZEN_GUARDIANSHIP); + + setCitizenGuardianshipId(citizenGuardianshipId); + setRecruitId(recruitId); + setFullName(fullName); + setBirthDate(birthDate); + setSnils(snils); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenRecord.java new file mode 100644 index 0000000..0e483a6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenRecord.java @@ -0,0 +1,703 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Citizen; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class CitizenRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.citizen.residence. Адрес места + * жительства + */ + public void setResidence(String value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.citizen.residence. Адрес места + * жительства + */ + public String getResidence() { + return (String) get(0); + } + + /** + * Setter for ervu_dashboard.citizen.is_registered. Сведения о + * воинском учёте + */ + public void setIsRegistered(String value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.citizen.is_registered. Сведения о + * воинском учёте + */ + public String getIsRegistered() { + return (String) get(1); + } + + /** + * Setter for ervu_dashboard.citizen.passport_series. Серия + * паспорта + */ + public void setPassportSeries(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.citizen.passport_series. Серия + * паспорта + */ + public String getPassportSeries() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.citizen.passport_number. Номер + * паспорта + */ + public void setPassportNumber(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.citizen.passport_number. Номер + * паспорта + */ + public String getPassportNumber() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.citizen.phone. Телефон + */ + public void setPhone(String value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.citizen.phone. Телефон + */ + public String getPhone() { + return (String) get(4); + } + + /** + * Setter for ervu_dashboard.citizen.medical_requirements. + * Медицинские сведения + */ + public void setMedicalRequirements(String value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.citizen.medical_requirements. + * Медицинские сведения + */ + public String getMedicalRequirements() { + return (String) get(5); + } + + /** + * Setter for ervu_dashboard.citizen.deferment_liberation. + * Наличие отсрочки или освобождения от военной службы + */ + public void setDefermentLiberation(String value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.citizen.deferment_liberation. + * Наличие отсрочки или освобождения от военной службы + */ + public String getDefermentLiberation() { + return (String) get(6); + } + + /** + * Setter for ervu_dashboard.citizen.gender. Пол + */ + public void setGender(String value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.citizen.gender. Пол + */ + public String getGender() { + return (String) get(7); + } + + /** + * Setter for ervu_dashboard.citizen.marital_status. Семейное + * положение + */ + public void setMaritalStatus(String value) { + set(8, value); + } + + /** + * Getter for ervu_dashboard.citizen.marital_status. Семейное + * положение + */ + public String getMaritalStatus() { + return (String) get(8); + } + + /** + * Setter for ervu_dashboard.citizen.education. Образование + */ + public void setEducation(String value) { + set(9, value); + } + + /** + * Getter for ervu_dashboard.citizen.education. Образование + */ + public String getEducation() { + return (String) get(9); + } + + /** + * Setter for ervu_dashboard.citizen.employment. Занятость + */ + public void setEmployment(String value) { + set(10, value); + } + + /** + * Getter for ervu_dashboard.citizen.employment. Занятость + */ + public String getEmployment() { + return (String) get(10); + } + + /** + * Setter for ervu_dashboard.citizen.reason_registration. + * Причина постановки на учёт + */ + public void setReasonRegistration(String value) { + set(11, value); + } + + /** + * Getter for ervu_dashboard.citizen.reason_registration. + * Причина постановки на учёт + */ + public String getReasonRegistration() { + return (String) get(11); + } + + /** + * Setter for ervu_dashboard.citizen.driver_license. + * Водительское удостоверение + */ + public void setDriverLicense(String value) { + set(12, value); + } + + /** + * Getter for ervu_dashboard.citizen.driver_license. + * Водительское удостоверение + */ + public String getDriverLicense() { + return (String) get(12); + } + + /** + * Setter for ervu_dashboard.citizen.disability_group. Группа + * инвалидности + */ + public void setDisabilityGroup(String value) { + set(13, value); + } + + /** + * Getter for ervu_dashboard.citizen.disability_group. Группа + * инвалидности + */ + public String getDisabilityGroup() { + return (String) get(13); + } + + /** + * Setter for + * ervu_dashboard.citizen.dispensary_registration_code. Код + * диспансерного учета + */ + public void setDispensaryRegistrationCode(String value) { + set(14, value); + } + + /** + * Getter for + * ervu_dashboard.citizen.dispensary_registration_code. Код + * диспансерного учета + */ + public String getDispensaryRegistrationCode() { + return (String) get(14); + } + + /** + * Setter for ervu_dashboard.citizen.region_birth. Регион места + * рождения + */ + public void setRegionBirth(String value) { + set(15, value); + } + + /** + * Getter for ervu_dashboard.citizen.region_birth. Регион места + * рождения + */ + public String getRegionBirth() { + return (String) get(15); + } + + /** + * Setter for ervu_dashboard.citizen.city_birth. Город места + * рождения + */ + public void setCityBirth(String value) { + set(16, value); + } + + /** + * Getter for ervu_dashboard.citizen.city_birth. Город места + * рождения + */ + public String getCityBirth() { + return (String) get(16); + } + + /** + * Setter for ervu_dashboard.citizen.right_deferment. Имеет + * право на отсрочку + */ + public void setRightDeferment(Boolean value) { + set(17, value); + } + + /** + * Getter for ervu_dashboard.citizen.right_deferment. Имеет + * право на отсрочку + */ + public Boolean getRightDeferment() { + return (Boolean) get(17); + } + + /** + * Setter for ervu_dashboard.citizen.took_break. Воспользовался + * отсрочкой + */ + public void setTookBreak(Boolean value) { + set(18, value); + } + + /** + * Getter for ervu_dashboard.citizen.took_break. Воспользовался + * отсрочкой + */ + public Boolean getTookBreak() { + return (Boolean) get(18); + } + + /** + * Setter for ervu_dashboard.citizen.medic. Является медиком + */ + public void setMedic(Boolean value) { + set(19, value); + } + + /** + * Getter for ervu_dashboard.citizen.medic. Является медиком + */ + public Boolean getMedic() { + return (Boolean) get(19); + } + + /** + * Setter for ervu_dashboard.citizen.sports_category. Имеет + * спортивный разряд/звание + */ + public void setSportsCategory(Boolean value) { + set(20, value); + } + + /** + * Getter for ervu_dashboard.citizen.sports_category. Имеет + * спортивный разряд/звание + */ + public Boolean getSportsCategory() { + return (Boolean) get(20); + } + + /** + * Setter for ervu_dashboard.citizen.tractor_license. Имеет + * удостоверение тракториста + */ + public void setTractorLicense(Boolean value) { + set(21, value); + } + + /** + * Getter for ervu_dashboard.citizen.tractor_license. Имеет + * удостоверение тракториста + */ + public Boolean getTractorLicense() { + return (Boolean) get(21); + } + + /** + * Setter for ervu_dashboard.citizen.is_wanted. Находится в + * розыске + */ + public void setIsWanted(Boolean value) { + set(22, value); + } + + /** + * Getter for ervu_dashboard.citizen.is_wanted. Находится в + * розыске + */ + public Boolean getIsWanted() { + return (Boolean) get(22); + } + + /** + * Setter for ervu_dashboard.citizen.is_in_prison. Находится в + * местах лишения свободы + */ + public void setIsInPrison(Boolean value) { + set(23, value); + } + + /** + * Getter for ervu_dashboard.citizen.is_in_prison. Находится в + * местах лишения свободы + */ + public Boolean getIsInPrison() { + return (Boolean) get(23); + } + + /** + * Setter for ervu_dashboard.citizen.acquired_citizenship. + * Получивший гражданство + */ + public void setAcquiredCitizenship(Boolean value) { + set(24, value); + } + + /** + * Getter for ervu_dashboard.citizen.acquired_citizenship. + * Получивший гражданство + */ + public Boolean getAcquiredCitizenship() { + return (Boolean) get(24); + } + + /** + * Setter for ervu_dashboard.citizen.urgent_service. Признак + * критерия срочной службы + */ + public void setUrgentService(Boolean value) { + set(25, value); + } + + /** + * Getter for ervu_dashboard.citizen.urgent_service. Признак + * критерия срочной службы + */ + public Boolean getUrgentService() { + return (Boolean) get(25); + } + + /** + * Setter for ervu_dashboard.citizen.contract_service. Признак + * критерия контрактной службы + */ + public void setContractService(Boolean value) { + set(26, value); + } + + /** + * Getter for ervu_dashboard.citizen.contract_service. Признак + * критерия контрактной службы + */ + public Boolean getContractService() { + return (Boolean) get(26); + } + + /** + * Setter for ervu_dashboard.citizen.mobilization. Признак + * критерия службы по мобмлизации + */ + public void setMobilization(Boolean value) { + set(27, value); + } + + /** + * Getter for ervu_dashboard.citizen.mobilization. Признак + * критерия службы по мобмлизации + */ + public Boolean getMobilization() { + return (Boolean) get(27); + } + + /** + * Setter for ervu_dashboard.citizen.full_name. + */ + public void setFullName(String value) { + set(28, value); + } + + /** + * Getter for ervu_dashboard.citizen.full_name. + */ + public String getFullName() { + return (String) get(28); + } + + /** + * Setter for ervu_dashboard.citizen.last_name. + */ + public void setLastName(String value) { + set(29, value); + } + + /** + * Getter for ervu_dashboard.citizen.last_name. + */ + public String getLastName() { + return (String) get(29); + } + + /** + * Setter for ervu_dashboard.citizen.first_name. + */ + public void setFirstName(String value) { + set(30, value); + } + + /** + * Getter for ervu_dashboard.citizen.first_name. + */ + public String getFirstName() { + return (String) get(30); + } + + /** + * Setter for ervu_dashboard.citizen.middle_name. + */ + public void setMiddleName(String value) { + set(31, value); + } + + /** + * Getter for ervu_dashboard.citizen.middle_name. + */ + public String getMiddleName() { + return (String) get(31); + } + + /** + * Setter for ervu_dashboard.citizen.age. + */ + public void setAge(BigDecimal value) { + set(32, value); + } + + /** + * Getter for ervu_dashboard.citizen.age. + */ + public BigDecimal getAge() { + return (BigDecimal) get(32); + } + + /** + * Setter for ervu_dashboard.citizen.birth_place. + */ + public void setBirthPlace(String value) { + set(33, value); + } + + /** + * Getter for ervu_dashboard.citizen.birth_place. + */ + public String getBirthPlace() { + return (String) get(33); + } + + /** + * Setter for ervu_dashboard.citizen.number_children. + */ + public void setNumberChildren(BigDecimal value) { + set(34, value); + } + + /** + * Getter for ervu_dashboard.citizen.number_children. + */ + public BigDecimal getNumberChildren() { + return (BigDecimal) get(34); + } + + /** + * Setter for ervu_dashboard.citizen.birth_date. + */ + public void setBirthDate(Date value) { + set(35, value); + } + + /** + * Getter for ervu_dashboard.citizen.birth_date. + */ + public Date getBirthDate() { + return (Date) get(35); + } + + /** + * Setter for ervu_dashboard.citizen.recruit_id. id рекрута из + * БД ЕРВУ + */ + public void setRecruitId(UUID value) { + set(36, value); + } + + /** + * Getter for ervu_dashboard.citizen.recruit_id. id рекрута из + * БД ЕРВУ + */ + public UUID getRecruitId() { + return (UUID) get(36); + } + + /** + * Setter for ervu_dashboard.citizen.recruitment_id. + */ + public void setRecruitmentId(String value) { + set(37, value); + } + + /** + * Getter for ervu_dashboard.citizen.recruitment_id. + */ + public String getRecruitmentId() { + return (String) get(37); + } + + /** + * Setter for ervu_dashboard.citizen.issue_date. + */ + public void setIssueDate(Date value) { + set(38, value); + } + + /** + * Getter for ervu_dashboard.citizen.issue_date. + */ + public Date getIssueDate() { + return (Date) get(38); + } + + /** + * Setter for ervu_dashboard.citizen.number_children_18_old. + */ + public void setNumberChildren_18Old(BigDecimal value) { + set(39, value); + } + + /** + * Getter for ervu_dashboard.citizen.number_children_18_old. + */ + public BigDecimal getNumberChildren_18Old() { + return (BigDecimal) get(39); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached CitizenRecord + */ + public CitizenRecord() { + super(Citizen.CITIZEN); + } + + /** + * Create a detached, initialised CitizenRecord + */ + public CitizenRecord(String residence, String isRegistered, String passportSeries, String passportNumber, String phone, String medicalRequirements, String defermentLiberation, String gender, String maritalStatus, String education, String employment, String reasonRegistration, String driverLicense, String disabilityGroup, String dispensaryRegistrationCode, String regionBirth, String cityBirth, Boolean rightDeferment, Boolean tookBreak, Boolean medic, Boolean sportsCategory, Boolean tractorLicense, Boolean isWanted, Boolean isInPrison, Boolean acquiredCitizenship, Boolean urgentService, Boolean contractService, Boolean mobilization, String fullName, String lastName, String firstName, String middleName, BigDecimal age, String birthPlace, BigDecimal numberChildren, Date birthDate, UUID recruitId, String recruitmentId, Date issueDate, BigDecimal numberChildren_18Old) { + super(Citizen.CITIZEN); + + setResidence(residence); + setIsRegistered(isRegistered); + setPassportSeries(passportSeries); + setPassportNumber(passportNumber); + setPhone(phone); + setMedicalRequirements(medicalRequirements); + setDefermentLiberation(defermentLiberation); + setGender(gender); + setMaritalStatus(maritalStatus); + setEducation(education); + setEmployment(employment); + setReasonRegistration(reasonRegistration); + setDriverLicense(driverLicense); + setDisabilityGroup(disabilityGroup); + setDispensaryRegistrationCode(dispensaryRegistrationCode); + setRegionBirth(regionBirth); + setCityBirth(cityBirth); + setRightDeferment(rightDeferment); + setTookBreak(tookBreak); + setMedic(medic); + setSportsCategory(sportsCategory); + setTractorLicense(tractorLicense); + setIsWanted(isWanted); + setIsInPrison(isInPrison); + setAcquiredCitizenship(acquiredCitizenship); + setUrgentService(urgentService); + setContractService(contractService); + setMobilization(mobilization); + setFullName(fullName); + setLastName(lastName); + setFirstName(firstName); + setMiddleName(middleName); + setAge(age); + setBirthPlace(birthPlace); + setNumberChildren(numberChildren); + setBirthDate(birthDate); + setRecruitId(recruitId); + setRecruitmentId(recruitmentId); + setIssueDate(issueDate); + setNumberChildren_18Old(numberChildren_18Old); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenSpouseRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenSpouseRecord.java new file mode 100644 index 0000000..207da7b --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/CitizenSpouseRecord.java @@ -0,0 +1,246 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.CitizenSpouse; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * сведения о супруге (бывшей/ем супруге) гражданина + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class CitizenSpouseRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.citizen_spouse.citizen_spouse_id. + */ + public void setCitizenSpouseId(Long value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.citizen_spouse_id. + */ + public Long getCitizenSpouseId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.recruit_id. ссылка + * на гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.recruit_id. ссылка + * на гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.kinship_type. тип + * родственной связи: супруг/бывший супруг + */ + public void setKinshipType(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.kinship_type. тип + * родственной связи: супруг/бывший супруг + */ + public String getKinshipType() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.full_name. ФИО + */ + public void setFullName(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.full_name. ФИО + */ + public String getFullName() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.birth_date. + */ + public void setBirthDate(Date value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.birth_date. + */ + public Date getBirthDate() { + return (Date) get(4); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.death_az_number. + * номер актовой записи о смерти + */ + public void setDeathAzNumber(String value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.death_az_number. + * номер актовой записи о смерти + */ + public String getDeathAzNumber() { + return (String) get(5); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.death_date. + */ + public void setDeathDate(Date value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.death_date. + */ + public Date getDeathDate() { + return (Date) get(6); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.marriage_az_number. + * номер актовой записи о браке + */ + public void setMarriageAzNumber(String value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.marriage_az_number. + * номер актовой записи о браке + */ + public String getMarriageAzNumber() { + return (String) get(7); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.marriage_date. + */ + public void setMarriageDate(Date value) { + set(8, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.marriage_date. + */ + public Date getMarriageDate() { + return (Date) get(8); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.divorce_az_number. + * номер актовой записи о расторжении брака + */ + public void setDivorceAzNumber(String value) { + set(9, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.divorce_az_number. + * номер актовой записи о расторжении брака + */ + public String getDivorceAzNumber() { + return (String) get(9); + } + + /** + * Setter for ervu_dashboard.citizen_spouse.divorce_date. + */ + public void setDivorceDate(Date value) { + set(10, value); + } + + /** + * Getter for ervu_dashboard.citizen_spouse.divorce_date. + */ + public Date getDivorceDate() { + return (Date) get(10); + } + + /** + * Setter for + * ervu_dashboard.citizen_spouse.information_excluded. сведения + * о супруге исключены + */ + public void setInformationExcluded(Boolean value) { + set(11, value); + } + + /** + * Getter for + * ervu_dashboard.citizen_spouse.information_excluded. сведения + * о супруге исключены + */ + public Boolean getInformationExcluded() { + return (Boolean) get(11); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached CitizenSpouseRecord + */ + public CitizenSpouseRecord() { + super(CitizenSpouse.CITIZEN_SPOUSE); + } + + /** + * Create a detached, initialised CitizenSpouseRecord + */ + public CitizenSpouseRecord(Long citizenSpouseId, UUID recruitId, String kinshipType, String fullName, Date birthDate, String deathAzNumber, Date deathDate, String marriageAzNumber, Date marriageDate, String divorceAzNumber, Date divorceDate, Boolean informationExcluded) { + super(CitizenSpouse.CITIZEN_SPOUSE); + + setCitizenSpouseId(citizenSpouseId); + setRecruitId(recruitId); + setKinshipType(kinshipType); + setFullName(fullName); + setBirthDate(birthDate); + setDeathAzNumber(deathAzNumber); + setDeathDate(deathDate); + setMarriageAzNumber(marriageAzNumber); + setMarriageDate(marriageDate); + setDivorceAzNumber(divorceAzNumber); + setDivorceDate(divorceDate); + setInformationExcluded(informationExcluded); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangelogRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangelogRecord.java new file mode 100644 index 0000000..ebc373d --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangelogRecord.java @@ -0,0 +1,251 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Databasechangelog; + +import java.sql.Timestamp; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangelogRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.databasechangelog.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for ervu_dashboard.databasechangelog.author. + */ + public void setAuthor(String value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.author. + */ + public String getAuthor() { + return (String) get(1); + } + + /** + * Setter for ervu_dashboard.databasechangelog.filename. + */ + public void setFilename(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.filename. + */ + public String getFilename() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.databasechangelog.dateexecuted. + */ + public void setDateexecuted(Timestamp value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.dateexecuted. + */ + public Timestamp getDateexecuted() { + return (Timestamp) get(3); + } + + /** + * Setter for ervu_dashboard.databasechangelog.orderexecuted. + */ + public void setOrderexecuted(Integer value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.orderexecuted. + */ + public Integer getOrderexecuted() { + return (Integer) get(4); + } + + /** + * Setter for ervu_dashboard.databasechangelog.exectype. + */ + public void setExectype(String value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.exectype. + */ + public String getExectype() { + return (String) get(5); + } + + /** + * Setter for ervu_dashboard.databasechangelog.md5sum. + */ + public void setMd5sum(String value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.md5sum. + */ + public String getMd5sum() { + return (String) get(6); + } + + /** + * Setter for ervu_dashboard.databasechangelog.description. + */ + public void setDescription(String value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.description. + */ + public String getDescription() { + return (String) get(7); + } + + /** + * Setter for ervu_dashboard.databasechangelog.comments. + */ + public void setComments(String value) { + set(8, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.comments. + */ + public String getComments() { + return (String) get(8); + } + + /** + * Setter for ervu_dashboard.databasechangelog.tag. + */ + public void setTag(String value) { + set(9, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.tag. + */ + public String getTag() { + return (String) get(9); + } + + /** + * Setter for ervu_dashboard.databasechangelog.liquibase. + */ + public void setLiquibase(String value) { + set(10, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.liquibase. + */ + public String getLiquibase() { + return (String) get(10); + } + + /** + * Setter for ervu_dashboard.databasechangelog.contexts. + */ + public void setContexts(String value) { + set(11, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.contexts. + */ + public String getContexts() { + return (String) get(11); + } + + /** + * Setter for ervu_dashboard.databasechangelog.labels. + */ + public void setLabels(String value) { + set(12, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.labels. + */ + public String getLabels() { + return (String) get(12); + } + + /** + * Setter for ervu_dashboard.databasechangelog.deployment_id. + */ + public void setDeploymentId(String value) { + set(13, value); + } + + /** + * Getter for ervu_dashboard.databasechangelog.deployment_id. + */ + public String getDeploymentId() { + return (String) get(13); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangelogRecord + */ + public DatabasechangelogRecord() { + super(Databasechangelog.DATABASECHANGELOG); + } + + /** + * Create a detached, initialised DatabasechangelogRecord + */ + public DatabasechangelogRecord(String id, String author, String filename, Timestamp dateexecuted, Integer orderexecuted, String exectype, String md5sum, String description, String comments, String tag, String liquibase, String contexts, String labels, String deploymentId) { + super(Databasechangelog.DATABASECHANGELOG); + + setId(id); + setAuthor(author); + setFilename(filename); + setDateexecuted(dateexecuted); + setOrderexecuted(orderexecuted); + setExectype(exectype); + setMd5sum(md5sum); + setDescription(description); + setComments(comments); + setTag(tag); + setLiquibase(liquibase); + setContexts(contexts); + setLabels(labels); + setDeploymentId(deploymentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangeloglockRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangeloglockRecord.java new file mode 100644 index 0000000..d0c7285 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DatabasechangeloglockRecord.java @@ -0,0 +1,111 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Databasechangeloglock; + +import java.sql.Timestamp; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangeloglockRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.databasechangeloglock.id. + */ + public void setId(Integer value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.databasechangeloglock.id. + */ + public Integer getId() { + return (Integer) get(0); + } + + /** + * Setter for ervu_dashboard.databasechangeloglock.locked. + */ + public void setLocked(Boolean value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.databasechangeloglock.locked. + */ + public Boolean getLocked() { + return (Boolean) get(1); + } + + /** + * Setter for ervu_dashboard.databasechangeloglock.lockgranted. + */ + public void setLockgranted(Timestamp value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.databasechangeloglock.lockgranted. + */ + public Timestamp getLockgranted() { + return (Timestamp) get(2); + } + + /** + * Setter for ervu_dashboard.databasechangeloglock.lockedby. + */ + public void setLockedby(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.databasechangeloglock.lockedby. + */ + public String getLockedby() { + return (String) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord() { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + } + + /** + * Create a detached, initialised DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord(Integer id, Boolean locked, Timestamp lockgranted, String lockedby) { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + + setId(id); + setLocked(locked); + setLockgranted(lockgranted); + setLockedby(lockedby); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DisabilityRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DisabilityRecord.java new file mode 100644 index 0000000..f7b40d6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DisabilityRecord.java @@ -0,0 +1,203 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disability; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * сведения об инвалидности/недееспособности/ограниченной дееспособности + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DisabilityRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.disability.disability_id. + */ + public void setDisabilityId(Long value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.disability.disability_id. + */ + public Long getDisabilityId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.disability.recruit_id. ссылка на + * гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.disability.recruit_id. ссылка на + * гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.disability.disability. сведения об + * инвалидности(true)/недееспособности(false) + */ + public void setDisability(Boolean value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.disability.disability. сведения об + * инвалидности(true)/недееспособности(false) + */ + public Boolean getDisability() { + return (Boolean) get(2); + } + + /** + * Setter for ervu_dashboard.disability.organization_name. + * наименование организации, установившей инвалидность/судебного органа + */ + public void setOrganizationName(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.disability.organization_name. + * наименование организации, установившей инвалидность/судебного органа + */ + public String getOrganizationName() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.disability.start_date. дата + * установления инвалидности/признания гражданина недееспособным + */ + public void setStartDate(Date value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.disability.start_date. дата + * установления инвалидности/признания гражданина недееспособным + */ + public Date getStartDate() { + return (Date) get(4); + } + + /** + * Setter for ervu_dashboard.disability.close_date. дата снятия + * инвалидности/отмены ограничения гражданина в дееспособности + */ + public void setCloseDate(Date value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.disability.close_date. дата снятия + * инвалидности/отмены ограничения гражданина в дееспособности + */ + public Date getCloseDate() { + return (Date) get(5); + } + + /** + * Setter for ervu_dashboard.disability.confirmation_date. дата + * подтверждения инвалидности + */ + public void setConfirmationDate(Date value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.disability.confirmation_date. дата + * подтверждения инвалидности + */ + public Date getConfirmationDate() { + return (Date) get(6); + } + + /** + * Setter for ervu_dashboard.disability.re_examination_date. + * дата переосвидетельствования по инвалидности + */ + public void setReExaminationDate(Date value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.disability.re_examination_date. + * дата переосвидетельствования по инвалидности + */ + public Date getReExaminationDate() { + return (Date) get(7); + } + + /** + * Setter for ervu_dashboard.disability.disability_group. + * группа инвалидности + */ + public void setDisabilityGroup(String value) { + set(8, value); + } + + /** + * Getter for ervu_dashboard.disability.disability_group. + * группа инвалидности + */ + public String getDisabilityGroup() { + return (String) get(8); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DisabilityRecord + */ + public DisabilityRecord() { + super(Disability.DISABILITY); + } + + /** + * Create a detached, initialised DisabilityRecord + */ + public DisabilityRecord(Long disabilityId, UUID recruitId, Boolean disability, String organizationName, Date startDate, Date closeDate, Date confirmationDate, Date reExaminationDate, String disabilityGroup) { + super(Disability.DISABILITY); + + setDisabilityId(disabilityId); + setRecruitId(recruitId); + setDisability(disability); + setOrganizationName(organizationName); + setStartDate(startDate); + setCloseDate(closeDate); + setConfirmationDate(confirmationDate); + setReExaminationDate(reExaminationDate); + setDisabilityGroup(disabilityGroup); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DiseaseRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DiseaseRecord.java new file mode 100644 index 0000000..40a0501 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DiseaseRecord.java @@ -0,0 +1,150 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Disease; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * сведения о заболеваниях гражданина + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DiseaseRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.disease.disease_id. + */ + public void setDiseaseId(Long value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.disease.disease_id. + */ + public Long getDiseaseId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.disease.recruit_id. ссылка на + * гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.disease.recruit_id. ссылка на + * гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.disease.code. код заболевания + */ + public void setCode(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.disease.code. код заболевания + */ + public String getCode() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.disease.name. наименование + * заболевания + */ + public void setName(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.disease.name. наименование + * заболевания + */ + public String getName() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.disease.reg_date. дата постановки + * диагноза + */ + public void setRegDate(Date value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.disease.reg_date. дата постановки + * диагноза + */ + public Date getRegDate() { + return (Date) get(4); + } + + /** + * Setter for ervu_dashboard.disease.registered. поставлен на + * учет по заболеванию + */ + public void setRegistered(Boolean value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.disease.registered. поставлен на + * учет по заболеванию + */ + public Boolean getRegistered() { + return (Boolean) get(5); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DiseaseRecord + */ + public DiseaseRecord() { + super(Disease.DISEASE); + } + + /** + * Create a detached, initialised DiseaseRecord + */ + public DiseaseRecord(Long diseaseId, UUID recruitId, String code, String name, Date regDate, Boolean registered) { + super(Disease.DISEASE); + + setDiseaseId(diseaseId); + setRecruitId(recruitId); + setCode(code); + setName(name); + setRegDate(regDate); + setRegistered(registered); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DriversLicenceRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DriversLicenceRecord.java new file mode 100644 index 0000000..f2a90ed --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/DriversLicenceRecord.java @@ -0,0 +1,256 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.DriversLicence; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * удостоверение водительское/тракториста-машиниста + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DriversLicenceRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * ervu_dashboard.drivers_licence.drivers_licence_id. + */ + public void setDriversLicenceId(Long value) { + set(0, value); + } + + /** + * Getter for + * ervu_dashboard.drivers_licence.drivers_licence_id. + */ + public Long getDriversLicenceId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.drivers_licence.recruit_id. ссылка + * на гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.recruit_id. ссылка + * на гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.drivers_licence.tractor_driver. + * удостоверение тракториста + */ + public void setTractorDriver(Boolean value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.tractor_driver. + * удостоверение тракториста + */ + public Boolean getTractorDriver() { + return (Boolean) get(2); + } + + /** + * Setter for ervu_dashboard.drivers_licence.licence_series. + * серия + */ + public void setLicenceSeries(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.licence_series. + * серия + */ + public String getLicenceSeries() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.drivers_licence.licence_number. + * номер + */ + public void setLicenceNumber(String value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.licence_number. + * номер + */ + public String getLicenceNumber() { + return (String) get(4); + } + + /** + * Setter for ervu_dashboard.drivers_licence.start_date. дата + * выдачи + */ + public void setStartDate(Date value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.start_date. дата + * выдачи + */ + public Date getStartDate() { + return (Date) get(5); + } + + /** + * Setter for ervu_dashboard.drivers_licence.close_date. дата + * окончания действия + */ + public void setCloseDate(Date value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.close_date. дата + * окончания действия + */ + public Date getCloseDate() { + return (Date) get(6); + } + + /** + * Setter for ervu_dashboard.drivers_licence.categories. + * категории + */ + public void setCategories(String value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.categories. + * категории + */ + public String getCategories() { + return (String) get(7); + } + + /** + * Setter for ervu_dashboard.drivers_licence.status. статус + * удостоверения + */ + public void setStatus(String value) { + set(8, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.status. статус + * удостоверения + */ + public String getStatus() { + return (String) get(8); + } + + /** + * Setter for ervu_dashboard.drivers_licence.replacement_date. + * дата замены + */ + public void setReplacementDate(Date value) { + set(9, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.replacement_date. + * дата замены + */ + public Date getReplacementDate() { + return (Date) get(9); + } + + /** + * Setter for ervu_dashboard.drivers_licence.return_date. дата + * возврата + */ + public void setReturnDate(Date value) { + set(10, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.return_date. дата + * возврата + */ + public Date getReturnDate() { + return (Date) get(10); + } + + /** + * Setter for ervu_dashboard.drivers_licence.seizure_date. дата + * изъятия + */ + public void setSeizureDate(Date value) { + set(11, value); + } + + /** + * Getter for ervu_dashboard.drivers_licence.seizure_date. дата + * изъятия + */ + public Date getSeizureDate() { + return (Date) get(11); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DriversLicenceRecord + */ + public DriversLicenceRecord() { + super(DriversLicence.DRIVERS_LICENCE); + } + + /** + * Create a detached, initialised DriversLicenceRecord + */ + public DriversLicenceRecord(Long driversLicenceId, UUID recruitId, Boolean tractorDriver, String licenceSeries, String licenceNumber, Date startDate, Date closeDate, String categories, String status, Date replacementDate, Date returnDate, Date seizureDate) { + super(DriversLicence.DRIVERS_LICENCE); + + setDriversLicenceId(driversLicenceId); + setRecruitId(recruitId); + setTractorDriver(tractorDriver); + setLicenceSeries(licenceSeries); + setLicenceNumber(licenceNumber); + setStartDate(startDate); + setCloseDate(closeDate); + setCategories(categories); + setStatus(status); + setReplacementDate(replacementDate); + setReturnDate(returnDate); + setSeizureDate(seizureDate); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/MedicalAuthoritiesRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/MedicalAuthoritiesRecord.java new file mode 100644 index 0000000..eae76f2 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/MedicalAuthoritiesRecord.java @@ -0,0 +1,154 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.MedicalAuthorities; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * сведения о гражданах, стоящих на учете в ПНД/по ВИЧ + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MedicalAuthoritiesRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * ervu_dashboard.medical_authorities.medical_authorities_id. + */ + public void setMedicalAuthoritiesId(Long value) { + set(0, value); + } + + /** + * Getter for + * ervu_dashboard.medical_authorities.medical_authorities_id. + */ + public Long getMedicalAuthoritiesId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.medical_authorities.recruit_id. + * ссылка на гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.medical_authorities.recruit_id. + * ссылка на гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.medical_authorities.start_date. + * дата постановки на учет + */ + public void setStartDate(Date value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.medical_authorities.start_date. + * дата постановки на учет + */ + public Date getStartDate() { + return (Date) get(2); + } + + /** + * Setter for ervu_dashboard.medical_authorities.close_date. + * дата снятия с учета + */ + public void setCloseDate(Date value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.medical_authorities.close_date. + * дата снятия с учета + */ + public Date getCloseDate() { + return (Date) get(3); + } + + /** + * Setter for ervu_dashboard.medical_authorities.change_date. + * дата планового срока пересмотра диагноза + */ + public void setChangeDate(Date value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.medical_authorities.change_date. + * дата планового срока пересмотра диагноза + */ + public Date getChangeDate() { + return (Date) get(4); + } + + /** + * Setter for ervu_dashboard.medical_authorities.hiv. на учете + * по ВИЧ(true) или в ПНД(false) + */ + public void setHiv(Boolean value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.medical_authorities.hiv. на учете + * по ВИЧ(true) или в ПНД(false) + */ + public Boolean getHiv() { + return (Boolean) get(5); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached MedicalAuthoritiesRecord + */ + public MedicalAuthoritiesRecord() { + super(MedicalAuthorities.MEDICAL_AUTHORITIES); + } + + /** + * Create a detached, initialised MedicalAuthoritiesRecord + */ + public MedicalAuthoritiesRecord(Long medicalAuthoritiesId, UUID recruitId, Date startDate, Date closeDate, Date changeDate, Boolean hiv) { + super(MedicalAuthorities.MEDICAL_AUTHORITIES); + + setMedicalAuthoritiesId(medicalAuthoritiesId); + setRecruitId(recruitId); + setStartDate(startDate); + setCloseDate(closeDate); + setChangeDate(changeDate); + setHiv(hiv); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PropertyRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PropertyRecord.java new file mode 100644 index 0000000..b2a0f84 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PropertyRecord.java @@ -0,0 +1,268 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Property; +import ervu_dashboard.ervu_dashboard.db_beans.public_.enums.TypePropertyType; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * сведения об имуществе + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class PropertyRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.property.property_id. + */ + public void setPropertyId(Long value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.property.property_id. + */ + public Long getPropertyId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.property.recruit_id. ссылка на + * гражданина (citizen) + */ + public void setRecruitId(UUID value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.property.recruit_id. ссылка на + * гражданина (citizen) + */ + public UUID getRecruitId() { + return (UUID) get(1); + } + + /** + * Setter for ervu_dashboard.property.type_property. тип + * имущества: недвижимое/наземный/воздушный/водный транспорт + */ + public void setTypeProperty(TypePropertyType value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.property.type_property. тип + * имущества: недвижимое/наземный/воздушный/водный транспорт + */ + public TypePropertyType getTypeProperty() { + return (TypePropertyType) get(2); + } + + /** + * Setter for ervu_dashboard.property.start_date. дата + * регистрации права владения + */ + public void setStartDate(Date value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.property.start_date. дата + * регистрации права владения + */ + public Date getStartDate() { + return (Date) get(3); + } + + /** + * Setter for ervu_dashboard.property.close_date. дата + * прекращения права владения + */ + public void setCloseDate(Date value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.property.close_date. дата + * прекращения права владения + */ + public Date getCloseDate() { + return (Date) get(4); + } + + /** + * Setter for ervu_dashboard.property.vehicle_type. вид + * транспортного средства + */ + public void setVehicleType(String value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.property.vehicle_type. вид + * транспортного средства + */ + public String getVehicleType() { + return (String) get(5); + } + + /** + * Setter for ervu_dashboard.property.vehicle_category. + * категория транспортного средства + */ + public void setVehicleCategory(String value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.property.vehicle_category. + * категория транспортного средства + */ + public String getVehicleCategory() { + return (String) get(6); + } + + /** + * Setter for ervu_dashboard.property.address. адрес объекта + * недвижимости + */ + public void setAddress(String value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.property.address. адрес объекта + * недвижимости + */ + public String getAddress() { + return (String) get(7); + } + + /** + * Setter for ervu_dashboard.property.kind_right. вид права + */ + public void setKindRight(String value) { + set(8, value); + } + + /** + * Getter for ervu_dashboard.property.kind_right. вид права + */ + public String getKindRight() { + return (String) get(8); + } + + /** + * Setter for ervu_dashboard.property.issue_year. год выпуска + * транспортного средства + */ + public void setIssueYear(String value) { + set(9, value); + } + + /** + * Getter for ervu_dashboard.property.issue_year. год выпуска + * транспортного средства + */ + public String getIssueYear() { + return (String) get(9); + } + + /** + * Setter for ervu_dashboard.property.brand_model. марка, + * модель транспортного средства + */ + public void setBrandModel(String value) { + set(10, value); + } + + /** + * Getter for ervu_dashboard.property.brand_model. марка, + * модель транспортного средства + */ + public String getBrandModel() { + return (String) get(10); + } + + /** + * Setter for ervu_dashboard.property.reg_plate. + * регистрационный номер + */ + public void setRegPlate(String value) { + set(11, value); + } + + /** + * Getter for ervu_dashboard.property.reg_plate. + * регистрационный номер + */ + public String getRegPlate() { + return (String) get(11); + } + + /** + * Setter for ervu_dashboard.property.vin. + */ + public void setVin(String value) { + set(12, value); + } + + /** + * Getter for ervu_dashboard.property.vin. + */ + public String getVin() { + return (String) get(12); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached PropertyRecord + */ + public PropertyRecord() { + super(Property.PROPERTY); + } + + /** + * Create a detached, initialised PropertyRecord + */ + public PropertyRecord(Long propertyId, UUID recruitId, TypePropertyType typeProperty, Date startDate, Date closeDate, String vehicleType, String vehicleCategory, String address, String kindRight, String issueYear, String brandModel, String regPlate, String vin) { + super(Property.PROPERTY); + + setPropertyId(propertyId); + setRecruitId(recruitId); + setTypeProperty(typeProperty); + setStartDate(startDate); + setCloseDate(closeDate); + setVehicleType(vehicleType); + setVehicleCategory(vehicleCategory); + setAddress(address); + setKindRight(kindRight); + setIssueYear(issueYear); + setBrandModel(brandModel); + setRegPlate(regPlate); + setVin(vin); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PubRecruitmentRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PubRecruitmentRecord.java new file mode 100644 index 0000000..3d8e1d2 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/PubRecruitmentRecord.java @@ -0,0 +1,169 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class PubRecruitmentRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.pub_recruitment.idm_id. + */ + public void setIdmId(String value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.idm_id. + */ + public String getIdmId() { + return (String) get(0); + } + + /** + * Setter for ervu_dashboard.pub_recruitment.parent_id. + */ + public void setParentId(String value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.parent_id. + */ + public String getParentId() { + return (String) get(1); + } + + /** + * Setter for ervu_dashboard.pub_recruitment.military_code. + */ + public void setMilitaryCode(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.military_code. + */ + public String getMilitaryCode() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.pub_recruitment.shortname. + */ + public void setShortname(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.shortname. + */ + public String getShortname() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.pub_recruitment.fullname. + */ + public void setFullname(String value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.fullname. + */ + public String getFullname() { + return (String) get(4); + } + + /** + * Setter for ervu_dashboard.pub_recruitment.code. + */ + public void setCode(String value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.code. + */ + public String getCode() { + return (String) get(5); + } + + /** + * Setter for ervu_dashboard.pub_recruitment.id. + */ + public void setId(String value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.id. + */ + public String getId() { + return (String) get(6); + } + + /** + * Setter for ervu_dashboard.pub_recruitment.sort. + */ + public void setSort(String value) { + set(7, value); + } + + /** + * Getter for ervu_dashboard.pub_recruitment.sort. + */ + public String getSort() { + return (String) get(7); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached PubRecruitmentRecord + */ + public PubRecruitmentRecord() { + super(PubRecruitment.PUB_RECRUITMENT); + } + + /** + * Create a detached, initialised PubRecruitmentRecord + */ + public PubRecruitmentRecord(String idmId, String parentId, String militaryCode, String shortname, String fullname, String code, String id, String sort) { + super(PubRecruitment.PUB_RECRUITMENT); + + setIdmId(idmId); + setParentId(parentId); + setMilitaryCode(militaryCode); + setShortname(shortname); + setFullname(fullname); + setCode(code); + setId(id); + setSort(sort); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/RecruitmentRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/RecruitmentRecord.java new file mode 100644 index 0000000..c40726d --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/RecruitmentRecord.java @@ -0,0 +1,139 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class RecruitmentRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_dashboard.recruitment.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for ervu_dashboard.recruitment.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for ervu_dashboard.recruitment.shortname. + */ + public void setShortname(String value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.recruitment.shortname. + */ + public String getShortname() { + return (String) get(1); + } + + /** + * Setter for ervu_dashboard.recruitment.idm_id. + */ + public void setIdmId(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.recruitment.idm_id. + */ + public String getIdmId() { + return (String) get(2); + } + + /** + * Setter for ervu_dashboard.recruitment.code. + */ + public void setCode(String value) { + set(3, value); + } + + /** + * Getter for ervu_dashboard.recruitment.code. + */ + public String getCode() { + return (String) get(3); + } + + /** + * Setter for ervu_dashboard.recruitment.parent_id. + */ + public void setParentId(String value) { + set(4, value); + } + + /** + * Getter for ervu_dashboard.recruitment.parent_id. + */ + public String getParentId() { + return (String) get(4); + } + + /** + * Setter for ervu_dashboard.recruitment.sort. + */ + public void setSort(Long value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.recruitment.sort. + */ + public Long getSort() { + return (Long) get(5); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached RecruitmentRecord + */ + public RecruitmentRecord() { + super(Recruitment.RECRUITMENT); + } + + /** + * Create a detached, initialised RecruitmentRecord + */ + public RecruitmentRecord(String id, String shortname, String idmId, String code, String parentId, Long sort) { + super(Recruitment.RECRUITMENT); + + setId(id); + setShortname(shortname); + setIdmId(idmId); + setCode(code); + setParentId(parentId); + setSort(sort); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/SubpoenaRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/SubpoenaRecord.java similarity index 62% rename from backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/SubpoenaRecord.java rename to backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/SubpoenaRecord.java index 77adddd..61ab235 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/SubpoenaRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/SubpoenaRecord.java @@ -1,10 +1,10 @@ /* * This file is generated by jOOQ. */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Subpoena; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Subpoena; import java.sql.Timestamp; import java.util.UUID; @@ -22,171 +22,157 @@ public class SubpoenaRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; /** - * Setter for public.subpoena.subpoena_id. + * Setter for ervu_dashboard.subpoena.subpoena_id. */ public void setSubpoenaId(Long value) { set(0, value); } /** - * Getter for public.subpoena.subpoena_id. + * Getter for ervu_dashboard.subpoena.subpoena_id. */ public Long getSubpoenaId() { return (Long) get(0); } /** - * Setter for public.subpoena.series. + * Setter for ervu_dashboard.subpoena.series. */ public void setSeries(String value) { set(1, value); } /** - * Getter for public.subpoena.series. + * Getter for ervu_dashboard.subpoena.series. */ public String getSeries() { return (String) get(1); } /** - * Setter for public.subpoena.number. + * Setter for ervu_dashboard.subpoena.number. */ public void setNumber(String value) { set(2, value); } /** - * Getter for public.subpoena.number. + * Getter for ervu_dashboard.subpoena.number. */ public String getNumber() { return (String) get(2); } /** - * Setter for public.subpoena.id_ern. + * Setter for ervu_dashboard.subpoena.create_date. */ - public void setIdErn(String value) { + public void setCreateDate(Timestamp value) { set(3, value); } /** - * Getter for public.subpoena.id_ern. + * Getter for ervu_dashboard.subpoena.create_date. */ - public String getIdErn() { - return (String) get(3); + public Timestamp getCreateDate() { + return (Timestamp) get(3); } /** - * Setter for public.subpoena.create_date. + * Setter for ervu_dashboard.subpoena.visit_date. */ - public void setCreateDate(Timestamp value) { + public void setVisitDate(Timestamp value) { set(4, value); } /** - * Getter for public.subpoena.create_date. + * Getter for ervu_dashboard.subpoena.visit_date. */ - public Timestamp getCreateDate() { + public Timestamp getVisitDate() { return (Timestamp) get(4); } /** - * Setter for public.subpoena.visit_date. + * Setter for ervu_dashboard.subpoena.send_date. */ - public void setVisitDate(Timestamp value) { + public void setSendDate(Timestamp value) { set(5, value); } /** - * Getter for public.subpoena.visit_date. + * Getter for ervu_dashboard.subpoena.send_date. */ - public Timestamp getVisitDate() { + public Timestamp getSendDate() { return (Timestamp) get(5); } /** - * Setter for public.subpoena.send_date. + * Setter for ervu_dashboard.subpoena.reason_cancelled. */ - public void setSendDate(Timestamp value) { + public void setReasonCancelled(String value) { set(6, value); } /** - * Getter for public.subpoena.send_date. + * Getter for ervu_dashboard.subpoena.reason_cancelled. */ - public Timestamp getSendDate() { - return (Timestamp) get(6); + public String getReasonCancelled() { + return (String) get(6); } /** - * Setter for public.subpoena.reason_cancelled. + * Setter for ervu_dashboard.subpoena.recruit_id. */ - public void setReasonCancelled(String value) { + public void setRecruitId(UUID value) { set(7, value); } /** - * Getter for public.subpoena.reason_cancelled. + * Getter for ervu_dashboard.subpoena.recruit_id. */ - public String getReasonCancelled() { - return (String) get(7); + public UUID getRecruitId() { + return (UUID) get(7); } /** - * Setter for public.subpoena.recruit_id. + * Setter for ervu_dashboard.subpoena.department_id. */ - public void setRecruitId(UUID value) { + public void setDepartmentId(UUID value) { set(8, value); } /** - * Getter for public.subpoena.recruit_id. + * Getter for ervu_dashboard.subpoena.department_id. */ - public UUID getRecruitId() { + public UUID getDepartmentId() { return (UUID) get(8); } /** - * Setter for public.subpoena.department_id. + * Setter for ervu_dashboard.subpoena.subpoena_status. */ - public void setDepartmentId(UUID value) { + public void setSubpoenaStatus(String value) { set(9, value); } /** - * Getter for public.subpoena.department_id. + * Getter for ervu_dashboard.subpoena.subpoena_status. */ - public UUID getDepartmentId() { - return (UUID) get(9); + public String getSubpoenaStatus() { + return (String) get(9); } /** - * Setter for public.subpoena.subpoena_status. + * Setter for ervu_dashboard.subpoena.subpoena_reason. */ - public void setSubpoenaStatus(String value) { + public void setSubpoenaReason(String value) { set(10, value); } /** - * Getter for public.subpoena.subpoena_status. - */ - public String getSubpoenaStatus() { - return (String) get(10); - } - - /** - * Setter for public.subpoena.subpoena_reason. - */ - public void setSubpoenaReason(String value) { - set(11, value); - } - - /** - * Getter for public.subpoena.subpoena_reason. + * Getter for ervu_dashboard.subpoena.subpoena_reason. */ public String getSubpoenaReason() { - return (String) get(11); + return (String) get(10); } // ------------------------------------------------------------------------- @@ -212,13 +198,12 @@ public class SubpoenaRecord extends UpdatableRecordImpl { /** * Create a detached, initialised SubpoenaRecord */ - public SubpoenaRecord(Long subpoenaId, String series, String number, String idErn, Timestamp createDate, Timestamp visitDate, Timestamp sendDate, String reasonCancelled, UUID recruitId, UUID departmentId, String subpoenaStatus, String subpoenaReason) { + public SubpoenaRecord(Long subpoenaId, String series, String number, Timestamp createDate, Timestamp visitDate, Timestamp sendDate, String reasonCancelled, UUID recruitId, UUID departmentId, String subpoenaStatus, String subpoenaReason) { super(Subpoena.SUBPOENA); setSubpoenaId(subpoenaId); setSeries(series); setNumber(number); - setIdErn(idErn); setCreateDate(createDate); setVisitDate(visitDate); setSendDate(sendDate); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/TemporaryMeasuresRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/TemporaryMeasuresRecord.java new file mode 100644 index 0000000..63dcb70 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ervu_dashboard/tables/records/TemporaryMeasuresRecord.java @@ -0,0 +1,163 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.TemporaryMeasures; + +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class TemporaryMeasuresRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * ervu_dashboard.temporary_measures.temporary_measures_id. + */ + public void setTemporaryMeasuresId(Long value) { + set(0, value); + } + + /** + * Getter for + * ervu_dashboard.temporary_measures.temporary_measures_id. + */ + public Long getTemporaryMeasuresId() { + return (Long) get(0); + } + + /** + * Setter for ervu_dashboard.temporary_measures.recruitment_id. + */ + public void setRecruitmentId(String value) { + set(1, value); + } + + /** + * Getter for ervu_dashboard.temporary_measures.recruitment_id. + */ + public String getRecruitmentId() { + return (String) get(1); + } + + /** + * Setter for ervu_dashboard.temporary_measures.name. + */ + public void setName(String value) { + set(2, value); + } + + /** + * Getter for ervu_dashboard.temporary_measures.name. + */ + public String getName() { + return (String) get(2); + } + + /** + * Setter for + * ervu_dashboard.temporary_measures.date_application. + */ + public void setDateApplication(Date value) { + set(3, value); + } + + /** + * Getter for + * ervu_dashboard.temporary_measures.date_application. + */ + public Date getDateApplication() { + return (Date) get(3); + } + + /** + * Setter for + * ervu_dashboard.temporary_measures.withdrawal_date. + */ + public void setWithdrawalDate(Date value) { + set(4, value); + } + + /** + * Getter for + * ervu_dashboard.temporary_measures.withdrawal_date. + */ + public Date getWithdrawalDate() { + return (Date) get(4); + } + + /** + * Setter for ervu_dashboard.temporary_measures.status. + */ + public void setStatus(String value) { + set(5, value); + } + + /** + * Getter for ervu_dashboard.temporary_measures.status. + */ + public String getStatus() { + return (String) get(5); + } + + /** + * Setter for ervu_dashboard.temporary_measures.citizen_id. + */ + public void setCitizenId(UUID value) { + set(6, value); + } + + /** + * Getter for ervu_dashboard.temporary_measures.citizen_id. + */ + public UUID getCitizenId() { + return (UUID) get(6); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached TemporaryMeasuresRecord + */ + public TemporaryMeasuresRecord() { + super(TemporaryMeasures.TEMPORARY_MEASURES); + } + + /** + * Create a detached, initialised TemporaryMeasuresRecord + */ + public TemporaryMeasuresRecord(Long temporaryMeasuresId, String recruitmentId, String name, Date dateApplication, Date withdrawalDate, String status, UUID citizenId) { + super(TemporaryMeasures.TEMPORARY_MEASURES); + + setTemporaryMeasuresId(temporaryMeasuresId); + setRecruitmentId(recruitmentId); + setName(name); + setDateApplication(dateApplication); + setWithdrawalDate(withdrawalDate); + setStatus(status); + setCitizenId(citizenId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Keys.java index 957f0f0..fc1d3cb 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Keys.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Keys.java @@ -12,10 +12,7 @@ import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.Appe import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.RecruitmentCampaignRecord; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.TotalRegisteredRecord; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.WaitingRegistrationRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.PubRecruitmentRecord; -import org.jooq.ForeignKey; import org.jooq.TableField; import org.jooq.UniqueKey; import org.jooq.impl.DSL; @@ -33,17 +30,8 @@ public class Keys { // UNIQUE and PRIMARY KEY definitions // ------------------------------------------------------------------------- - public static final UniqueKey PK_APPEAL = Internal.createUniqueKey(Appeals.APPEALS, DSL.name("pk_appeal"), new TableField[] { Appeals.APPEALS.ID_APPEAL }, true); - public static final UniqueKey PK_RECRUITMENT_CAMPAIGN = Internal.createUniqueKey(RecruitmentCampaign.RECRUITMENT_CAMPAIGN, DSL.name("pk_recruitment_campaign"), new TableField[] { RecruitmentCampaign.RECRUITMENT_CAMPAIGN.ID_RECRUITMENT_CAMPAIGN }, true); - public static final UniqueKey PK_TOTAL_REGISTERED = Internal.createUniqueKey(TotalRegistered.TOTAL_REGISTERED, DSL.name("pk_total_registered"), new TableField[] { TotalRegistered.TOTAL_REGISTERED.ID_TOTAL_REGISTERED }, true); - public static final UniqueKey PK_WAITING_REGISTRATION = Internal.createUniqueKey(WaitingRegistration.WAITING_REGISTRATION, DSL.name("pk_waiting_registration"), new TableField[] { WaitingRegistration.WAITING_REGISTRATION.ID_WAITING_REGISTRATION }, true); - - // ------------------------------------------------------------------------- - // FOREIGN KEY definitions - // ------------------------------------------------------------------------- - - public static final ForeignKey APPEALS__MD_APPEALS_FK1 = Internal.createForeignKey(Appeals.APPEALS, DSL.name("md_appeals_fk1"), new TableField[] { Appeals.APPEALS.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey RECRUITMENT_CAMPAIGN__RECRUITMENT_CAMPAIGN_FK1 = Internal.createForeignKey(RecruitmentCampaign.RECRUITMENT_CAMPAIGN, DSL.name("recruitment_campaign_fk1"), new TableField[] { RecruitmentCampaign.RECRUITMENT_CAMPAIGN.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey TOTAL_REGISTERED__MD_TOTAL_REGISTERED_FK1 = Internal.createForeignKey(TotalRegistered.TOTAL_REGISTERED, DSL.name("md_total_registered_fk1"), new TableField[] { TotalRegistered.TOTAL_REGISTERED.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey WAITING_REGISTRATION__MD_WAITING_REGISTRATION_FK1 = Internal.createForeignKey(WaitingRegistration.WAITING_REGISTRATION, DSL.name("md_waiting_registration_fk1"), new TableField[] { WaitingRegistration.WAITING_REGISTRATION.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final UniqueKey APPEALS_PKEY = Internal.createUniqueKey(Appeals.APPEALS, DSL.name("appeals_pkey"), new TableField[] { Appeals.APPEALS.RECRUITMENT_ID, Appeals.APPEALS.RECORDING_DATE }, true); + public static final UniqueKey RECRUITMENT_CAMPAIGN_PKEY = Internal.createUniqueKey(RecruitmentCampaign.RECRUITMENT_CAMPAIGN, DSL.name("recruitment_campaign_pkey"), new TableField[] { RecruitmentCampaign.RECRUITMENT_CAMPAIGN.SPRING_AUTUMN, RecruitmentCampaign.RECRUITMENT_CAMPAIGN.RECRUITMENT_ID, RecruitmentCampaign.RECRUITMENT_CAMPAIGN.RECORDING_DATE }, true); + public static final UniqueKey TOTAL_REGISTERED_PKEY = Internal.createUniqueKey(TotalRegistered.TOTAL_REGISTERED, DSL.name("total_registered_pkey"), new TableField[] { TotalRegistered.TOTAL_REGISTERED.RECRUITMENT_ID, TotalRegistered.TOTAL_REGISTERED.RECORDING_DATE }, true); + public static final UniqueKey WAITING_REGISTRATION_PKEY = Internal.createUniqueKey(WaitingRegistration.WAITING_REGISTRATION, DSL.name("waiting_registration_pkey"), new TableField[] { WaitingRegistration.WAITING_REGISTRATION.RECRUITMENT_ID, WaitingRegistration.WAITING_REGISTRATION.RECORDING_DATE }, true); } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/Appeals.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/Appeals.java index c888c7e..103246f 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/Appeals.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/Appeals.java @@ -7,25 +7,17 @@ package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.MainDashboard; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.AppealsRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -60,11 +52,6 @@ public class Appeals extends TableImpl { return AppealsRecord.class; } - /** - * The column main_dashboard.appeals.id_appeal. - */ - public final TableField ID_APPEAL = createField(DSL.name("id_appeal"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column main_dashboard.appeals.total_appeals. Всего жалоб */ @@ -104,7 +91,7 @@ public class Appeals extends TableImpl { * The column main_dashboard.appeals.recording_date. Дата * записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column main_dashboard.appeals.average_to_face_percent. @@ -121,12 +108,12 @@ public class Appeals extends TableImpl { /** * The column main_dashboard.appeals.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** - * The column main_dashboard.appeals.testrecruitment_id. + * The column main_dashboard.appeals.id_appeal. */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + public final TableField ID_APPEAL = createField(DSL.name("id_appeal"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private Appeals(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -157,37 +144,6 @@ public class Appeals extends TableImpl { this(DSL.name("appeals"), null); } - public Appeals(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, APPEALS); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class AppealsPath extends Appeals implements Path { - public AppealsPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private AppealsPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public AppealsPath as(String alias) { - return new AppealsPath(DSL.name(alias), this); - } - - @Override - public AppealsPath as(Name alias) { - return new AppealsPath(alias, this); - } - - @Override - public AppealsPath as(Table alias) { - return new AppealsPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : MainDashboard.MAIN_DASHBOARD; @@ -200,25 +156,7 @@ public class Appeals extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_APPEAL; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.APPEALS__MD_APPEALS_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.APPEALS__MD_APPEALS_FK1, null); - - return _pubRecruitment; + return Keys.APPEALS_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/RecruitmentCampaign.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/RecruitmentCampaign.java index 09c0ec1..61dbb05 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/RecruitmentCampaign.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/RecruitmentCampaign.java @@ -7,25 +7,17 @@ package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.MainDashboard; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.RecruitmentCampaignRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -61,12 +53,6 @@ public class RecruitmentCampaign extends TableImpl { return RecruitmentCampaignRecord.class; } - /** - * The column - * main_dashboard.recruitment_campaign.id_recruitment_campaign. - */ - public final TableField ID_RECRUITMENT_CAMPAIGN = createField(DSL.name("id_recruitment_campaign"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column main_dashboard.recruitment_campaign.new_recruits. * Подпадающие под призыв @@ -113,14 +99,7 @@ public class RecruitmentCampaign extends TableImpl { * main_dashboard.recruitment_campaign.recording_date. Дата * записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); - - /** - * The column - * main_dashboard.recruitment_campaign.spring_autumn. - * Весна/Осень - */ - public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CLOB, this, "Весна/Осень"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column @@ -154,19 +133,19 @@ public class RecruitmentCampaign extends TableImpl { * The column * main_dashboard.recruitment_campaign.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** * The column - * main_dashboard.recruitment_campaign.testrecruitment_id. + * main_dashboard.recruitment_campaign.spring_autumn. */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CHAR(36).nullable(false), this, ""); /** * The column - * main_dashboard.recruitment_campaign.testspring_autumn. + * main_dashboard.recruitment_campaign.id_recruitment_campaign. */ - public final TableField TESTSPRING_AUTUMN = createField(DSL.name("testspring_autumn"), SQLDataType.CHAR(36), this, ""); + public final TableField ID_RECRUITMENT_CAMPAIGN = createField(DSL.name("id_recruitment_campaign"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private RecruitmentCampaign(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -199,37 +178,6 @@ public class RecruitmentCampaign extends TableImpl { this(DSL.name("recruitment_campaign"), null); } - public RecruitmentCampaign(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, RECRUITMENT_CAMPAIGN); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class RecruitmentCampaignPath extends RecruitmentCampaign implements Path { - public RecruitmentCampaignPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private RecruitmentCampaignPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public RecruitmentCampaignPath as(String alias) { - return new RecruitmentCampaignPath(DSL.name(alias), this); - } - - @Override - public RecruitmentCampaignPath as(Name alias) { - return new RecruitmentCampaignPath(alias, this); - } - - @Override - public RecruitmentCampaignPath as(Table alias) { - return new RecruitmentCampaignPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : MainDashboard.MAIN_DASHBOARD; @@ -242,25 +190,7 @@ public class RecruitmentCampaign extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_RECRUITMENT_CAMPAIGN; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.RECRUITMENT_CAMPAIGN__RECRUITMENT_CAMPAIGN_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.RECRUITMENT_CAMPAIGN__RECRUITMENT_CAMPAIGN_FK1, null); - - return _pubRecruitment; + return Keys.RECRUITMENT_CAMPAIGN_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/TotalRegistered.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/TotalRegistered.java index 3941b97..9617fbf 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/TotalRegistered.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/TotalRegistered.java @@ -7,25 +7,17 @@ package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.MainDashboard; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.TotalRegisteredRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -60,12 +52,6 @@ public class TotalRegistered extends TableImpl { return TotalRegisteredRecord.class; } - /** - * The column - * main_dashboard.total_registered.id_total_registered. - */ - public final TableField ID_TOTAL_REGISTERED = createField(DSL.name("id_total_registered"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column main_dashboard.total_registered.total_registered. * Всего состоят на учете @@ -111,7 +97,7 @@ public class TotalRegistered extends TableImpl { * The column main_dashboard.total_registered.recording_date. * дата записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "дата записи"); /** * The column @@ -137,13 +123,13 @@ public class TotalRegistered extends TableImpl { /** * The column main_dashboard.total_registered.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** * The column - * main_dashboard.total_registered.testrecruitment_id. + * main_dashboard.total_registered.id_total_registered. */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + public final TableField ID_TOTAL_REGISTERED = createField(DSL.name("id_total_registered"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private TotalRegistered(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -176,37 +162,6 @@ public class TotalRegistered extends TableImpl { this(DSL.name("total_registered"), null); } - public TotalRegistered(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, TOTAL_REGISTERED); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class TotalRegisteredPath extends TotalRegistered implements Path { - public TotalRegisteredPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private TotalRegisteredPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public TotalRegisteredPath as(String alias) { - return new TotalRegisteredPath(DSL.name(alias), this); - } - - @Override - public TotalRegisteredPath as(Name alias) { - return new TotalRegisteredPath(alias, this); - } - - @Override - public TotalRegisteredPath as(Table alias) { - return new TotalRegisteredPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : MainDashboard.MAIN_DASHBOARD; @@ -219,25 +174,7 @@ public class TotalRegistered extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_TOTAL_REGISTERED; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.TOTAL_REGISTERED__MD_TOTAL_REGISTERED_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.TOTAL_REGISTERED__MD_TOTAL_REGISTERED_FK1, null); - - return _pubRecruitment; + return Keys.TOTAL_REGISTERED_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/WaitingRegistration.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/WaitingRegistration.java index a5a44e3..b2bc192 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/WaitingRegistration.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/WaitingRegistration.java @@ -7,25 +7,17 @@ package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.MainDashboard; import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.WaitingRegistrationRecord; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -61,12 +53,6 @@ public class WaitingRegistration extends TableImpl { return WaitingRegistrationRecord.class; } - /** - * The column - * main_dashboard.waiting_registration.id_waiting_registration. - */ - public final TableField ID_WAITING_REGISTRATION = createField(DSL.name("id_waiting_registration"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column * main_dashboard.waiting_registration.waiting_registration. @@ -114,7 +100,7 @@ public class WaitingRegistration extends TableImpl { * main_dashboard.waiting_registration.recording_date. Дата * записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column @@ -148,13 +134,13 @@ public class WaitingRegistration extends TableImpl { * The column * main_dashboard.waiting_registration.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** * The column - * main_dashboard.waiting_registration.testrecruitment_id. + * main_dashboard.waiting_registration.id_waiting_registration. */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + public final TableField ID_WAITING_REGISTRATION = createField(DSL.name("id_waiting_registration"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private WaitingRegistration(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -187,37 +173,6 @@ public class WaitingRegistration extends TableImpl { this(DSL.name("waiting_registration"), null); } - public WaitingRegistration(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, WAITING_REGISTRATION); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class WaitingRegistrationPath extends WaitingRegistration implements Path { - public WaitingRegistrationPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private WaitingRegistrationPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public WaitingRegistrationPath as(String alias) { - return new WaitingRegistrationPath(DSL.name(alias), this); - } - - @Override - public WaitingRegistrationPath as(Name alias) { - return new WaitingRegistrationPath(alias, this); - } - - @Override - public WaitingRegistrationPath as(Table alias) { - return new WaitingRegistrationPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : MainDashboard.MAIN_DASHBOARD; @@ -230,25 +185,7 @@ public class WaitingRegistration extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_WAITING_REGISTRATION; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.WAITING_REGISTRATION__MD_WAITING_REGISTRATION_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.WAITING_REGISTRATION__MD_WAITING_REGISTRATION_FK1, null); - - return _pubRecruitment; + return Keys.WAITING_REGISTRATION_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/AppealsRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/AppealsRecord.java index ec647b5..459ca9a 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/AppealsRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/AppealsRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.Appeals; import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record2; import org.jooq.impl.UpdatableRecordImpl; @@ -22,32 +21,18 @@ public class AppealsRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; - /** - * Setter for main_dashboard.appeals.id_appeal. - */ - public void setIdAppeal(Long value) { - set(0, value); - } - - /** - * Getter for main_dashboard.appeals.id_appeal. - */ - public Long getIdAppeal() { - return (Long) get(0); - } - /** * Setter for main_dashboard.appeals.total_appeals. Всего жалоб */ public void setTotalAppeals(BigDecimal value) { - set(1, value); + set(0, value); } /** * Getter for main_dashboard.appeals.total_appeals. Всего жалоб */ public BigDecimal getTotalAppeals() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** @@ -55,7 +40,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * решенных */ public void setResolved(BigDecimal value) { - set(2, value); + set(1, value); } /** @@ -63,7 +48,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * решенных */ public BigDecimal getResolved() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** @@ -71,7 +56,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * Средний срок рассмотрения */ public void setAverageConsideration(BigDecimal value) { - set(3, value); + set(2, value); } /** @@ -79,7 +64,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * Средний срок рассмотрения */ public BigDecimal getAverageConsideration() { - return (BigDecimal) get(3); + return (BigDecimal) get(2); } /** @@ -87,7 +72,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * удовлетворенности */ public void setAverageRating(BigDecimal value) { - set(4, value); + set(3, value); } /** @@ -95,7 +80,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * удовлетворенности */ public BigDecimal getAverageRating() { - return (BigDecimal) get(4); + return (BigDecimal) get(3); } /** @@ -103,7 +88,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * подачи жалоб очно */ public void setAverageToFace(BigDecimal value) { - set(5, value); + set(4, value); } /** @@ -111,7 +96,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * подачи жалоб очно */ public BigDecimal getAverageToFace() { - return (BigDecimal) get(5); + return (BigDecimal) get(4); } /** @@ -119,7 +104,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * подачи ЕПГУ */ public void setAverageEpgu(BigDecimal value) { - set(6, value); + set(5, value); } /** @@ -127,7 +112,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * подачи ЕПГУ */ public BigDecimal getAverageEpgu() { - return (BigDecimal) get(6); + return (BigDecimal) get(5); } /** @@ -135,7 +120,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * записи */ public void setRecordingDate(Date value) { - set(7, value); + set(6, value); } /** @@ -143,7 +128,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * записи */ public Date getRecordingDate() { - return (Date) get(7); + return (Date) get(6); } /** @@ -151,7 +136,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * Способ подачи жалоб очно в процентах */ public void setAverageToFacePercent(BigDecimal value) { - set(8, value); + set(7, value); } /** @@ -159,7 +144,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * Способ подачи жалоб очно в процентах */ public BigDecimal getAverageToFacePercent() { - return (BigDecimal) get(8); + return (BigDecimal) get(7); } /** @@ -167,7 +152,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * Способ подачи ЕПГУ в процентах */ public void setAverageEpguPercent(BigDecimal value) { - set(9, value); + set(8, value); } /** @@ -175,35 +160,35 @@ public class AppealsRecord extends UpdatableRecordImpl { * Способ подачи ЕПГУ в процентах */ public BigDecimal getAverageEpguPercent() { - return (BigDecimal) get(9); + return (BigDecimal) get(8); } /** * Setter for main_dashboard.appeals.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(10, value); + public void setRecruitmentId(String value) { + set(9, value); } /** * Getter for main_dashboard.appeals.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(10); + public String getRecruitmentId() { + return (String) get(9); } /** - * Setter for main_dashboard.appeals.testrecruitment_id. + * Setter for main_dashboard.appeals.id_appeal. */ - public void setTestrecruitmentId(String value) { - set(11, value); + public void setIdAppeal(Long value) { + set(10, value); } /** - * Getter for main_dashboard.appeals.testrecruitment_id. + * Getter for main_dashboard.appeals.id_appeal. */ - public String getTestrecruitmentId() { - return (String) get(11); + public Long getIdAppeal() { + return (Long) get(10); } // ------------------------------------------------------------------------- @@ -211,8 +196,8 @@ public class AppealsRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record2 key() { + return (Record2) super.key(); } // ------------------------------------------------------------------------- @@ -229,10 +214,9 @@ public class AppealsRecord extends UpdatableRecordImpl { /** * Create a detached, initialised AppealsRecord */ - public AppealsRecord(Long idAppeal, BigDecimal totalAppeals, BigDecimal resolved, BigDecimal averageConsideration, BigDecimal averageRating, BigDecimal averageToFace, BigDecimal averageEpgu, Date recordingDate, BigDecimal averageToFacePercent, BigDecimal averageEpguPercent, UUID recruitmentId, String testrecruitmentId) { + public AppealsRecord(BigDecimal totalAppeals, BigDecimal resolved, BigDecimal averageConsideration, BigDecimal averageRating, BigDecimal averageToFace, BigDecimal averageEpgu, Date recordingDate, BigDecimal averageToFacePercent, BigDecimal averageEpguPercent, String recruitmentId, Long idAppeal) { super(Appeals.APPEALS); - setIdAppeal(idAppeal); setTotalAppeals(totalAppeals); setResolved(resolved); setAverageConsideration(averageConsideration); @@ -243,7 +227,7 @@ public class AppealsRecord extends UpdatableRecordImpl { setAverageToFacePercent(averageToFacePercent); setAverageEpguPercent(averageEpguPercent); setRecruitmentId(recruitmentId); - setTestrecruitmentId(testrecruitmentId); + setIdAppeal(idAppeal); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/RecruitmentCampaignRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/RecruitmentCampaignRecord.java index 0b650f0..1b152a7 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/RecruitmentCampaignRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/RecruitmentCampaignRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.RecruitmentC import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record3; import org.jooq.impl.UpdatableRecordImpl; @@ -22,28 +21,12 @@ public class RecruitmentCampaignRecord extends UpdatableRecordImplmain_dashboard.recruitment_campaign.id_recruitment_campaign. - */ - public void setIdRecruitmentCampaign(Long value) { - set(0, value); - } - - /** - * Getter for - * main_dashboard.recruitment_campaign.id_recruitment_campaign. - */ - public Long getIdRecruitmentCampaign() { - return (Long) get(0); - } - /** * Setter for main_dashboard.recruitment_campaign.new_recruits. * Подпадающие под призыв */ public void setNewRecruits(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -51,7 +34,7 @@ public class RecruitmentCampaignRecord extends UpdatableRecordImplmain_dashboard.recruitment_campaign.spring_autumn. - * Весна/Осень - */ - public void setSpringAutumn(String value) { - set(8, value); - } - - /** - * Getter for - * main_dashboard.recruitment_campaign.spring_autumn. - * Весна/Осень - */ - public String getSpringAutumn() { - return (String) get(8); + return (Date) get(6); } /** @@ -186,7 +151,7 @@ public class RecruitmentCampaignRecord extends UpdatableRecordImplmain_dashboard.recruitment_campaign.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { + set(11, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.recruitment_id. + */ + public String getRecruitmentId() { + return (String) get(11); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.spring_autumn. + */ + public void setSpringAutumn(String value) { + set(12, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.spring_autumn. + */ + public String getSpringAutumn() { + return (String) get(12); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.id_recruitment_campaign. + */ + public void setIdRecruitmentCampaign(Long value) { set(13, value); } /** * Getter for - * main_dashboard.recruitment_campaign.recruitment_id. + * main_dashboard.recruitment_campaign.id_recruitment_campaign. */ - public UUID getRecruitmentId() { - return (UUID) get(13); - } - - /** - * Setter for - * main_dashboard.recruitment_campaign.testrecruitment_id. - */ - public void setTestrecruitmentId(String value) { - set(14, value); - } - - /** - * Getter for - * main_dashboard.recruitment_campaign.testrecruitment_id. - */ - public String getTestrecruitmentId() { - return (String) get(14); - } - - /** - * Setter for - * main_dashboard.recruitment_campaign.testspring_autumn. - */ - public void setTestspringAutumn(String value) { - set(15, value); - } - - /** - * Getter for - * main_dashboard.recruitment_campaign.testspring_autumn. - */ - public String getTestspringAutumn() { - return (String) get(15); + public Long getIdRecruitmentCampaign() { + return (Long) get(13); } // ------------------------------------------------------------------------- @@ -305,8 +270,8 @@ public class RecruitmentCampaignRecord extends UpdatableRecordImpl key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -323,10 +288,9 @@ public class RecruitmentCampaignRecord extends UpdatableRecordImplmain_dashboard.total_registered.id_total_registered. - */ - public void setIdTotalRegistered(Long value) { - set(0, value); - } - - /** - * Getter for - * main_dashboard.total_registered.id_total_registered. - */ - public Long getIdTotalRegistered() { - return (Long) get(0); - } - /** * Setter for main_dashboard.total_registered.total_registered. * Всего состоят на учете */ public void setTotalRegistered(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -51,7 +34,7 @@ public class TotalRegisteredRecord extends UpdatableRecordImplmain_dashboard.total_registered.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(11, value); + public void setRecruitmentId(String value) { + set(10, value); } /** * Getter for main_dashboard.total_registered.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(11); + public String getRecruitmentId() { + return (String) get(10); } /** * Setter for - * main_dashboard.total_registered.testrecruitment_id. + * main_dashboard.total_registered.id_total_registered. */ - public void setTestrecruitmentId(String value) { - set(12, value); + public void setIdTotalRegistered(Long value) { + set(11, value); } /** * Getter for - * main_dashboard.total_registered.testrecruitment_id. + * main_dashboard.total_registered.id_total_registered. */ - public String getTestrecruitmentId() { - return (String) get(12); + public Long getIdTotalRegistered() { + return (Long) get(11); } // ------------------------------------------------------------------------- @@ -249,8 +232,8 @@ public class TotalRegisteredRecord extends UpdatableRecordImpl key() { - return (Record1) super.key(); + public Record2 key() { + return (Record2) super.key(); } // ------------------------------------------------------------------------- @@ -267,10 +250,9 @@ public class TotalRegisteredRecord extends UpdatableRecordImplmain_dashboard.waiting_registration.id_waiting_registration. - */ - public void setIdWaitingRegistration(Long value) { - set(0, value); - } - - /** - * Getter for - * main_dashboard.waiting_registration.id_waiting_registration. - */ - public Long getIdWaitingRegistration() { - return (Long) get(0); - } - /** * Setter for * main_dashboard.waiting_registration.waiting_registration. * Всего подлежат постановке на учет */ public void setWaitingRegistration(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -53,7 +36,7 @@ public class WaitingRegistrationRecord extends UpdatableRecordImplmain_dashboard.waiting_registration.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { + set(11, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.recruitment_id. + */ + public String getRecruitmentId() { + return (String) get(11); + } + + /** + * Setter for + * main_dashboard.waiting_registration.id_waiting_registration. + */ + public void setIdWaitingRegistration(Long value) { set(12, value); } /** * Getter for - * main_dashboard.waiting_registration.recruitment_id. + * main_dashboard.waiting_registration.id_waiting_registration. */ - public UUID getRecruitmentId() { - return (UUID) get(12); - } - - /** - * Setter for - * main_dashboard.waiting_registration.testrecruitment_id. - */ - public void setTestrecruitmentId(String value) { - set(13, value); - } - - /** - * Getter for - * main_dashboard.waiting_registration.testrecruitment_id. - */ - public String getTestrecruitmentId() { - return (String) get(13); + public Long getIdWaitingRegistration() { + return (Long) get(12); } // ------------------------------------------------------------------------- @@ -273,8 +256,8 @@ public class WaitingRegistrationRecord extends UpdatableRecordImpl key() { - return (Record1) super.key(); + public Record2 key() { + return (Record2) super.key(); } // ------------------------------------------------------------------------- @@ -291,10 +274,9 @@ public class WaitingRegistrationRecord extends UpdatableRecordImpl CITIZEN_PKEY = Internal.createUniqueKey(Citizen.CITIZEN, DSL.name("citizen_pkey"), new TableField[] { Citizen.CITIZEN.ID_ERN }, true); - public static final UniqueKey EDUCATION_PKEY = Internal.createUniqueKey(Education.EDUCATION, DSL.name("education_pkey"), new TableField[] { Education.EDUCATION.EDUCATION_ID }, true); - public static final UniqueKey EMPLOYMENT_PKEY = Internal.createUniqueKey(Employment.EMPLOYMENT, DSL.name("employment_pkey"), new TableField[] { Employment.EMPLOYMENT.EMPLOYMENT_ID }, true); - public static final UniqueKey GENDER_PKEY = Internal.createUniqueKey(Gender.GENDER, DSL.name("gender_pkey"), new TableField[] { Gender.GENDER.GENDER_ID }, true); - public static final UniqueKey MARITAL_STATUS_PKEY = Internal.createUniqueKey(MaritalStatus.MARITAL_STATUS, DSL.name("marital_status_pkey"), new TableField[] { MaritalStatus.MARITAL_STATUS.MARITAL_STATUS_ID }, true); - public static final UniqueKey RECRUITMENT_IDM_ID_KEY = Internal.createUniqueKey(PubRecruitment.PUB_RECRUITMENT, DSL.name("recruitment_idm_id_key"), new TableField[] { PubRecruitment.PUB_RECRUITMENT.IDM_ID }, true); - public static final UniqueKey RECRUITMENT_PKEY = Internal.createUniqueKey(PubRecruitment.PUB_RECRUITMENT, DSL.name("recruitment_pkey"), new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final UniqueKey REASON_REGISTRATION_PKEY = Internal.createUniqueKey(ReasonRegistration.REASON_REGISTRATION, DSL.name("reason_registration_pkey"), new TableField[] { ReasonRegistration.REASON_REGISTRATION.REASON_REGISTRATION_ID }, true); - public static final UniqueKey SUBPOENA_PKEY = Internal.createUniqueKey(Subpoena.SUBPOENA, DSL.name("subpoena_pkey"), new TableField[] { Subpoena.SUBPOENA.SUBPOENA_ID }, true); - - // ------------------------------------------------------------------------- - // FOREIGN KEY definitions - // ------------------------------------------------------------------------- - - public static final ForeignKey CITIZEN__P_CITIZEN_FK1 = Internal.createForeignKey(Citizen.CITIZEN, DSL.name("p_citizen_fk1"), new TableField[] { Citizen.CITIZEN.RECRUITMENT_ID }, Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey CITIZEN__P_CITIZEN_FK2 = Internal.createForeignKey(Citizen.CITIZEN, DSL.name("p_citizen_fk2"), new TableField[] { Citizen.CITIZEN.GENDER_ID }, Keys.GENDER_PKEY, new TableField[] { Gender.GENDER.GENDER_ID }, true); - public static final ForeignKey CITIZEN__P_CITIZEN_FK3 = Internal.createForeignKey(Citizen.CITIZEN, DSL.name("p_citizen_fk3"), new TableField[] { Citizen.CITIZEN.MARITAL_STATUS_ID }, Keys.MARITAL_STATUS_PKEY, new TableField[] { MaritalStatus.MARITAL_STATUS.MARITAL_STATUS_ID }, true); - public static final ForeignKey CITIZEN__P_CITIZEN_FK4 = Internal.createForeignKey(Citizen.CITIZEN, DSL.name("p_citizen_fk4"), new TableField[] { Citizen.CITIZEN.EMPLOYMENT_ID }, Keys.EMPLOYMENT_PKEY, new TableField[] { Employment.EMPLOYMENT.EMPLOYMENT_ID }, true); - public static final ForeignKey CITIZEN__P_CITIZEN_FK5 = Internal.createForeignKey(Citizen.CITIZEN, DSL.name("p_citizen_fk5"), new TableField[] { Citizen.CITIZEN.EDUCATION_ID }, Keys.EDUCATION_PKEY, new TableField[] { Education.EDUCATION.EDUCATION_ID }, true); - public static final ForeignKey CITIZEN__P_CITIZEN_FK6 = Internal.createForeignKey(Citizen.CITIZEN, DSL.name("p_citizen_fk6"), new TableField[] { Citizen.CITIZEN.REASON_REGISTRATION_ID }, Keys.REASON_REGISTRATION_PKEY, new TableField[] { ReasonRegistration.REASON_REGISTRATION.REASON_REGISTRATION_ID }, true); - public static final ForeignKey MARITAL_STATUS__MARITAL_STATUS_FK1 = Internal.createForeignKey(MaritalStatus.MARITAL_STATUS, DSL.name("marital_status_fk1"), new TableField[] { MaritalStatus.MARITAL_STATUS.GENDER_ID }, Keys.GENDER_PKEY, new TableField[] { Gender.GENDER.GENDER_ID }, true); + public static final UniqueKey DATABASECHANGELOGLOCK_PKEY = Internal.createUniqueKey(Databasechangeloglock.DATABASECHANGELOGLOCK, DSL.name("databasechangeloglock_pkey"), new TableField[] { Databasechangeloglock.DATABASECHANGELOGLOCK.ID }, true); + public static final UniqueKey JOB_LOG_PKEY = Internal.createUniqueKey(JobLog.JOB_LOG, DSL.name("job_log_pkey"), new TableField[] { JobLog.JOB_LOG.ID_JOB }, true); } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Public.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Public.java index 44f0f90..c0f6c9b 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Public.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Public.java @@ -5,14 +5,11 @@ package ervu_dashboard.ervu_dashboard.db_beans.public_; import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Education; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Employment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Gender; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.MaritalStatus; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.ReasonRegistration; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Subpoena; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.ChannelLog; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Databasechangelog; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Databasechangeloglock; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.JobEntryLog; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.JobLog; import java.util.Arrays; import java.util.List; @@ -36,44 +33,29 @@ public class Public extends SchemaImpl { public static final Public PUBLIC = new Public(); /** - * The table public.citizen. + * The table public.channel_log. */ - public final Citizen CITIZEN = Citizen.CITIZEN; + public final ChannelLog CHANNEL_LOG = ChannelLog.CHANNEL_LOG; /** - * The table public.education. + * The table public.databasechangelog. */ - public final Education EDUCATION = Education.EDUCATION; + public final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; /** - * The table public.employment. + * The table public.databasechangeloglock. */ - public final Employment EMPLOYMENT = Employment.EMPLOYMENT; + public final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; /** - * The table public.gender. + * The table public.job_entry_log. */ - public final Gender GENDER = Gender.GENDER; + public final JobEntryLog JOB_ENTRY_LOG = JobEntryLog.JOB_ENTRY_LOG; /** - * The table public.marital_status. + * The table public.job_log. */ - public final MaritalStatus MARITAL_STATUS = MaritalStatus.MARITAL_STATUS; - - /** - * The table public.pub_recruitment. - */ - public final PubRecruitment PUB_RECRUITMENT = PubRecruitment.PUB_RECRUITMENT; - - /** - * The table public.reason_registration. - */ - public final ReasonRegistration REASON_REGISTRATION = ReasonRegistration.REASON_REGISTRATION; - - /** - * The table public.subpoena. - */ - public final Subpoena SUBPOENA = Subpoena.SUBPOENA; + public final JobLog JOB_LOG = JobLog.JOB_LOG; /** * No further instances allowed @@ -91,14 +73,11 @@ public class Public extends SchemaImpl { @Override public final List> getTables() { return Arrays.asList( - Citizen.CITIZEN, - Education.EDUCATION, - Employment.EMPLOYMENT, - Gender.GENDER, - MaritalStatus.MARITAL_STATUS, - PubRecruitment.PUB_RECRUITMENT, - ReasonRegistration.REASON_REGISTRATION, - Subpoena.SUBPOENA + ChannelLog.CHANNEL_LOG, + Databasechangelog.DATABASECHANGELOG, + Databasechangeloglock.DATABASECHANGELOGLOCK, + JobEntryLog.JOB_ENTRY_LOG, + JobLog.JOB_LOG ); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Tables.java index 35a2377..61f9215 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Tables.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Tables.java @@ -4,14 +4,11 @@ package ervu_dashboard.ervu_dashboard.db_beans.public_; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Education; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Employment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Gender; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.MaritalStatus; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.ReasonRegistration; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Subpoena; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.ChannelLog; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Databasechangelog; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Databasechangeloglock; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.JobEntryLog; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.JobLog; /** @@ -21,42 +18,27 @@ import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Subpoena; public class Tables { /** - * The table public.citizen. + * The table public.channel_log. */ - public static final Citizen CITIZEN = Citizen.CITIZEN; + public static final ChannelLog CHANNEL_LOG = ChannelLog.CHANNEL_LOG; /** - * The table public.education. + * The table public.databasechangelog. */ - public static final Education EDUCATION = Education.EDUCATION; + public static final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; /** - * The table public.employment. + * The table public.databasechangeloglock. */ - public static final Employment EMPLOYMENT = Employment.EMPLOYMENT; + public static final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; /** - * The table public.gender. + * The table public.job_entry_log. */ - public static final Gender GENDER = Gender.GENDER; + public static final JobEntryLog JOB_ENTRY_LOG = JobEntryLog.JOB_ENTRY_LOG; /** - * The table public.marital_status. + * The table public.job_log. */ - public static final MaritalStatus MARITAL_STATUS = MaritalStatus.MARITAL_STATUS; - - /** - * The table public.pub_recruitment. - */ - public static final PubRecruitment PUB_RECRUITMENT = PubRecruitment.PUB_RECRUITMENT; - - /** - * The table public.reason_registration. - */ - public static final ReasonRegistration REASON_REGISTRATION = ReasonRegistration.REASON_REGISTRATION; - - /** - * The table public.subpoena. - */ - public static final Subpoena SUBPOENA = Subpoena.SUBPOENA; + public static final JobLog JOB_LOG = JobLog.JOB_LOG; } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/enums/TypePropertyType.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/enums/TypePropertyType.java new file mode 100644 index 0000000..bfea470 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/enums/TypePropertyType.java @@ -0,0 +1,62 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.enums; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; + +import org.jooq.Catalog; +import org.jooq.EnumType; +import org.jooq.Schema; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public enum TypePropertyType implements EnumType { + + realty("realty"), + + ground_transportation("ground_transportation"), + + air_vehicles("air_vehicles"), + + water_vehicles("water_vehicles"); + + private final String literal; + + private TypePropertyType(String literal) { + this.literal = literal; + } + + @Override + public Catalog getCatalog() { + return getSchema().getCatalog(); + } + + @Override + public Schema getSchema() { + return Public.PUBLIC; + } + + @Override + public String getName() { + return "type_property_type"; + } + + @Override + public String getLiteral() { + return literal; + } + + /** + * Lookup a value of this EnumType by its literal. Returns + * null, if no such value could be found, see {@link + * EnumType#lookupLiteral(Class, String)}. + */ + public static TypePropertyType lookupLiteral(String literal) { + return EnumType.lookupLiteral(TypePropertyType.class, literal); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ChannelLog.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ChannelLog.java new file mode 100644 index 0000000..9b90d2e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ChannelLog.java @@ -0,0 +1,272 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.ChannelLogRecord; + +import java.sql.Date; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ChannelLog extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.channel_log + */ + public static final ChannelLog CHANNEL_LOG = new ChannelLog(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ChannelLogRecord.class; + } + + /** + * The column public.channel_log.id_batch. + */ + public final TableField ID_BATCH = createField(DSL.name("id_batch"), SQLDataType.BIGINT, this, ""); + + /** + * The column public.channel_log.channel_id. + */ + public final TableField CHANNEL_ID = createField(DSL.name("channel_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column public.channel_log.log_date. + */ + public final TableField LOG_DATE = createField(DSL.name("log_date"), SQLDataType.DATE, this, ""); + + /** + * The column public.channel_log.logging_object_type. + */ + public final TableField LOGGING_OBJECT_TYPE = createField(DSL.name("logging_object_type"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.channel_log.object_name. + */ + public final TableField OBJECT_NAME = createField(DSL.name("object_name"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.channel_log.object_copy. + */ + public final TableField OBJECT_COPY = createField(DSL.name("object_copy"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.channel_log.repository_directory. + */ + public final TableField REPOSITORY_DIRECTORY = createField(DSL.name("repository_directory"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.channel_log.filename. + */ + public final TableField FILENAME = createField(DSL.name("filename"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.channel_log.object_id. + */ + public final TableField OBJECT_ID = createField(DSL.name("object_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column public.channel_log.object_version. + */ + public final TableField OBJECT_VERSION = createField(DSL.name("object_version"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.channel_log.object_revision. + */ + public final TableField OBJECT_REVISION = createField(DSL.name("object_revision"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.channel_log.parent_channel_id. + */ + public final TableField PARENT_CHANNEL_ID = createField(DSL.name("parent_channel_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column public.channel_log.root_channel_id. + */ + public final TableField ROOT_CHANNEL_ID = createField(DSL.name("root_channel_id"), SQLDataType.CHAR(36), this, ""); + + private ChannelLog(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private ChannelLog(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.channel_log table reference + */ + public ChannelLog(String alias) { + this(DSL.name(alias), CHANNEL_LOG); + } + + /** + * Create an aliased public.channel_log table reference + */ + public ChannelLog(Name alias) { + this(alias, CHANNEL_LOG); + } + + /** + * Create a public.channel_log table reference + */ + public ChannelLog() { + this(DSL.name("channel_log"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public ChannelLog as(String alias) { + return new ChannelLog(DSL.name(alias), this); + } + + @Override + public ChannelLog as(Name alias) { + return new ChannelLog(alias, this); + } + + @Override + public ChannelLog as(Table alias) { + return new ChannelLog(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public ChannelLog rename(String name) { + return new ChannelLog(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public ChannelLog rename(Name name) { + return new ChannelLog(name, null); + } + + /** + * Rename this table + */ + @Override + public ChannelLog rename(Table name) { + return new ChannelLog(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChannelLog where(Condition condition) { + return new ChannelLog(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChannelLog where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChannelLog where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChannelLog where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChannelLog where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChannelLog where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChannelLog where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChannelLog where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChannelLog whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChannelLog whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Citizen.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Citizen.java deleted file mode 100644 index 5d92ace..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Citizen.java +++ /dev/null @@ -1,438 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Education.EducationPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Employment.EmploymentPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Gender.GenderPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.MaritalStatus.MaritalStatusPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.ReasonRegistration.ReasonRegistrationPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.CitizenRecord; - -import java.sql.Date; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.UUID; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class Citizen extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of public.citizen - */ - public static final Citizen CITIZEN = new Citizen(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return CitizenRecord.class; - } - - /** - * The column public.citizen.id_ERN. - */ - public final TableField ID_ERN = createField(DSL.name("id_ERN"), SQLDataType.VARCHAR.nullable(false), this, ""); - - /** - * The column public.citizen.fio. - */ - public final TableField FIO = createField(DSL.name("fio"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.citizen.residence. - */ - public final TableField RESIDENCE = createField(DSL.name("residence"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.citizen.age. - */ - public final TableField AGE = createField(DSL.name("age"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.citizen.recruitment. - */ - public final TableField RECRUITMENT = createField(DSL.name("recruitment"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.citizen.recruitment_id. - */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); - - /** - * The column public.citizen.gender_id. - */ - public final TableField GENDER_ID = createField(DSL.name("gender_id"), SQLDataType.BIGINT.nullable(false), this, ""); - - /** - * The column public.citizen.marital_status_id. - */ - public final TableField MARITAL_STATUS_ID = createField(DSL.name("marital_status_id"), SQLDataType.BIGINT, this, ""); - - /** - * The column public.citizen.education_id. - */ - public final TableField EDUCATION_ID = createField(DSL.name("education_id"), SQLDataType.BIGINT, this, ""); - - /** - * The column public.citizen.employment_id. - */ - public final TableField EMPLOYMENT_ID = createField(DSL.name("employment_id"), SQLDataType.BIGINT, this, ""); - - /** - * The column public.citizen.urgent_service. - */ - public final TableField URGENT_SERVICE = createField(DSL.name("urgent_service"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); - - /** - * The column public.citizen.contract_service. - */ - public final TableField CONTRACT_SERVICE = createField(DSL.name("contract_service"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); - - /** - * The column public.citizen.mobilization. - */ - public final TableField MOBILIZATION = createField(DSL.name("mobilization"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); - - /** - * The column public.citizen.is_registered. - */ - public final TableField IS_REGISTERED = createField(DSL.name("is_registered"), SQLDataType.BOOLEAN.defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); - - /** - * The column public.citizen.reason_registration_id. - */ - public final TableField REASON_REGISTRATION_ID = createField(DSL.name("reason_registration_id"), SQLDataType.INTEGER, this, ""); - - /** - * The column public.citizen.issue_date. - */ - public final TableField ISSUE_DATE = createField(DSL.name("issue_date"), SQLDataType.DATE, this, ""); - - /** - * The column public.citizen.passport_series. - */ - public final TableField PASSPORT_SERIES = createField(DSL.name("passport_series"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.citizen.passport_number. - */ - public final TableField PASSPORT_NUMBER = createField(DSL.name("passport_number"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.citizen.number_children. - */ - public final TableField NUMBER_CHILDREN = createField(DSL.name("number_children"), SQLDataType.INTEGER, this, ""); - - /** - * The column public.citizen.phone. - */ - public final TableField PHONE = createField(DSL.name("phone"), SQLDataType.VARCHAR, this, ""); - - private Citizen(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private Citizen(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); - } - - /** - * Create an aliased public.citizen table reference - */ - public Citizen(String alias) { - this(DSL.name(alias), CITIZEN); - } - - /** - * Create an aliased public.citizen table reference - */ - public Citizen(Name alias) { - this(alias, CITIZEN); - } - - /** - * Create a public.citizen table reference - */ - public Citizen() { - this(DSL.name("citizen"), null); - } - - public Citizen(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, CITIZEN); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class CitizenPath extends Citizen implements Path { - public CitizenPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private CitizenPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public CitizenPath as(String alias) { - return new CitizenPath(DSL.name(alias), this); - } - - @Override - public CitizenPath as(Name alias) { - return new CitizenPath(alias, this); - } - - @Override - public CitizenPath as(Table alias) { - return new CitizenPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.CITIZEN_PKEY; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.CITIZEN__P_CITIZEN_FK1, Keys.CITIZEN__P_CITIZEN_FK2, Keys.CITIZEN__P_CITIZEN_FK3, Keys.CITIZEN__P_CITIZEN_FK5, Keys.CITIZEN__P_CITIZEN_FK4, Keys.CITIZEN__P_CITIZEN_FK6); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.CITIZEN__P_CITIZEN_FK1, null); - - return _pubRecruitment; - } - - private transient GenderPath _gender; - - /** - * Get the implicit join path to the public.gender table. - */ - public GenderPath gender() { - if (_gender == null) - _gender = new GenderPath(this, Keys.CITIZEN__P_CITIZEN_FK2, null); - - return _gender; - } - - private transient MaritalStatusPath _maritalStatus; - - /** - * Get the implicit join path to the public.marital_status - * table. - */ - public MaritalStatusPath maritalStatus() { - if (_maritalStatus == null) - _maritalStatus = new MaritalStatusPath(this, Keys.CITIZEN__P_CITIZEN_FK3, null); - - return _maritalStatus; - } - - private transient EducationPath _education; - - /** - * Get the implicit join path to the public.education table. - */ - public EducationPath education() { - if (_education == null) - _education = new EducationPath(this, Keys.CITIZEN__P_CITIZEN_FK5, null); - - return _education; - } - - private transient EmploymentPath _employment; - - /** - * Get the implicit join path to the public.employment table. - */ - public EmploymentPath employment() { - if (_employment == null) - _employment = new EmploymentPath(this, Keys.CITIZEN__P_CITIZEN_FK4, null); - - return _employment; - } - - private transient ReasonRegistrationPath _reasonRegistration; - - /** - * Get the implicit join path to the public.reason_registration - * table. - */ - public ReasonRegistrationPath reasonRegistration() { - if (_reasonRegistration == null) - _reasonRegistration = new ReasonRegistrationPath(this, Keys.CITIZEN__P_CITIZEN_FK6, null); - - return _reasonRegistration; - } - - @Override - public Citizen as(String alias) { - return new Citizen(DSL.name(alias), this); - } - - @Override - public Citizen as(Name alias) { - return new Citizen(alias, this); - } - - @Override - public Citizen as(Table alias) { - return new Citizen(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public Citizen rename(String name) { - return new Citizen(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public Citizen rename(Name name) { - return new Citizen(name, null); - } - - /** - * Rename this table - */ - @Override - public Citizen rename(Table name) { - return new Citizen(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Citizen where(Condition condition) { - return new Citizen(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Citizen where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Citizen where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Citizen where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Citizen where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Citizen where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Citizen where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Citizen where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Citizen whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Citizen whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangelog.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangelog.java new file mode 100644 index 0000000..fb9b1be --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangelog.java @@ -0,0 +1,277 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.DatabasechangelogRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangelog extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.databasechangelog + */ + public static final Databasechangelog DATABASECHANGELOG = new Databasechangelog(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangelogRecord.class; + } + + /** + * The column public.databasechangelog.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column public.databasechangelog.author. + */ + public final TableField AUTHOR = createField(DSL.name("author"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column public.databasechangelog.filename. + */ + public final TableField FILENAME = createField(DSL.name("filename"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column public.databasechangelog.dateexecuted. + */ + public final TableField DATEEXECUTED = createField(DSL.name("dateexecuted"), SQLDataType.TIMESTAMP(0).nullable(false), this, ""); + + /** + * The column public.databasechangelog.orderexecuted. + */ + public final TableField ORDEREXECUTED = createField(DSL.name("orderexecuted"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column public.databasechangelog.exectype. + */ + public final TableField EXECTYPE = createField(DSL.name("exectype"), SQLDataType.VARCHAR(10).nullable(false), this, ""); + + /** + * The column public.databasechangelog.md5sum. + */ + public final TableField MD5SUM = createField(DSL.name("md5sum"), SQLDataType.VARCHAR(35), this, ""); + + /** + * The column public.databasechangelog.description. + */ + public final TableField DESCRIPTION = createField(DSL.name("description"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column public.databasechangelog.comments. + */ + public final TableField COMMENTS = createField(DSL.name("comments"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column public.databasechangelog.tag. + */ + public final TableField TAG = createField(DSL.name("tag"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column public.databasechangelog.liquibase. + */ + public final TableField LIQUIBASE = createField(DSL.name("liquibase"), SQLDataType.VARCHAR(20), this, ""); + + /** + * The column public.databasechangelog.contexts. + */ + public final TableField CONTEXTS = createField(DSL.name("contexts"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column public.databasechangelog.labels. + */ + public final TableField LABELS = createField(DSL.name("labels"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column public.databasechangelog.deployment_id. + */ + public final TableField DEPLOYMENT_ID = createField(DSL.name("deployment_id"), SQLDataType.VARCHAR(10), this, ""); + + private Databasechangelog(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangelog(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.databasechangelog table reference + */ + public Databasechangelog(String alias) { + this(DSL.name(alias), DATABASECHANGELOG); + } + + /** + * Create an aliased public.databasechangelog table reference + */ + public Databasechangelog(Name alias) { + this(alias, DATABASECHANGELOG); + } + + /** + * Create a public.databasechangelog table reference + */ + public Databasechangelog() { + this(DSL.name("databasechangelog"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public Databasechangelog as(String alias) { + return new Databasechangelog(DSL.name(alias), this); + } + + @Override + public Databasechangelog as(Name alias) { + return new Databasechangelog(alias, this); + } + + @Override + public Databasechangelog as(Table alias) { + return new Databasechangelog(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(String name) { + return new Databasechangelog(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Name name) { + return new Databasechangelog(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Table name) { + return new Databasechangelog(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition condition) { + return new Databasechangelog(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangeloglock.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangeloglock.java new file mode 100644 index 0000000..e199192 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Databasechangeloglock.java @@ -0,0 +1,236 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.DatabasechangeloglockRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangeloglock extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.databasechangeloglock + */ + public static final Databasechangeloglock DATABASECHANGELOGLOCK = new Databasechangeloglock(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangeloglockRecord.class; + } + + /** + * The column public.databasechangeloglock.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column public.databasechangeloglock.locked. + */ + public final TableField LOCKED = createField(DSL.name("locked"), SQLDataType.BOOLEAN.nullable(false), this, ""); + + /** + * The column public.databasechangeloglock.lockgranted. + */ + public final TableField LOCKGRANTED = createField(DSL.name("lockgranted"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.databasechangeloglock.lockedby. + */ + public final TableField LOCKEDBY = createField(DSL.name("lockedby"), SQLDataType.VARCHAR(255), this, ""); + + private Databasechangeloglock(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangeloglock(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.databasechangeloglock table + * reference + */ + public Databasechangeloglock(String alias) { + this(DSL.name(alias), DATABASECHANGELOGLOCK); + } + + /** + * Create an aliased public.databasechangeloglock table + * reference + */ + public Databasechangeloglock(Name alias) { + this(alias, DATABASECHANGELOGLOCK); + } + + /** + * Create a public.databasechangeloglock table reference + */ + public Databasechangeloglock() { + this(DSL.name("databasechangeloglock"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.DATABASECHANGELOGLOCK_PKEY; + } + + @Override + public Databasechangeloglock as(String alias) { + return new Databasechangeloglock(DSL.name(alias), this); + } + + @Override + public Databasechangeloglock as(Name alias) { + return new Databasechangeloglock(alias, this); + } + + @Override + public Databasechangeloglock as(Table alias) { + return new Databasechangeloglock(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(String name) { + return new Databasechangeloglock(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Name name) { + return new Databasechangeloglock(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Table name) { + return new Databasechangeloglock(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition condition) { + return new Databasechangeloglock(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Education.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Education.java deleted file mode 100644 index 701fdb7..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Education.java +++ /dev/null @@ -1,283 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen.CitizenPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.EducationRecord; - -import java.util.Collection; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class Education extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of public.education - */ - public static final Education EDUCATION = new Education(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return EducationRecord.class; - } - - /** - * The column public.education.education_id. - */ - public final TableField EDUCATION_ID = createField(DSL.name("education_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - - /** - * The column public.education.code. - */ - public final TableField CODE = createField(DSL.name("code"), SQLDataType.INTEGER.nullable(false), this, ""); - - /** - * The column public.education.name. - */ - public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR.nullable(false), this, ""); - - private Education(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private Education(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); - } - - /** - * Create an aliased public.education table reference - */ - public Education(String alias) { - this(DSL.name(alias), EDUCATION); - } - - /** - * Create an aliased public.education table reference - */ - public Education(Name alias) { - this(alias, EDUCATION); - } - - /** - * Create a public.education table reference - */ - public Education() { - this(DSL.name("education"), null); - } - - public Education(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, EDUCATION); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class EducationPath extends Education implements Path { - public EducationPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private EducationPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public EducationPath as(String alias) { - return new EducationPath(DSL.name(alias), this); - } - - @Override - public EducationPath as(Name alias) { - return new EducationPath(alias, this); - } - - @Override - public EducationPath as(Table alias) { - return new EducationPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; - } - - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.EDUCATION_PKEY; - } - - private transient CitizenPath _citizen; - - /** - * Get the implicit to-many join path to the public.citizen - * table - */ - public CitizenPath citizen() { - if (_citizen == null) - _citizen = new CitizenPath(this, null, Keys.CITIZEN__P_CITIZEN_FK5.getInverseKey()); - - return _citizen; - } - - @Override - public Education as(String alias) { - return new Education(DSL.name(alias), this); - } - - @Override - public Education as(Name alias) { - return new Education(alias, this); - } - - @Override - public Education as(Table alias) { - return new Education(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public Education rename(String name) { - return new Education(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public Education rename(Name name) { - return new Education(name, null); - } - - /** - * Rename this table - */ - @Override - public Education rename(Table name) { - return new Education(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Education where(Condition condition) { - return new Education(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Education where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Education where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Education where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Education where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Education where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Education where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Education where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Education whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Education whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Employment.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Employment.java deleted file mode 100644 index a1d829e..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Employment.java +++ /dev/null @@ -1,283 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen.CitizenPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.EmploymentRecord; - -import java.util.Collection; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class Employment extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of public.employment - */ - public static final Employment EMPLOYMENT = new Employment(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return EmploymentRecord.class; - } - - /** - * The column public.employment.employment_id. - */ - public final TableField EMPLOYMENT_ID = createField(DSL.name("employment_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - - /** - * The column public.employment.code. - */ - public final TableField CODE = createField(DSL.name("code"), SQLDataType.INTEGER.nullable(false), this, ""); - - /** - * The column public.employment.name. - */ - public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR.nullable(false), this, ""); - - private Employment(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private Employment(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); - } - - /** - * Create an aliased public.employment table reference - */ - public Employment(String alias) { - this(DSL.name(alias), EMPLOYMENT); - } - - /** - * Create an aliased public.employment table reference - */ - public Employment(Name alias) { - this(alias, EMPLOYMENT); - } - - /** - * Create a public.employment table reference - */ - public Employment() { - this(DSL.name("employment"), null); - } - - public Employment(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, EMPLOYMENT); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class EmploymentPath extends Employment implements Path { - public EmploymentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private EmploymentPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public EmploymentPath as(String alias) { - return new EmploymentPath(DSL.name(alias), this); - } - - @Override - public EmploymentPath as(Name alias) { - return new EmploymentPath(alias, this); - } - - @Override - public EmploymentPath as(Table alias) { - return new EmploymentPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; - } - - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.EMPLOYMENT_PKEY; - } - - private transient CitizenPath _citizen; - - /** - * Get the implicit to-many join path to the public.citizen - * table - */ - public CitizenPath citizen() { - if (_citizen == null) - _citizen = new CitizenPath(this, null, Keys.CITIZEN__P_CITIZEN_FK4.getInverseKey()); - - return _citizen; - } - - @Override - public Employment as(String alias) { - return new Employment(DSL.name(alias), this); - } - - @Override - public Employment as(Name alias) { - return new Employment(alias, this); - } - - @Override - public Employment as(Table alias) { - return new Employment(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public Employment rename(String name) { - return new Employment(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public Employment rename(Name name) { - return new Employment(name, null); - } - - /** - * Rename this table - */ - @Override - public Employment rename(Table name) { - return new Employment(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Employment where(Condition condition) { - return new Employment(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Employment where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Employment where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Employment where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Employment where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Employment where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Employment where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Employment where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Employment whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Employment whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Gender.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Gender.java deleted file mode 100644 index f354fcc..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Gender.java +++ /dev/null @@ -1,297 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen.CitizenPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.MaritalStatus.MaritalStatusPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.GenderRecord; - -import java.util.Collection; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class Gender extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of public.gender - */ - public static final Gender GENDER = new Gender(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return GenderRecord.class; - } - - /** - * The column public.gender.gender_id. - */ - public final TableField GENDER_ID = createField(DSL.name("gender_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - - /** - * The column public.gender.code. - */ - public final TableField CODE = createField(DSL.name("code"), SQLDataType.VARCHAR.nullable(false), this, ""); - - /** - * The column public.gender.name. - */ - public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR.nullable(false), this, ""); - - private Gender(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private Gender(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); - } - - /** - * Create an aliased public.gender table reference - */ - public Gender(String alias) { - this(DSL.name(alias), GENDER); - } - - /** - * Create an aliased public.gender table reference - */ - public Gender(Name alias) { - this(alias, GENDER); - } - - /** - * Create a public.gender table reference - */ - public Gender() { - this(DSL.name("gender"), null); - } - - public Gender(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, GENDER); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class GenderPath extends Gender implements Path { - public GenderPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private GenderPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public GenderPath as(String alias) { - return new GenderPath(DSL.name(alias), this); - } - - @Override - public GenderPath as(Name alias) { - return new GenderPath(alias, this); - } - - @Override - public GenderPath as(Table alias) { - return new GenderPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; - } - - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.GENDER_PKEY; - } - - private transient CitizenPath _citizen; - - /** - * Get the implicit to-many join path to the public.citizen - * table - */ - public CitizenPath citizen() { - if (_citizen == null) - _citizen = new CitizenPath(this, null, Keys.CITIZEN__P_CITIZEN_FK2.getInverseKey()); - - return _citizen; - } - - private transient MaritalStatusPath _maritalStatus; - - /** - * Get the implicit to-many join path to the - * public.marital_status table - */ - public MaritalStatusPath maritalStatus() { - if (_maritalStatus == null) - _maritalStatus = new MaritalStatusPath(this, null, Keys.MARITAL_STATUS__MARITAL_STATUS_FK1.getInverseKey()); - - return _maritalStatus; - } - - @Override - public Gender as(String alias) { - return new Gender(DSL.name(alias), this); - } - - @Override - public Gender as(Name alias) { - return new Gender(alias, this); - } - - @Override - public Gender as(Table alias) { - return new Gender(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public Gender rename(String name) { - return new Gender(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public Gender rename(Name name) { - return new Gender(name, null); - } - - /** - * Rename this table - */ - @Override - public Gender rename(Table name) { - return new Gender(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Gender where(Condition condition) { - return new Gender(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Gender where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Gender where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Gender where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Gender where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Gender where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Gender where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Gender where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Gender whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Gender whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobEntryLog.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobEntryLog.java new file mode 100644 index 0000000..33783db --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobEntryLog.java @@ -0,0 +1,282 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.JobEntryLogRecord; + +import java.sql.Date; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class JobEntryLog extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.job_entry_log + */ + public static final JobEntryLog JOB_ENTRY_LOG = new JobEntryLog(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return JobEntryLogRecord.class; + } + + /** + * The column public.job_entry_log.id_batch. + */ + public final TableField ID_BATCH = createField(DSL.name("id_batch"), SQLDataType.BIGINT, this, ""); + + /** + * The column public.job_entry_log.channel_id. + */ + public final TableField CHANNEL_ID = createField(DSL.name("channel_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column public.job_entry_log.log_date. + */ + public final TableField LOG_DATE = createField(DSL.name("log_date"), SQLDataType.DATE, this, ""); + + /** + * The column public.job_entry_log.transname. + */ + public final TableField TRANSNAME = createField(DSL.name("transname"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.stepname. + */ + public final TableField STEPNAME = createField(DSL.name("stepname"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.lines_read. + */ + public final TableField LINES_READ = createField(DSL.name("lines_read"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.lines_written. + */ + public final TableField LINES_WRITTEN = createField(DSL.name("lines_written"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.lines_updated. + */ + public final TableField LINES_UPDATED = createField(DSL.name("lines_updated"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.lines_input. + */ + public final TableField LINES_INPUT = createField(DSL.name("lines_input"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.lines_output. + */ + public final TableField LINES_OUTPUT = createField(DSL.name("lines_output"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.lines_rejected. + */ + public final TableField LINES_REJECTED = createField(DSL.name("lines_rejected"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.errors. + */ + public final TableField ERRORS = createField(DSL.name("errors"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.RESULT. + */ + public final TableField RESULT = createField(DSL.name("RESULT"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.nr_result_rows. + */ + public final TableField NR_RESULT_ROWS = createField(DSL.name("nr_result_rows"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_entry_log.nr_result_files. + */ + public final TableField NR_RESULT_FILES = createField(DSL.name("nr_result_files"), SQLDataType.VARCHAR, this, ""); + + private JobEntryLog(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private JobEntryLog(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.job_entry_log table reference + */ + public JobEntryLog(String alias) { + this(DSL.name(alias), JOB_ENTRY_LOG); + } + + /** + * Create an aliased public.job_entry_log table reference + */ + public JobEntryLog(Name alias) { + this(alias, JOB_ENTRY_LOG); + } + + /** + * Create a public.job_entry_log table reference + */ + public JobEntryLog() { + this(DSL.name("job_entry_log"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public JobEntryLog as(String alias) { + return new JobEntryLog(DSL.name(alias), this); + } + + @Override + public JobEntryLog as(Name alias) { + return new JobEntryLog(alias, this); + } + + @Override + public JobEntryLog as(Table alias) { + return new JobEntryLog(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public JobEntryLog rename(String name) { + return new JobEntryLog(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public JobEntryLog rename(Name name) { + return new JobEntryLog(name, null); + } + + /** + * Rename this table + */ + @Override + public JobEntryLog rename(Table name) { + return new JobEntryLog(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobEntryLog where(Condition condition) { + return new JobEntryLog(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobEntryLog where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobEntryLog where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobEntryLog where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobEntryLog where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobEntryLog where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobEntryLog where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobEntryLog where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobEntryLog whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobEntryLog whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobLog.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobLog.java new file mode 100644 index 0000000..46e23aa --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/JobLog.java @@ -0,0 +1,305 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.JobLogRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class JobLog extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.job_log + */ + public static final JobLog JOB_LOG = new JobLog(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return JobLogRecord.class; + } + + /** + * The column public.job_log.jobname. + */ + public final TableField JOBNAME = createField(DSL.name("jobname"), SQLDataType.CLOB, this, ""); + + /** + * The column public.job_log.status. + */ + public final TableField STATUS = createField(DSL.name("status"), SQLDataType.CLOB, this, ""); + + /** + * The column public.job_log.enddate. + */ + public final TableField ENDDATE = createField(DSL.name("enddate"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.job_log.depdate. + */ + public final TableField DEPDATE = createField(DSL.name("depdate"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.job_log.startdate. + */ + public final TableField STARTDATE = createField(DSL.name("startdate"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.job_log.logdate. + */ + public final TableField LOGDATE = createField(DSL.name("logdate"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.job_log.channel_id. + */ + public final TableField CHANNEL_ID = createField(DSL.name("channel_id"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_log.id_job. + */ + public final TableField ID_JOB = createField(DSL.name("id_job"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column public.job_log.replaydate. + */ + public final TableField REPLAYDATE = createField(DSL.name("replaydate"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.job_log.log_field. + */ + public final TableField LOG_FIELD = createField(DSL.name("log_field"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.job_log.errors. + */ + public final TableField ERRORS = createField(DSL.name("errors"), SQLDataType.INTEGER, this, ""); + + /** + * The column public.job_log.lines_rejected. + */ + public final TableField LINES_REJECTED = createField(DSL.name("lines_rejected"), SQLDataType.INTEGER, this, ""); + + /** + * The column public.job_log.lines_updated. + */ + public final TableField LINES_UPDATED = createField(DSL.name("lines_updated"), SQLDataType.INTEGER, this, ""); + + /** + * The column public.job_log.lines_input. + */ + public final TableField LINES_INPUT = createField(DSL.name("lines_input"), SQLDataType.INTEGER, this, ""); + + /** + * The column public.job_log.lines_output. + */ + public final TableField LINES_OUTPUT = createField(DSL.name("lines_output"), SQLDataType.INTEGER, this, ""); + + /** + * The column public.job_log.lines_written. + */ + public final TableField LINES_WRITTEN = createField(DSL.name("lines_written"), SQLDataType.INTEGER, this, ""); + + /** + * The column public.job_log.lines_read. + */ + public final TableField LINES_READ = createField(DSL.name("lines_read"), SQLDataType.INTEGER, this, ""); + + private JobLog(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private JobLog(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.job_log table reference + */ + public JobLog(String alias) { + this(DSL.name(alias), JOB_LOG); + } + + /** + * Create an aliased public.job_log table reference + */ + public JobLog(Name alias) { + this(alias, JOB_LOG); + } + + /** + * Create a public.job_log table reference + */ + public JobLog() { + this(DSL.name("job_log"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.JOB_LOG_PKEY; + } + + @Override + public JobLog as(String alias) { + return new JobLog(DSL.name(alias), this); + } + + @Override + public JobLog as(Name alias) { + return new JobLog(alias, this); + } + + @Override + public JobLog as(Table alias) { + return new JobLog(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public JobLog rename(String name) { + return new JobLog(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public JobLog rename(Name name) { + return new JobLog(name, null); + } + + /** + * Rename this table + */ + @Override + public JobLog rename(Table name) { + return new JobLog(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobLog where(Condition condition) { + return new JobLog(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobLog where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobLog where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobLog where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobLog where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobLog where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobLog where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobLog where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobLog whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobLog whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/MaritalStatus.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/MaritalStatus.java deleted file mode 100644 index eff6941..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/MaritalStatus.java +++ /dev/null @@ -1,308 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen.CitizenPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Gender.GenderPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.MaritalStatusRecord; - -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class MaritalStatus extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of public.marital_status - */ - public static final MaritalStatus MARITAL_STATUS = new MaritalStatus(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return MaritalStatusRecord.class; - } - - /** - * The column public.marital_status.marital_status_id. - */ - public final TableField MARITAL_STATUS_ID = createField(DSL.name("marital_status_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - - /** - * The column public.marital_status.code. - */ - public final TableField CODE = createField(DSL.name("code"), SQLDataType.VARCHAR.nullable(false), this, ""); - - /** - * The column public.marital_status.name. - */ - public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR.nullable(false), this, ""); - - /** - * The column public.marital_status.gender_id. - */ - public final TableField GENDER_ID = createField(DSL.name("gender_id"), SQLDataType.BIGINT.nullable(false), this, ""); - - private MaritalStatus(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private MaritalStatus(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); - } - - /** - * Create an aliased public.marital_status table reference - */ - public MaritalStatus(String alias) { - this(DSL.name(alias), MARITAL_STATUS); - } - - /** - * Create an aliased public.marital_status table reference - */ - public MaritalStatus(Name alias) { - this(alias, MARITAL_STATUS); - } - - /** - * Create a public.marital_status table reference - */ - public MaritalStatus() { - this(DSL.name("marital_status"), null); - } - - public MaritalStatus(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, MARITAL_STATUS); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class MaritalStatusPath extends MaritalStatus implements Path { - public MaritalStatusPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private MaritalStatusPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public MaritalStatusPath as(String alias) { - return new MaritalStatusPath(DSL.name(alias), this); - } - - @Override - public MaritalStatusPath as(Name alias) { - return new MaritalStatusPath(alias, this); - } - - @Override - public MaritalStatusPath as(Table alias) { - return new MaritalStatusPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; - } - - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.MARITAL_STATUS_PKEY; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.MARITAL_STATUS__MARITAL_STATUS_FK1); - } - - private transient GenderPath _gender; - - /** - * Get the implicit join path to the public.gender table. - */ - public GenderPath gender() { - if (_gender == null) - _gender = new GenderPath(this, Keys.MARITAL_STATUS__MARITAL_STATUS_FK1, null); - - return _gender; - } - - private transient CitizenPath _citizen; - - /** - * Get the implicit to-many join path to the public.citizen - * table - */ - public CitizenPath citizen() { - if (_citizen == null) - _citizen = new CitizenPath(this, null, Keys.CITIZEN__P_CITIZEN_FK3.getInverseKey()); - - return _citizen; - } - - @Override - public MaritalStatus as(String alias) { - return new MaritalStatus(DSL.name(alias), this); - } - - @Override - public MaritalStatus as(Name alias) { - return new MaritalStatus(alias, this); - } - - @Override - public MaritalStatus as(Table alias) { - return new MaritalStatus(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public MaritalStatus rename(String name) { - return new MaritalStatus(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public MaritalStatus rename(Name name) { - return new MaritalStatus(name, null); - } - - /** - * Rename this table - */ - @Override - public MaritalStatus rename(Table name) { - return new MaritalStatus(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public MaritalStatus where(Condition condition) { - return new MaritalStatus(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public MaritalStatus where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public MaritalStatus where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public MaritalStatus where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public MaritalStatus where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public MaritalStatus where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public MaritalStatus where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public MaritalStatus where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public MaritalStatus whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public MaritalStatus whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/PubRecruitment.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/PubRecruitment.java deleted file mode 100644 index 3eb09a9..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/PubRecruitment.java +++ /dev/null @@ -1,726 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.MainProfile.MainProfilePath; -import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReasonsAppeal.ReasonsAppealPath; -import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReviewRating.ReviewRatingPath; -import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.TopicAppeal.TopicAppealPath; -import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.Appeals.AppealsPath; -import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.RecruitmentCampaign.RecruitmentCampaignPath; -import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.TotalRegistered.TotalRegisteredPath; -import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.WaitingRegistration.WaitingRegistrationPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen.CitizenPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.PubRecruitmentRecord; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.AppearSubppoena.AppearSubppoenaPath; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationComplaint.ConsiderationComplaintPath; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.Recruitment.RecruitmentPath; -import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Subpoenas.SubpoenasPath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Age.AgePath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Busyness.BusynessPath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.ChildMinor.ChildMinorPath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.DriverLicense.DriverLicensePath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.EducationLevel.EducationLevelPath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.MaritalStatus.MaritalStatusPath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RegMilCat.RegMilCatPath; -import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RemovedRegistry.RemovedRegistryPath; - -import java.sql.Timestamp; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.UUID; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class PubRecruitment extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of public.pub_recruitment - */ - public static final PubRecruitment PUB_RECRUITMENT = new PubRecruitment(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return PubRecruitmentRecord.class; - } - - /** - * The column public.pub_recruitment.id. - */ - public final TableField ID = createField(DSL.name("id"), SQLDataType.UUID.nullable(false).defaultValue(DSL.field(DSL.raw("uuid_generate_v4()"), SQLDataType.UUID)), this, ""); - - /** - * The column public.pub_recruitment.idm_id. - */ - public final TableField IDM_ID = createField(DSL.name("idm_id"), SQLDataType.VARCHAR(256), this, ""); - - /** - * The column public.pub_recruitment.parent_id. - */ - public final TableField PARENT_ID = createField(DSL.name("parent_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.version. - */ - public final TableField VERSION = createField(DSL.name("version"), SQLDataType.INTEGER, this, ""); - - /** - * The column public.pub_recruitment.created_at. - */ - public final TableField CREATED_AT = createField(DSL.name("created_at"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); - - /** - * The column public.pub_recruitment.updated_at. - */ - public final TableField UPDATED_AT = createField(DSL.name("updated_at"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); - - /** - * The column public.pub_recruitment.schema. - */ - public final TableField SCHEMA = createField(DSL.name("schema"), SQLDataType.VARCHAR(64).nullable(false), this, ""); - - /** - * The column public.pub_recruitment.military_code. - */ - public final TableField MILITARY_CODE = createField(DSL.name("military_code"), SQLDataType.VARCHAR(16), this, ""); - - /** - * The column public.pub_recruitment.shortname. - */ - public final TableField SHORTNAME = createField(DSL.name("shortname"), SQLDataType.VARCHAR.nullable(false), this, ""); - - /** - * The column public.pub_recruitment.fullname. - */ - public final TableField FULLNAME = createField(DSL.name("fullname"), SQLDataType.VARCHAR.nullable(false), this, ""); - - /** - * The column public.pub_recruitment.dns. - */ - public final TableField DNS = createField(DSL.name("dns"), SQLDataType.VARCHAR(64), this, ""); - - /** - * The column public.pub_recruitment.email. - */ - public final TableField EMAIL = createField(DSL.name("email"), SQLDataType.VARCHAR(255), this, ""); - - /** - * The column public.pub_recruitment.phone. - */ - public final TableField PHONE = createField(DSL.name("phone"), SQLDataType.VARCHAR(24), this, ""); - - /** - * The column public.pub_recruitment.address. - */ - public final TableField ADDRESS = createField(DSL.name("address"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.address_id. - */ - public final TableField ADDRESS_ID = createField(DSL.name("address_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.postal_address. - */ - public final TableField POSTAL_ADDRESS = createField(DSL.name("postal_address"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.postal_address_id. - */ - public final TableField POSTAL_ADDRESS_ID = createField(DSL.name("postal_address_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.nsi_department_id. - */ - public final TableField NSI_DEPARTMENT_ID = createField(DSL.name("nsi_department_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.nsi_organization_id. - */ - public final TableField NSI_ORGANIZATION_ID = createField(DSL.name("nsi_organization_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.oktmo. - */ - public final TableField OKTMO = createField(DSL.name("oktmo"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.org_ogrn. - */ - public final TableField ORG_OGRN = createField(DSL.name("org_ogrn"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.dep_ogrn. - */ - public final TableField DEP_OGRN = createField(DSL.name("dep_ogrn"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.epgu_id. - */ - public final TableField EPGU_ID = createField(DSL.name("epgu_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.kpp. - */ - public final TableField KPP = createField(DSL.name("kpp"), SQLDataType.VARCHAR(64), this, ""); - - /** - * The column public.pub_recruitment.inn. - */ - public final TableField INN = createField(DSL.name("inn"), SQLDataType.VARCHAR(64), this, ""); - - /** - * The column public.pub_recruitment.okato. - */ - public final TableField OKATO = createField(DSL.name("okato"), SQLDataType.VARCHAR(64), this, ""); - - /** - * The column public.pub_recruitment.division_type. - */ - public final TableField DIVISION_TYPE = createField(DSL.name("division_type"), SQLDataType.VARCHAR(64), this, ""); - - /** - * The column public.pub_recruitment.tns_department_id. - */ - public final TableField TNS_DEPARTMENT_ID = createField(DSL.name("tns_department_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.enabled. - */ - public final TableField ENABLED = createField(DSL.name("enabled"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.field(DSL.raw("true"), SQLDataType.BOOLEAN)), this, ""); - - /** - * The column public.pub_recruitment.timezone. - */ - public final TableField TIMEZONE = createField(DSL.name("timezone"), SQLDataType.VARCHAR(64), this, ""); - - /** - * The column public.pub_recruitment.reports_enabled. - */ - public final TableField REPORTS_ENABLED = createField(DSL.name("reports_enabled"), SQLDataType.BOOLEAN, this, ""); - - /** - * The column public.pub_recruitment.region_id. - */ - public final TableField REGION_ID = createField(DSL.name("region_id"), SQLDataType.VARCHAR, this, ""); - - /** - * The column public.pub_recruitment.series. - */ - public final TableField SERIES = createField(DSL.name("series"), SQLDataType.VARCHAR(64), this, ""); - - /** - * The column public.pub_recruitment.hidden. - */ - public final TableField HIDDEN = createField(DSL.name("hidden"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); - - /** - * The column public.pub_recruitment.sort. - */ - public final TableField SORT = createField(DSL.name("sort"), SQLDataType.INTEGER.nullable(false), this, ""); - - private PubRecruitment(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private PubRecruitment(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); - } - - /** - * Create an aliased public.pub_recruitment table reference - */ - public PubRecruitment(String alias) { - this(DSL.name(alias), PUB_RECRUITMENT); - } - - /** - * Create an aliased public.pub_recruitment table reference - */ - public PubRecruitment(Name alias) { - this(alias, PUB_RECRUITMENT); - } - - /** - * Create a public.pub_recruitment table reference - */ - public PubRecruitment() { - this(DSL.name("pub_recruitment"), null); - } - - public PubRecruitment(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, PUB_RECRUITMENT); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class PubRecruitmentPath extends PubRecruitment implements Path { - public PubRecruitmentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private PubRecruitmentPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public PubRecruitmentPath as(String alias) { - return new PubRecruitmentPath(DSL.name(alias), this); - } - - @Override - public PubRecruitmentPath as(Name alias) { - return new PubRecruitmentPath(alias, this); - } - - @Override - public PubRecruitmentPath as(Table alias) { - return new PubRecruitmentPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.RECRUITMENT_PKEY; - } - - @Override - public List> getUniqueKeys() { - return Arrays.asList(Keys.RECRUITMENT_IDM_ID_KEY); - } - - private transient MainProfilePath _mainProfile; - - /** - * Get the implicit to-many join path to the - * appeals.main_profile table - */ - public MainProfilePath mainProfile() { - if (_mainProfile == null) - _mainProfile = new MainProfilePath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.MAIN_PROFILE__MAIN_PROFILE_FK1.getInverseKey()); - - return _mainProfile; - } - - private transient ReasonsAppealPath _reasonsAppeal; - - /** - * Get the implicit to-many join path to the - * appeals.reasons_appeal table - */ - public ReasonsAppealPath reasonsAppeal() { - if (_reasonsAppeal == null) - _reasonsAppeal = new ReasonsAppealPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.REASONS_APPEAL__REASONS_APPEAL_FK1.getInverseKey()); - - return _reasonsAppeal; - } - - private transient ReviewRatingPath _reviewRating; - - /** - * Get the implicit to-many join path to the - * appeals.review_rating table - */ - public ReviewRatingPath reviewRating() { - if (_reviewRating == null) - _reviewRating = new ReviewRatingPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.REVIEW_RATING__REVIEW_RATING_FK1.getInverseKey()); - - return _reviewRating; - } - - private transient TopicAppealPath _topicAppeal; - - /** - * Get the implicit to-many join path to the - * appeals.topic_appeal table - */ - public TopicAppealPath topicAppeal() { - if (_topicAppeal == null) - _topicAppeal = new TopicAppealPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.appeals.Keys.TOPIC_APPEAL__TOPIC_APPEAL_FK1.getInverseKey()); - - return _topicAppeal; - } - - private transient AppealsPath _appeals; - - /** - * Get the implicit to-many join path to the - * main_dashboard.appeals table - */ - public AppealsPath appeals() { - if (_appeals == null) - _appeals = new AppealsPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys.APPEALS__MD_APPEALS_FK1.getInverseKey()); - - return _appeals; - } - - private transient RecruitmentCampaignPath _recruitmentCampaign; - - /** - * Get the implicit to-many join path to the - * main_dashboard.recruitment_campaign table - */ - public RecruitmentCampaignPath recruitmentCampaign() { - if (_recruitmentCampaign == null) - _recruitmentCampaign = new RecruitmentCampaignPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys.RECRUITMENT_CAMPAIGN__RECRUITMENT_CAMPAIGN_FK1.getInverseKey()); - - return _recruitmentCampaign; - } - - private transient TotalRegisteredPath _totalRegistered; - - /** - * Get the implicit to-many join path to the - * main_dashboard.total_registered table - */ - public TotalRegisteredPath totalRegistered() { - if (_totalRegistered == null) - _totalRegistered = new TotalRegisteredPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys.TOTAL_REGISTERED__MD_TOTAL_REGISTERED_FK1.getInverseKey()); - - return _totalRegistered; - } - - private transient WaitingRegistrationPath _waitingRegistration; - - /** - * Get the implicit to-many join path to the - * main_dashboard.waiting_registration table - */ - public WaitingRegistrationPath waitingRegistration() { - if (_waitingRegistration == null) - _waitingRegistration = new WaitingRegistrationPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.Keys.WAITING_REGISTRATION__MD_WAITING_REGISTRATION_FK1.getInverseKey()); - - return _waitingRegistration; - } - - private transient CitizenPath _citizen; - - /** - * Get the implicit to-many join path to the public.citizen - * table - */ - public CitizenPath citizen() { - if (_citizen == null) - _citizen = new CitizenPath(this, null, Keys.CITIZEN__P_CITIZEN_FK1.getInverseKey()); - - return _citizen; - } - - private transient AppearSubppoenaPath _appearSubppoena; - - /** - * Get the implicit to-many join path to the - * ratings.appear_subppoena table - */ - public AppearSubppoenaPath appearSubppoena() { - if (_appearSubppoena == null) - _appearSubppoena = new AppearSubppoenaPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_FK1.getInverseKey()); - - return _appearSubppoena; - } - - private transient ConsiderationComplaintPath _considerationComplaint; - - /** - * Get the implicit to-many join path to the - * ratings.consideration_complaint table - */ - public ConsiderationComplaintPath considerationComplaint() { - if (_considerationComplaint == null) - _considerationComplaint = new ConsiderationComplaintPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.CONSIDERATION_COMPLAINT__CONSIDERATION_COMPLAINT_FK1.getInverseKey()); - - return _considerationComplaint; - } - - private transient RecruitmentPath _recruitment; - - /** - * Get the implicit to-many join path to the - * ratings.recruitment table - */ - public RecruitmentPath recruitment() { - if (_recruitment == null) - _recruitment = new RecruitmentPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.RECRUITMENT__R_RECRUITMENT_FK1.getInverseKey()); - - return _recruitment; - } - - private transient SubpoenasPath _subpoenas; - - /** - * Get the implicit to-many join path to the - * recruitment_campaign.subpoenas table - */ - public SubpoenasPath subpoenas() { - if (_subpoenas == null) - _subpoenas = new SubpoenasPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.Keys.SUBPOENAS__SUBPOENAS_FK1.getInverseKey()); - - return _subpoenas; - } - - private transient AgePath _age; - - /** - * Get the implicit to-many join path to the - * total_registered.age table - */ - public AgePath age() { - if (_age == null) - _age = new AgePath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.AGE__AGE_FK1.getInverseKey()); - - return _age; - } - - private transient BusynessPath _busyness; - - /** - * Get the implicit to-many join path to the - * total_registered.busyness table - */ - public BusynessPath busyness() { - if (_busyness == null) - _busyness = new BusynessPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.BUSYNESS__BUSYNESS_FK1.getInverseKey()); - - return _busyness; - } - - private transient ChildMinorPath _childMinor; - - /** - * Get the implicit to-many join path to the - * total_registered.child_minor table - */ - public ChildMinorPath childMinor() { - if (_childMinor == null) - _childMinor = new ChildMinorPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.CHILD_MINOR__CHILD_MINOR_FK1.getInverseKey()); - - return _childMinor; - } - - private transient DriverLicensePath _driverLicense; - - /** - * Get the implicit to-many join path to the - * total_registered.driver_license table - */ - public DriverLicensePath driverLicense() { - if (_driverLicense == null) - _driverLicense = new DriverLicensePath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.DRIVER_LICENSE__DRIVER_LICENSE_FK1.getInverseKey()); - - return _driverLicense; - } - - private transient EducationLevelPath _educationLevel; - - /** - * Get the implicit to-many join path to the - * total_registered.education_level table - */ - public EducationLevelPath educationLevel() { - if (_educationLevel == null) - _educationLevel = new EducationLevelPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.EDUCATION_LEVEL__EDUCATION_LEVEL_FK1.getInverseKey()); - - return _educationLevel; - } - - private transient MaritalStatusPath _maritalStatus; - - /** - * Get the implicit to-many join path to the - * total_registered.marital_status table - */ - public MaritalStatusPath maritalStatus() { - if (_maritalStatus == null) - _maritalStatus = new MaritalStatusPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.MARITAL_STATUS__MARITAL_STATUS_FK1.getInverseKey()); - - return _maritalStatus; - } - - private transient RegMilCatPath _regMilCat; - - /** - * Get the implicit to-many join path to the - * total_registered.reg_mil_cat table - */ - public RegMilCatPath regMilCat() { - if (_regMilCat == null) - _regMilCat = new RegMilCatPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.REG_MIL_CAT__REG_MIL_CAT_FK1.getInverseKey()); - - return _regMilCat; - } - - private transient RemovedRegistryPath _removedRegistry; - - /** - * Get the implicit to-many join path to the - * total_registered.removed_registry table - */ - public RemovedRegistryPath removedRegistry() { - if (_removedRegistry == null) - _removedRegistry = new RemovedRegistryPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys.REMOVED_REGISTRY__REMOVED_REGISTRY_FK1.getInverseKey()); - - return _removedRegistry; - } - - @Override - public PubRecruitment as(String alias) { - return new PubRecruitment(DSL.name(alias), this); - } - - @Override - public PubRecruitment as(Name alias) { - return new PubRecruitment(alias, this); - } - - @Override - public PubRecruitment as(Table alias) { - return new PubRecruitment(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public PubRecruitment rename(String name) { - return new PubRecruitment(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public PubRecruitment rename(Name name) { - return new PubRecruitment(name, null); - } - - /** - * Rename this table - */ - @Override - public PubRecruitment rename(Table name) { - return new PubRecruitment(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public PubRecruitment where(Condition condition) { - return new PubRecruitment(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public PubRecruitment where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public PubRecruitment where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public PubRecruitment where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public PubRecruitment where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public PubRecruitment where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public PubRecruitment where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public PubRecruitment where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public PubRecruitment whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public PubRecruitment whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ReasonRegistration.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ReasonRegistration.java deleted file mode 100644 index 208dac7..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ReasonRegistration.java +++ /dev/null @@ -1,284 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen.CitizenPath; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.ReasonRegistrationRecord; - -import java.util.Collection; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class ReasonRegistration extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of public.reason_registration - */ - public static final ReasonRegistration REASON_REGISTRATION = new ReasonRegistration(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return ReasonRegistrationRecord.class; - } - - /** - * The column - * public.reason_registration.reason_registration_id. - */ - public final TableField REASON_REGISTRATION_ID = createField(DSL.name("reason_registration_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - - /** - * The column public.reason_registration.code. - */ - public final TableField CODE = createField(DSL.name("code"), SQLDataType.INTEGER.nullable(false), this, ""); - - /** - * The column public.reason_registration.name. - */ - public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR.nullable(false), this, ""); - - private ReasonRegistration(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private ReasonRegistration(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); - } - - /** - * Create an aliased public.reason_registration table reference - */ - public ReasonRegistration(String alias) { - this(DSL.name(alias), REASON_REGISTRATION); - } - - /** - * Create an aliased public.reason_registration table reference - */ - public ReasonRegistration(Name alias) { - this(alias, REASON_REGISTRATION); - } - - /** - * Create a public.reason_registration table reference - */ - public ReasonRegistration() { - this(DSL.name("reason_registration"), null); - } - - public ReasonRegistration(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, REASON_REGISTRATION); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class ReasonRegistrationPath extends ReasonRegistration implements Path { - public ReasonRegistrationPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private ReasonRegistrationPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public ReasonRegistrationPath as(String alias) { - return new ReasonRegistrationPath(DSL.name(alias), this); - } - - @Override - public ReasonRegistrationPath as(Name alias) { - return new ReasonRegistrationPath(alias, this); - } - - @Override - public ReasonRegistrationPath as(Table alias) { - return new ReasonRegistrationPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Public.PUBLIC; - } - - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.REASON_REGISTRATION_PKEY; - } - - private transient CitizenPath _citizen; - - /** - * Get the implicit to-many join path to the public.citizen - * table - */ - public CitizenPath citizen() { - if (_citizen == null) - _citizen = new CitizenPath(this, null, Keys.CITIZEN__P_CITIZEN_FK6.getInverseKey()); - - return _citizen; - } - - @Override - public ReasonRegistration as(String alias) { - return new ReasonRegistration(DSL.name(alias), this); - } - - @Override - public ReasonRegistration as(Name alias) { - return new ReasonRegistration(alias, this); - } - - @Override - public ReasonRegistration as(Table alias) { - return new ReasonRegistration(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public ReasonRegistration rename(String name) { - return new ReasonRegistration(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public ReasonRegistration rename(Name name) { - return new ReasonRegistration(name, null); - } - - /** - * Rename this table - */ - @Override - public ReasonRegistration rename(Table name) { - return new ReasonRegistration(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public ReasonRegistration where(Condition condition) { - return new ReasonRegistration(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public ReasonRegistration where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public ReasonRegistration where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public ReasonRegistration where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public ReasonRegistration where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public ReasonRegistration where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public ReasonRegistration where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public ReasonRegistration where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public ReasonRegistration whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public ReasonRegistration whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ChannelLogRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ChannelLogRecord.java new file mode 100644 index 0000000..8598a77 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ChannelLogRecord.java @@ -0,0 +1,236 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.ChannelLog; + +import java.sql.Date; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ChannelLogRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for public.channel_log.id_batch. + */ + public void setIdBatch(Long value) { + set(0, value); + } + + /** + * Getter for public.channel_log.id_batch. + */ + public Long getIdBatch() { + return (Long) get(0); + } + + /** + * Setter for public.channel_log.channel_id. + */ + public void setChannelId(String value) { + set(1, value); + } + + /** + * Getter for public.channel_log.channel_id. + */ + public String getChannelId() { + return (String) get(1); + } + + /** + * Setter for public.channel_log.log_date. + */ + public void setLogDate(Date value) { + set(2, value); + } + + /** + * Getter for public.channel_log.log_date. + */ + public Date getLogDate() { + return (Date) get(2); + } + + /** + * Setter for public.channel_log.logging_object_type. + */ + public void setLoggingObjectType(String value) { + set(3, value); + } + + /** + * Getter for public.channel_log.logging_object_type. + */ + public String getLoggingObjectType() { + return (String) get(3); + } + + /** + * Setter for public.channel_log.object_name. + */ + public void setObjectName(String value) { + set(4, value); + } + + /** + * Getter for public.channel_log.object_name. + */ + public String getObjectName() { + return (String) get(4); + } + + /** + * Setter for public.channel_log.object_copy. + */ + public void setObjectCopy(String value) { + set(5, value); + } + + /** + * Getter for public.channel_log.object_copy. + */ + public String getObjectCopy() { + return (String) get(5); + } + + /** + * Setter for public.channel_log.repository_directory. + */ + public void setRepositoryDirectory(String value) { + set(6, value); + } + + /** + * Getter for public.channel_log.repository_directory. + */ + public String getRepositoryDirectory() { + return (String) get(6); + } + + /** + * Setter for public.channel_log.filename. + */ + public void setFilename(String value) { + set(7, value); + } + + /** + * Getter for public.channel_log.filename. + */ + public String getFilename() { + return (String) get(7); + } + + /** + * Setter for public.channel_log.object_id. + */ + public void setObjectId(String value) { + set(8, value); + } + + /** + * Getter for public.channel_log.object_id. + */ + public String getObjectId() { + return (String) get(8); + } + + /** + * Setter for public.channel_log.object_version. + */ + public void setObjectVersion(String value) { + set(9, value); + } + + /** + * Getter for public.channel_log.object_version. + */ + public String getObjectVersion() { + return (String) get(9); + } + + /** + * Setter for public.channel_log.object_revision. + */ + public void setObjectRevision(String value) { + set(10, value); + } + + /** + * Getter for public.channel_log.object_revision. + */ + public String getObjectRevision() { + return (String) get(10); + } + + /** + * Setter for public.channel_log.parent_channel_id. + */ + public void setParentChannelId(String value) { + set(11, value); + } + + /** + * Getter for public.channel_log.parent_channel_id. + */ + public String getParentChannelId() { + return (String) get(11); + } + + /** + * Setter for public.channel_log.root_channel_id. + */ + public void setRootChannelId(String value) { + set(12, value); + } + + /** + * Getter for public.channel_log.root_channel_id. + */ + public String getRootChannelId() { + return (String) get(12); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ChannelLogRecord + */ + public ChannelLogRecord() { + super(ChannelLog.CHANNEL_LOG); + } + + /** + * Create a detached, initialised ChannelLogRecord + */ + public ChannelLogRecord(Long idBatch, String channelId, Date logDate, String loggingObjectType, String objectName, String objectCopy, String repositoryDirectory, String filename, String objectId, String objectVersion, String objectRevision, String parentChannelId, String rootChannelId) { + super(ChannelLog.CHANNEL_LOG); + + setIdBatch(idBatch); + setChannelId(channelId); + setLogDate(logDate); + setLoggingObjectType(loggingObjectType); + setObjectName(objectName); + setObjectCopy(objectCopy); + setRepositoryDirectory(repositoryDirectory); + setFilename(filename); + setObjectId(objectId); + setObjectVersion(objectVersion); + setObjectRevision(objectRevision); + setParentChannelId(parentChannelId); + setRootChannelId(rootChannelId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/CitizenRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/CitizenRecord.java deleted file mode 100644 index 10fb95f..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/CitizenRecord.java +++ /dev/null @@ -1,352 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Citizen; - -import java.sql.Date; -import java.util.UUID; - -import org.jooq.Record1; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class CitizenRecord extends UpdatableRecordImpl { - - private static final long serialVersionUID = 1L; - - /** - * Setter for public.citizen.id_ERN. - */ - public void setIdErn(String value) { - set(0, value); - } - - /** - * Getter for public.citizen.id_ERN. - */ - public String getIdErn() { - return (String) get(0); - } - - /** - * Setter for public.citizen.fio. - */ - public void setFio(String value) { - set(1, value); - } - - /** - * Getter for public.citizen.fio. - */ - public String getFio() { - return (String) get(1); - } - - /** - * Setter for public.citizen.residence. - */ - public void setResidence(String value) { - set(2, value); - } - - /** - * Getter for public.citizen.residence. - */ - public String getResidence() { - return (String) get(2); - } - - /** - * Setter for public.citizen.age. - */ - public void setAge(String value) { - set(3, value); - } - - /** - * Getter for public.citizen.age. - */ - public String getAge() { - return (String) get(3); - } - - /** - * Setter for public.citizen.recruitment. - */ - public void setRecruitment(String value) { - set(4, value); - } - - /** - * Getter for public.citizen.recruitment. - */ - public String getRecruitment() { - return (String) get(4); - } - - /** - * Setter for public.citizen.recruitment_id. - */ - public void setRecruitmentId(UUID value) { - set(5, value); - } - - /** - * Getter for public.citizen.recruitment_id. - */ - public UUID getRecruitmentId() { - return (UUID) get(5); - } - - /** - * Setter for public.citizen.gender_id. - */ - public void setGenderId(Long value) { - set(6, value); - } - - /** - * Getter for public.citizen.gender_id. - */ - public Long getGenderId() { - return (Long) get(6); - } - - /** - * Setter for public.citizen.marital_status_id. - */ - public void setMaritalStatusId(Long value) { - set(7, value); - } - - /** - * Getter for public.citizen.marital_status_id. - */ - public Long getMaritalStatusId() { - return (Long) get(7); - } - - /** - * Setter for public.citizen.education_id. - */ - public void setEducationId(Long value) { - set(8, value); - } - - /** - * Getter for public.citizen.education_id. - */ - public Long getEducationId() { - return (Long) get(8); - } - - /** - * Setter for public.citizen.employment_id. - */ - public void setEmploymentId(Long value) { - set(9, value); - } - - /** - * Getter for public.citizen.employment_id. - */ - public Long getEmploymentId() { - return (Long) get(9); - } - - /** - * Setter for public.citizen.urgent_service. - */ - public void setUrgentService(Boolean value) { - set(10, value); - } - - /** - * Getter for public.citizen.urgent_service. - */ - public Boolean getUrgentService() { - return (Boolean) get(10); - } - - /** - * Setter for public.citizen.contract_service. - */ - public void setContractService(Boolean value) { - set(11, value); - } - - /** - * Getter for public.citizen.contract_service. - */ - public Boolean getContractService() { - return (Boolean) get(11); - } - - /** - * Setter for public.citizen.mobilization. - */ - public void setMobilization(Boolean value) { - set(12, value); - } - - /** - * Getter for public.citizen.mobilization. - */ - public Boolean getMobilization() { - return (Boolean) get(12); - } - - /** - * Setter for public.citizen.is_registered. - */ - public void setIsRegistered(Boolean value) { - set(13, value); - } - - /** - * Getter for public.citizen.is_registered. - */ - public Boolean getIsRegistered() { - return (Boolean) get(13); - } - - /** - * Setter for public.citizen.reason_registration_id. - */ - public void setReasonRegistrationId(Integer value) { - set(14, value); - } - - /** - * Getter for public.citizen.reason_registration_id. - */ - public Integer getReasonRegistrationId() { - return (Integer) get(14); - } - - /** - * Setter for public.citizen.issue_date. - */ - public void setIssueDate(Date value) { - set(15, value); - } - - /** - * Getter for public.citizen.issue_date. - */ - public Date getIssueDate() { - return (Date) get(15); - } - - /** - * Setter for public.citizen.passport_series. - */ - public void setPassportSeries(String value) { - set(16, value); - } - - /** - * Getter for public.citizen.passport_series. - */ - public String getPassportSeries() { - return (String) get(16); - } - - /** - * Setter for public.citizen.passport_number. - */ - public void setPassportNumber(String value) { - set(17, value); - } - - /** - * Getter for public.citizen.passport_number. - */ - public String getPassportNumber() { - return (String) get(17); - } - - /** - * Setter for public.citizen.number_children. - */ - public void setNumberChildren(Integer value) { - set(18, value); - } - - /** - * Getter for public.citizen.number_children. - */ - public Integer getNumberChildren() { - return (Integer) get(18); - } - - /** - * Setter for public.citizen.phone. - */ - public void setPhone(String value) { - set(19, value); - } - - /** - * Getter for public.citizen.phone. - */ - public String getPhone() { - return (String) get(19); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached CitizenRecord - */ - public CitizenRecord() { - super(Citizen.CITIZEN); - } - - /** - * Create a detached, initialised CitizenRecord - */ - public CitizenRecord(String idErn, String fio, String residence, String age, String recruitment, UUID recruitmentId, Long genderId, Long maritalStatusId, Long educationId, Long employmentId, Boolean urgentService, Boolean contractService, Boolean mobilization, Boolean isRegistered, Integer reasonRegistrationId, Date issueDate, String passportSeries, String passportNumber, Integer numberChildren, String phone) { - super(Citizen.CITIZEN); - - setIdErn(idErn); - setFio(fio); - setResidence(residence); - setAge(age); - setRecruitment(recruitment); - setRecruitmentId(recruitmentId); - setGenderId(genderId); - setMaritalStatusId(maritalStatusId); - setEducationId(educationId); - setEmploymentId(employmentId); - setUrgentService(urgentService); - setContractService(contractService); - setMobilization(mobilization); - setIsRegistered(isRegistered); - setReasonRegistrationId(reasonRegistrationId); - setIssueDate(issueDate); - setPassportSeries(passportSeries); - setPassportNumber(passportNumber); - setNumberChildren(numberChildren); - setPhone(phone); - resetChangedOnNotNull(); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangelogRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangelogRecord.java new file mode 100644 index 0000000..8a6c2d9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangelogRecord.java @@ -0,0 +1,251 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Databasechangelog; + +import java.sql.Timestamp; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangelogRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for public.databasechangelog.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for public.databasechangelog.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for public.databasechangelog.author. + */ + public void setAuthor(String value) { + set(1, value); + } + + /** + * Getter for public.databasechangelog.author. + */ + public String getAuthor() { + return (String) get(1); + } + + /** + * Setter for public.databasechangelog.filename. + */ + public void setFilename(String value) { + set(2, value); + } + + /** + * Getter for public.databasechangelog.filename. + */ + public String getFilename() { + return (String) get(2); + } + + /** + * Setter for public.databasechangelog.dateexecuted. + */ + public void setDateexecuted(Timestamp value) { + set(3, value); + } + + /** + * Getter for public.databasechangelog.dateexecuted. + */ + public Timestamp getDateexecuted() { + return (Timestamp) get(3); + } + + /** + * Setter for public.databasechangelog.orderexecuted. + */ + public void setOrderexecuted(Integer value) { + set(4, value); + } + + /** + * Getter for public.databasechangelog.orderexecuted. + */ + public Integer getOrderexecuted() { + return (Integer) get(4); + } + + /** + * Setter for public.databasechangelog.exectype. + */ + public void setExectype(String value) { + set(5, value); + } + + /** + * Getter for public.databasechangelog.exectype. + */ + public String getExectype() { + return (String) get(5); + } + + /** + * Setter for public.databasechangelog.md5sum. + */ + public void setMd5sum(String value) { + set(6, value); + } + + /** + * Getter for public.databasechangelog.md5sum. + */ + public String getMd5sum() { + return (String) get(6); + } + + /** + * Setter for public.databasechangelog.description. + */ + public void setDescription(String value) { + set(7, value); + } + + /** + * Getter for public.databasechangelog.description. + */ + public String getDescription() { + return (String) get(7); + } + + /** + * Setter for public.databasechangelog.comments. + */ + public void setComments(String value) { + set(8, value); + } + + /** + * Getter for public.databasechangelog.comments. + */ + public String getComments() { + return (String) get(8); + } + + /** + * Setter for public.databasechangelog.tag. + */ + public void setTag(String value) { + set(9, value); + } + + /** + * Getter for public.databasechangelog.tag. + */ + public String getTag() { + return (String) get(9); + } + + /** + * Setter for public.databasechangelog.liquibase. + */ + public void setLiquibase(String value) { + set(10, value); + } + + /** + * Getter for public.databasechangelog.liquibase. + */ + public String getLiquibase() { + return (String) get(10); + } + + /** + * Setter for public.databasechangelog.contexts. + */ + public void setContexts(String value) { + set(11, value); + } + + /** + * Getter for public.databasechangelog.contexts. + */ + public String getContexts() { + return (String) get(11); + } + + /** + * Setter for public.databasechangelog.labels. + */ + public void setLabels(String value) { + set(12, value); + } + + /** + * Getter for public.databasechangelog.labels. + */ + public String getLabels() { + return (String) get(12); + } + + /** + * Setter for public.databasechangelog.deployment_id. + */ + public void setDeploymentId(String value) { + set(13, value); + } + + /** + * Getter for public.databasechangelog.deployment_id. + */ + public String getDeploymentId() { + return (String) get(13); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangelogRecord + */ + public DatabasechangelogRecord() { + super(Databasechangelog.DATABASECHANGELOG); + } + + /** + * Create a detached, initialised DatabasechangelogRecord + */ + public DatabasechangelogRecord(String id, String author, String filename, Timestamp dateexecuted, Integer orderexecuted, String exectype, String md5sum, String description, String comments, String tag, String liquibase, String contexts, String labels, String deploymentId) { + super(Databasechangelog.DATABASECHANGELOG); + + setId(id); + setAuthor(author); + setFilename(filename); + setDateexecuted(dateexecuted); + setOrderexecuted(orderexecuted); + setExectype(exectype); + setMd5sum(md5sum); + setDescription(description); + setComments(comments); + setTag(tag); + setLiquibase(liquibase); + setContexts(contexts); + setLabels(labels); + setDeploymentId(deploymentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangeloglockRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangeloglockRecord.java new file mode 100644 index 0000000..7d2c586 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/DatabasechangeloglockRecord.java @@ -0,0 +1,111 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Databasechangeloglock; + +import java.sql.Timestamp; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangeloglockRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for public.databasechangeloglock.id. + */ + public void setId(Integer value) { + set(0, value); + } + + /** + * Getter for public.databasechangeloglock.id. + */ + public Integer getId() { + return (Integer) get(0); + } + + /** + * Setter for public.databasechangeloglock.locked. + */ + public void setLocked(Boolean value) { + set(1, value); + } + + /** + * Getter for public.databasechangeloglock.locked. + */ + public Boolean getLocked() { + return (Boolean) get(1); + } + + /** + * Setter for public.databasechangeloglock.lockgranted. + */ + public void setLockgranted(Timestamp value) { + set(2, value); + } + + /** + * Getter for public.databasechangeloglock.lockgranted. + */ + public Timestamp getLockgranted() { + return (Timestamp) get(2); + } + + /** + * Setter for public.databasechangeloglock.lockedby. + */ + public void setLockedby(String value) { + set(3, value); + } + + /** + * Getter for public.databasechangeloglock.lockedby. + */ + public String getLockedby() { + return (String) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord() { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + } + + /** + * Create a detached, initialised DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord(Integer id, Boolean locked, Timestamp lockgranted, String lockedby) { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + + setId(id); + setLocked(locked); + setLockgranted(lockgranted); + setLockedby(lockedby); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EducationRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EducationRecord.java deleted file mode 100644 index 1883e0c..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EducationRecord.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Education; - -import org.jooq.Record1; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class EducationRecord extends UpdatableRecordImpl { - - private static final long serialVersionUID = 1L; - - /** - * Setter for public.education.education_id. - */ - public void setEducationId(Long value) { - set(0, value); - } - - /** - * Getter for public.education.education_id. - */ - public Long getEducationId() { - return (Long) get(0); - } - - /** - * Setter for public.education.code. - */ - public void setCode(Integer value) { - set(1, value); - } - - /** - * Getter for public.education.code. - */ - public Integer getCode() { - return (Integer) get(1); - } - - /** - * Setter for public.education.name. - */ - public void setName(String value) { - set(2, value); - } - - /** - * Getter for public.education.name. - */ - public String getName() { - return (String) get(2); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached EducationRecord - */ - public EducationRecord() { - super(Education.EDUCATION); - } - - /** - * Create a detached, initialised EducationRecord - */ - public EducationRecord(Long educationId, Integer code, String name) { - super(Education.EDUCATION); - - setEducationId(educationId); - setCode(code); - setName(name); - resetChangedOnNotNull(); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EmploymentRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EmploymentRecord.java deleted file mode 100644 index db494a6..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EmploymentRecord.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Employment; - -import org.jooq.Record1; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class EmploymentRecord extends UpdatableRecordImpl { - - private static final long serialVersionUID = 1L; - - /** - * Setter for public.employment.employment_id. - */ - public void setEmploymentId(Long value) { - set(0, value); - } - - /** - * Getter for public.employment.employment_id. - */ - public Long getEmploymentId() { - return (Long) get(0); - } - - /** - * Setter for public.employment.code. - */ - public void setCode(Integer value) { - set(1, value); - } - - /** - * Getter for public.employment.code. - */ - public Integer getCode() { - return (Integer) get(1); - } - - /** - * Setter for public.employment.name. - */ - public void setName(String value) { - set(2, value); - } - - /** - * Getter for public.employment.name. - */ - public String getName() { - return (String) get(2); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached EmploymentRecord - */ - public EmploymentRecord() { - super(Employment.EMPLOYMENT); - } - - /** - * Create a detached, initialised EmploymentRecord - */ - public EmploymentRecord(Long employmentId, Integer code, String name) { - super(Employment.EMPLOYMENT); - - setEmploymentId(employmentId); - setCode(code); - setName(name); - resetChangedOnNotNull(); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/GenderRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/GenderRecord.java deleted file mode 100644 index e3dd965..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/GenderRecord.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.Gender; - -import org.jooq.Record1; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class GenderRecord extends UpdatableRecordImpl { - - private static final long serialVersionUID = 1L; - - /** - * Setter for public.gender.gender_id. - */ - public void setGenderId(Long value) { - set(0, value); - } - - /** - * Getter for public.gender.gender_id. - */ - public Long getGenderId() { - return (Long) get(0); - } - - /** - * Setter for public.gender.code. - */ - public void setCode(String value) { - set(1, value); - } - - /** - * Getter for public.gender.code. - */ - public String getCode() { - return (String) get(1); - } - - /** - * Setter for public.gender.name. - */ - public void setName(String value) { - set(2, value); - } - - /** - * Getter for public.gender.name. - */ - public String getName() { - return (String) get(2); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached GenderRecord - */ - public GenderRecord() { - super(Gender.GENDER); - } - - /** - * Create a detached, initialised GenderRecord - */ - public GenderRecord(Long genderId, String code, String name) { - super(Gender.GENDER); - - setGenderId(genderId); - setCode(code); - setName(name); - resetChangedOnNotNull(); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobEntryLogRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobEntryLogRecord.java new file mode 100644 index 0000000..4ffdc95 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobEntryLogRecord.java @@ -0,0 +1,266 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.JobEntryLog; + +import java.sql.Date; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class JobEntryLogRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for public.job_entry_log.id_batch. + */ + public void setIdBatch(Long value) { + set(0, value); + } + + /** + * Getter for public.job_entry_log.id_batch. + */ + public Long getIdBatch() { + return (Long) get(0); + } + + /** + * Setter for public.job_entry_log.channel_id. + */ + public void setChannelId(String value) { + set(1, value); + } + + /** + * Getter for public.job_entry_log.channel_id. + */ + public String getChannelId() { + return (String) get(1); + } + + /** + * Setter for public.job_entry_log.log_date. + */ + public void setLogDate(Date value) { + set(2, value); + } + + /** + * Getter for public.job_entry_log.log_date. + */ + public Date getLogDate() { + return (Date) get(2); + } + + /** + * Setter for public.job_entry_log.transname. + */ + public void setTransname(String value) { + set(3, value); + } + + /** + * Getter for public.job_entry_log.transname. + */ + public String getTransname() { + return (String) get(3); + } + + /** + * Setter for public.job_entry_log.stepname. + */ + public void setStepname(String value) { + set(4, value); + } + + /** + * Getter for public.job_entry_log.stepname. + */ + public String getStepname() { + return (String) get(4); + } + + /** + * Setter for public.job_entry_log.lines_read. + */ + public void setLinesRead(String value) { + set(5, value); + } + + /** + * Getter for public.job_entry_log.lines_read. + */ + public String getLinesRead() { + return (String) get(5); + } + + /** + * Setter for public.job_entry_log.lines_written. + */ + public void setLinesWritten(String value) { + set(6, value); + } + + /** + * Getter for public.job_entry_log.lines_written. + */ + public String getLinesWritten() { + return (String) get(6); + } + + /** + * Setter for public.job_entry_log.lines_updated. + */ + public void setLinesUpdated(String value) { + set(7, value); + } + + /** + * Getter for public.job_entry_log.lines_updated. + */ + public String getLinesUpdated() { + return (String) get(7); + } + + /** + * Setter for public.job_entry_log.lines_input. + */ + public void setLinesInput(String value) { + set(8, value); + } + + /** + * Getter for public.job_entry_log.lines_input. + */ + public String getLinesInput() { + return (String) get(8); + } + + /** + * Setter for public.job_entry_log.lines_output. + */ + public void setLinesOutput(String value) { + set(9, value); + } + + /** + * Getter for public.job_entry_log.lines_output. + */ + public String getLinesOutput() { + return (String) get(9); + } + + /** + * Setter for public.job_entry_log.lines_rejected. + */ + public void setLinesRejected(String value) { + set(10, value); + } + + /** + * Getter for public.job_entry_log.lines_rejected. + */ + public String getLinesRejected() { + return (String) get(10); + } + + /** + * Setter for public.job_entry_log.errors. + */ + public void setErrors(String value) { + set(11, value); + } + + /** + * Getter for public.job_entry_log.errors. + */ + public String getErrors() { + return (String) get(11); + } + + /** + * Setter for public.job_entry_log.RESULT. + */ + public void setResult(String value) { + set(12, value); + } + + /** + * Getter for public.job_entry_log.RESULT. + */ + public String getResult() { + return (String) get(12); + } + + /** + * Setter for public.job_entry_log.nr_result_rows. + */ + public void setNrResultRows(String value) { + set(13, value); + } + + /** + * Getter for public.job_entry_log.nr_result_rows. + */ + public String getNrResultRows() { + return (String) get(13); + } + + /** + * Setter for public.job_entry_log.nr_result_files. + */ + public void setNrResultFiles(String value) { + set(14, value); + } + + /** + * Getter for public.job_entry_log.nr_result_files. + */ + public String getNrResultFiles() { + return (String) get(14); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached JobEntryLogRecord + */ + public JobEntryLogRecord() { + super(JobEntryLog.JOB_ENTRY_LOG); + } + + /** + * Create a detached, initialised JobEntryLogRecord + */ + public JobEntryLogRecord(Long idBatch, String channelId, Date logDate, String transname, String stepname, String linesRead, String linesWritten, String linesUpdated, String linesInput, String linesOutput, String linesRejected, String errors, String result, String nrResultRows, String nrResultFiles) { + super(JobEntryLog.JOB_ENTRY_LOG); + + setIdBatch(idBatch); + setChannelId(channelId); + setLogDate(logDate); + setTransname(transname); + setStepname(stepname); + setLinesRead(linesRead); + setLinesWritten(linesWritten); + setLinesUpdated(linesUpdated); + setLinesInput(linesInput); + setLinesOutput(linesOutput); + setLinesRejected(linesRejected); + setErrors(errors); + setResult(result); + setNrResultRows(nrResultRows); + setNrResultFiles(nrResultFiles); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobLogRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobLogRecord.java new file mode 100644 index 0000000..2fb0ae1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/JobLogRecord.java @@ -0,0 +1,306 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.JobLog; + +import java.sql.Timestamp; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class JobLogRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for public.job_log.jobname. + */ + public void setJobname(String value) { + set(0, value); + } + + /** + * Getter for public.job_log.jobname. + */ + public String getJobname() { + return (String) get(0); + } + + /** + * Setter for public.job_log.status. + */ + public void setStatus(String value) { + set(1, value); + } + + /** + * Getter for public.job_log.status. + */ + public String getStatus() { + return (String) get(1); + } + + /** + * Setter for public.job_log.enddate. + */ + public void setEnddate(Timestamp value) { + set(2, value); + } + + /** + * Getter for public.job_log.enddate. + */ + public Timestamp getEnddate() { + return (Timestamp) get(2); + } + + /** + * Setter for public.job_log.depdate. + */ + public void setDepdate(Timestamp value) { + set(3, value); + } + + /** + * Getter for public.job_log.depdate. + */ + public Timestamp getDepdate() { + return (Timestamp) get(3); + } + + /** + * Setter for public.job_log.startdate. + */ + public void setStartdate(Timestamp value) { + set(4, value); + } + + /** + * Getter for public.job_log.startdate. + */ + public Timestamp getStartdate() { + return (Timestamp) get(4); + } + + /** + * Setter for public.job_log.logdate. + */ + public void setLogdate(Timestamp value) { + set(5, value); + } + + /** + * Getter for public.job_log.logdate. + */ + public Timestamp getLogdate() { + return (Timestamp) get(5); + } + + /** + * Setter for public.job_log.channel_id. + */ + public void setChannelId(String value) { + set(6, value); + } + + /** + * Getter for public.job_log.channel_id. + */ + public String getChannelId() { + return (String) get(6); + } + + /** + * Setter for public.job_log.id_job. + */ + public void setIdJob(Long value) { + set(7, value); + } + + /** + * Getter for public.job_log.id_job. + */ + public Long getIdJob() { + return (Long) get(7); + } + + /** + * Setter for public.job_log.replaydate. + */ + public void setReplaydate(Timestamp value) { + set(8, value); + } + + /** + * Getter for public.job_log.replaydate. + */ + public Timestamp getReplaydate() { + return (Timestamp) get(8); + } + + /** + * Setter for public.job_log.log_field. + */ + public void setLogField(String value) { + set(9, value); + } + + /** + * Getter for public.job_log.log_field. + */ + public String getLogField() { + return (String) get(9); + } + + /** + * Setter for public.job_log.errors. + */ + public void setErrors(Integer value) { + set(10, value); + } + + /** + * Getter for public.job_log.errors. + */ + public Integer getErrors() { + return (Integer) get(10); + } + + /** + * Setter for public.job_log.lines_rejected. + */ + public void setLinesRejected(Integer value) { + set(11, value); + } + + /** + * Getter for public.job_log.lines_rejected. + */ + public Integer getLinesRejected() { + return (Integer) get(11); + } + + /** + * Setter for public.job_log.lines_updated. + */ + public void setLinesUpdated(Integer value) { + set(12, value); + } + + /** + * Getter for public.job_log.lines_updated. + */ + public Integer getLinesUpdated() { + return (Integer) get(12); + } + + /** + * Setter for public.job_log.lines_input. + */ + public void setLinesInput(Integer value) { + set(13, value); + } + + /** + * Getter for public.job_log.lines_input. + */ + public Integer getLinesInput() { + return (Integer) get(13); + } + + /** + * Setter for public.job_log.lines_output. + */ + public void setLinesOutput(Integer value) { + set(14, value); + } + + /** + * Getter for public.job_log.lines_output. + */ + public Integer getLinesOutput() { + return (Integer) get(14); + } + + /** + * Setter for public.job_log.lines_written. + */ + public void setLinesWritten(Integer value) { + set(15, value); + } + + /** + * Getter for public.job_log.lines_written. + */ + public Integer getLinesWritten() { + return (Integer) get(15); + } + + /** + * Setter for public.job_log.lines_read. + */ + public void setLinesRead(Integer value) { + set(16, value); + } + + /** + * Getter for public.job_log.lines_read. + */ + public Integer getLinesRead() { + return (Integer) get(16); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached JobLogRecord + */ + public JobLogRecord() { + super(JobLog.JOB_LOG); + } + + /** + * Create a detached, initialised JobLogRecord + */ + public JobLogRecord(String jobname, String status, Timestamp enddate, Timestamp depdate, Timestamp startdate, Timestamp logdate, String channelId, Long idJob, Timestamp replaydate, String logField, Integer errors, Integer linesRejected, Integer linesUpdated, Integer linesInput, Integer linesOutput, Integer linesWritten, Integer linesRead) { + super(JobLog.JOB_LOG); + + setJobname(jobname); + setStatus(status); + setEnddate(enddate); + setDepdate(depdate); + setStartdate(startdate); + setLogdate(logdate); + setChannelId(channelId); + setIdJob(idJob); + setReplaydate(replaydate); + setLogField(logField); + setErrors(errors); + setLinesRejected(linesRejected); + setLinesUpdated(linesUpdated); + setLinesInput(linesInput); + setLinesOutput(linesOutput); + setLinesWritten(linesWritten); + setLinesRead(linesRead); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/MaritalStatusRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/MaritalStatusRecord.java deleted file mode 100644 index c26baaf..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/MaritalStatusRecord.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.MaritalStatus; - -import org.jooq.Record1; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class MaritalStatusRecord extends UpdatableRecordImpl { - - private static final long serialVersionUID = 1L; - - /** - * Setter for public.marital_status.marital_status_id. - */ - public void setMaritalStatusId(Long value) { - set(0, value); - } - - /** - * Getter for public.marital_status.marital_status_id. - */ - public Long getMaritalStatusId() { - return (Long) get(0); - } - - /** - * Setter for public.marital_status.code. - */ - public void setCode(String value) { - set(1, value); - } - - /** - * Getter for public.marital_status.code. - */ - public String getCode() { - return (String) get(1); - } - - /** - * Setter for public.marital_status.name. - */ - public void setName(String value) { - set(2, value); - } - - /** - * Getter for public.marital_status.name. - */ - public String getName() { - return (String) get(2); - } - - /** - * Setter for public.marital_status.gender_id. - */ - public void setGenderId(Long value) { - set(3, value); - } - - /** - * Getter for public.marital_status.gender_id. - */ - public Long getGenderId() { - return (Long) get(3); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached MaritalStatusRecord - */ - public MaritalStatusRecord() { - super(MaritalStatus.MARITAL_STATUS); - } - - /** - * Create a detached, initialised MaritalStatusRecord - */ - public MaritalStatusRecord(Long maritalStatusId, String code, String name, Long genderId) { - super(MaritalStatus.MARITAL_STATUS); - - setMaritalStatusId(maritalStatusId); - setCode(code); - setName(name); - setGenderId(genderId); - resetChangedOnNotNull(); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/PubRecruitmentRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/PubRecruitmentRecord.java deleted file mode 100644 index e40e328..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/PubRecruitmentRecord.java +++ /dev/null @@ -1,577 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment; - -import java.sql.Timestamp; -import java.util.UUID; - -import org.jooq.Record1; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class PubRecruitmentRecord extends UpdatableRecordImpl { - - private static final long serialVersionUID = 1L; - - /** - * Setter for public.pub_recruitment.id. - */ - public void setId(UUID value) { - set(0, value); - } - - /** - * Getter for public.pub_recruitment.id. - */ - public UUID getId() { - return (UUID) get(0); - } - - /** - * Setter for public.pub_recruitment.idm_id. - */ - public void setIdmId(String value) { - set(1, value); - } - - /** - * Getter for public.pub_recruitment.idm_id. - */ - public String getIdmId() { - return (String) get(1); - } - - /** - * Setter for public.pub_recruitment.parent_id. - */ - public void setParentId(String value) { - set(2, value); - } - - /** - * Getter for public.pub_recruitment.parent_id. - */ - public String getParentId() { - return (String) get(2); - } - - /** - * Setter for public.pub_recruitment.version. - */ - public void setVersion(Integer value) { - set(3, value); - } - - /** - * Getter for public.pub_recruitment.version. - */ - public Integer getVersion() { - return (Integer) get(3); - } - - /** - * Setter for public.pub_recruitment.created_at. - */ - public void setCreatedAt(Timestamp value) { - set(4, value); - } - - /** - * Getter for public.pub_recruitment.created_at. - */ - public Timestamp getCreatedAt() { - return (Timestamp) get(4); - } - - /** - * Setter for public.pub_recruitment.updated_at. - */ - public void setUpdatedAt(Timestamp value) { - set(5, value); - } - - /** - * Getter for public.pub_recruitment.updated_at. - */ - public Timestamp getUpdatedAt() { - return (Timestamp) get(5); - } - - /** - * Setter for public.pub_recruitment.schema. - */ - public void setSchema(String value) { - set(6, value); - } - - /** - * Getter for public.pub_recruitment.schema. - */ - public String getSchema() { - return (String) get(6); - } - - /** - * Setter for public.pub_recruitment.military_code. - */ - public void setMilitaryCode(String value) { - set(7, value); - } - - /** - * Getter for public.pub_recruitment.military_code. - */ - public String getMilitaryCode() { - return (String) get(7); - } - - /** - * Setter for public.pub_recruitment.shortname. - */ - public void setShortname(String value) { - set(8, value); - } - - /** - * Getter for public.pub_recruitment.shortname. - */ - public String getShortname() { - return (String) get(8); - } - - /** - * Setter for public.pub_recruitment.fullname. - */ - public void setFullname(String value) { - set(9, value); - } - - /** - * Getter for public.pub_recruitment.fullname. - */ - public String getFullname() { - return (String) get(9); - } - - /** - * Setter for public.pub_recruitment.dns. - */ - public void setDns(String value) { - set(10, value); - } - - /** - * Getter for public.pub_recruitment.dns. - */ - public String getDns() { - return (String) get(10); - } - - /** - * Setter for public.pub_recruitment.email. - */ - public void setEmail(String value) { - set(11, value); - } - - /** - * Getter for public.pub_recruitment.email. - */ - public String getEmail() { - return (String) get(11); - } - - /** - * Setter for public.pub_recruitment.phone. - */ - public void setPhone(String value) { - set(12, value); - } - - /** - * Getter for public.pub_recruitment.phone. - */ - public String getPhone() { - return (String) get(12); - } - - /** - * Setter for public.pub_recruitment.address. - */ - public void setAddress(String value) { - set(13, value); - } - - /** - * Getter for public.pub_recruitment.address. - */ - public String getAddress() { - return (String) get(13); - } - - /** - * Setter for public.pub_recruitment.address_id. - */ - public void setAddressId(String value) { - set(14, value); - } - - /** - * Getter for public.pub_recruitment.address_id. - */ - public String getAddressId() { - return (String) get(14); - } - - /** - * Setter for public.pub_recruitment.postal_address. - */ - public void setPostalAddress(String value) { - set(15, value); - } - - /** - * Getter for public.pub_recruitment.postal_address. - */ - public String getPostalAddress() { - return (String) get(15); - } - - /** - * Setter for public.pub_recruitment.postal_address_id. - */ - public void setPostalAddressId(String value) { - set(16, value); - } - - /** - * Getter for public.pub_recruitment.postal_address_id. - */ - public String getPostalAddressId() { - return (String) get(16); - } - - /** - * Setter for public.pub_recruitment.nsi_department_id. - */ - public void setNsiDepartmentId(String value) { - set(17, value); - } - - /** - * Getter for public.pub_recruitment.nsi_department_id. - */ - public String getNsiDepartmentId() { - return (String) get(17); - } - - /** - * Setter for public.pub_recruitment.nsi_organization_id. - */ - public void setNsiOrganizationId(String value) { - set(18, value); - } - - /** - * Getter for public.pub_recruitment.nsi_organization_id. - */ - public String getNsiOrganizationId() { - return (String) get(18); - } - - /** - * Setter for public.pub_recruitment.oktmo. - */ - public void setOktmo(String value) { - set(19, value); - } - - /** - * Getter for public.pub_recruitment.oktmo. - */ - public String getOktmo() { - return (String) get(19); - } - - /** - * Setter for public.pub_recruitment.org_ogrn. - */ - public void setOrgOgrn(String value) { - set(20, value); - } - - /** - * Getter for public.pub_recruitment.org_ogrn. - */ - public String getOrgOgrn() { - return (String) get(20); - } - - /** - * Setter for public.pub_recruitment.dep_ogrn. - */ - public void setDepOgrn(String value) { - set(21, value); - } - - /** - * Getter for public.pub_recruitment.dep_ogrn. - */ - public String getDepOgrn() { - return (String) get(21); - } - - /** - * Setter for public.pub_recruitment.epgu_id. - */ - public void setEpguId(String value) { - set(22, value); - } - - /** - * Getter for public.pub_recruitment.epgu_id. - */ - public String getEpguId() { - return (String) get(22); - } - - /** - * Setter for public.pub_recruitment.kpp. - */ - public void setKpp(String value) { - set(23, value); - } - - /** - * Getter for public.pub_recruitment.kpp. - */ - public String getKpp() { - return (String) get(23); - } - - /** - * Setter for public.pub_recruitment.inn. - */ - public void setInn(String value) { - set(24, value); - } - - /** - * Getter for public.pub_recruitment.inn. - */ - public String getInn() { - return (String) get(24); - } - - /** - * Setter for public.pub_recruitment.okato. - */ - public void setOkato(String value) { - set(25, value); - } - - /** - * Getter for public.pub_recruitment.okato. - */ - public String getOkato() { - return (String) get(25); - } - - /** - * Setter for public.pub_recruitment.division_type. - */ - public void setDivisionType(String value) { - set(26, value); - } - - /** - * Getter for public.pub_recruitment.division_type. - */ - public String getDivisionType() { - return (String) get(26); - } - - /** - * Setter for public.pub_recruitment.tns_department_id. - */ - public void setTnsDepartmentId(String value) { - set(27, value); - } - - /** - * Getter for public.pub_recruitment.tns_department_id. - */ - public String getTnsDepartmentId() { - return (String) get(27); - } - - /** - * Setter for public.pub_recruitment.enabled. - */ - public void setEnabled(Boolean value) { - set(28, value); - } - - /** - * Getter for public.pub_recruitment.enabled. - */ - public Boolean getEnabled() { - return (Boolean) get(28); - } - - /** - * Setter for public.pub_recruitment.timezone. - */ - public void setTimezone(String value) { - set(29, value); - } - - /** - * Getter for public.pub_recruitment.timezone. - */ - public String getTimezone() { - return (String) get(29); - } - - /** - * Setter for public.pub_recruitment.reports_enabled. - */ - public void setReportsEnabled(Boolean value) { - set(30, value); - } - - /** - * Getter for public.pub_recruitment.reports_enabled. - */ - public Boolean getReportsEnabled() { - return (Boolean) get(30); - } - - /** - * Setter for public.pub_recruitment.region_id. - */ - public void setRegionId(String value) { - set(31, value); - } - - /** - * Getter for public.pub_recruitment.region_id. - */ - public String getRegionId() { - return (String) get(31); - } - - /** - * Setter for public.pub_recruitment.series. - */ - public void setSeries(String value) { - set(32, value); - } - - /** - * Getter for public.pub_recruitment.series. - */ - public String getSeries() { - return (String) get(32); - } - - /** - * Setter for public.pub_recruitment.hidden. - */ - public void setHidden(Boolean value) { - set(33, value); - } - - /** - * Getter for public.pub_recruitment.hidden. - */ - public Boolean getHidden() { - return (Boolean) get(33); - } - - /** - * Setter for public.pub_recruitment.sort. - */ - public void setSort(Integer value) { - set(34, value); - } - - /** - * Getter for public.pub_recruitment.sort. - */ - public Integer getSort() { - return (Integer) get(34); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached PubRecruitmentRecord - */ - public PubRecruitmentRecord() { - super(PubRecruitment.PUB_RECRUITMENT); - } - - /** - * Create a detached, initialised PubRecruitmentRecord - */ - public PubRecruitmentRecord(UUID id, String idmId, String parentId, Integer version, Timestamp createdAt, Timestamp updatedAt, String schema, String militaryCode, String shortname, String fullname, String dns, String email, String phone, String address, String addressId, String postalAddress, String postalAddressId, String nsiDepartmentId, String nsiOrganizationId, String oktmo, String orgOgrn, String depOgrn, String epguId, String kpp, String inn, String okato, String divisionType, String tnsDepartmentId, Boolean enabled, String timezone, Boolean reportsEnabled, String regionId, String series, Boolean hidden, Integer sort) { - super(PubRecruitment.PUB_RECRUITMENT); - - setId(id); - setIdmId(idmId); - setParentId(parentId); - setVersion(version); - setCreatedAt(createdAt); - setUpdatedAt(updatedAt); - setSchema(schema); - setMilitaryCode(militaryCode); - setShortname(shortname); - setFullname(fullname); - setDns(dns); - setEmail(email); - setPhone(phone); - setAddress(address); - setAddressId(addressId); - setPostalAddress(postalAddress); - setPostalAddressId(postalAddressId); - setNsiDepartmentId(nsiDepartmentId); - setNsiOrganizationId(nsiOrganizationId); - setOktmo(oktmo); - setOrgOgrn(orgOgrn); - setDepOgrn(depOgrn); - setEpguId(epguId); - setKpp(kpp); - setInn(inn); - setOkato(okato); - setDivisionType(divisionType); - setTnsDepartmentId(tnsDepartmentId); - setEnabled(enabled); - setTimezone(timezone); - setReportsEnabled(reportsEnabled); - setRegionId(regionId); - setSeries(series); - setHidden(hidden); - setSort(sort); - resetChangedOnNotNull(); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ReasonRegistrationRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ReasonRegistrationRecord.java deleted file mode 100644 index 383a9ef..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ReasonRegistrationRecord.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.ReasonRegistration; - -import org.jooq.Record1; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class ReasonRegistrationRecord extends UpdatableRecordImpl { - - private static final long serialVersionUID = 1L; - - /** - * Setter for - * public.reason_registration.reason_registration_id. - */ - public void setReasonRegistrationId(Long value) { - set(0, value); - } - - /** - * Getter for - * public.reason_registration.reason_registration_id. - */ - public Long getReasonRegistrationId() { - return (Long) get(0); - } - - /** - * Setter for public.reason_registration.code. - */ - public void setCode(Integer value) { - set(1, value); - } - - /** - * Getter for public.reason_registration.code. - */ - public Integer getCode() { - return (Integer) get(1); - } - - /** - * Setter for public.reason_registration.name. - */ - public void setName(String value) { - set(2, value); - } - - /** - * Getter for public.reason_registration.name. - */ - public String getName() { - return (String) get(2); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached ReasonRegistrationRecord - */ - public ReasonRegistrationRecord() { - super(ReasonRegistration.REASON_REGISTRATION); - } - - /** - * Create a detached, initialised ReasonRegistrationRecord - */ - public ReasonRegistrationRecord(Long reasonRegistrationId, Integer code, String name) { - super(ReasonRegistration.REASON_REGISTRATION); - - setReasonRegistrationId(reasonRegistrationId); - setCode(code); - setName(name); - resetChangedOnNotNull(); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Keys.java index 394b75d..1cb3d58 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Keys.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Keys.java @@ -4,14 +4,16 @@ package ervu_dashboard.ervu_dashboard.db_beans.ratings; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.PubRecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.PubRecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.records.RecruitmentRecord; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.AppearSubppoena; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConscriptionInfo; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationComplaint; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.Recruitment; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.AppearSubppoenaRecord; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.ConscriptionInfoRecord; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.ConsiderationComplaintRecord; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.RecruitmentRecord; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.RegionRecord; @@ -34,17 +36,17 @@ public class Keys { // ------------------------------------------------------------------------- public static final UniqueKey PK_APPEAR_SUBPPOENA = Internal.createUniqueKey(AppearSubppoena.APPEAR_SUBPPOENA, DSL.name("pk_appear_subppoena"), new TableField[] { AppearSubppoena.APPEAR_SUBPPOENA.ID_APPEAR_SUBPPOENA }, true); + public static final UniqueKey PK_CONSCRIPTION_INFO = Internal.createUniqueKey(ConscriptionInfo.CONSCRIPTION_INFO, DSL.name("pk_conscription_info"), new TableField[] { ConscriptionInfo.CONSCRIPTION_INFO.CONSCRIPTION_INFO_ID }, true); public static final UniqueKey PK_CONSIDERATION_COMPLAINT = Internal.createUniqueKey(ConsiderationComplaint.CONSIDERATION_COMPLAINT, DSL.name("pk_consideration_complaint"), new TableField[] { ConsiderationComplaint.CONSIDERATION_COMPLAINT.ID_CONSIDERATION_COMPLAINT }, true); - public static final UniqueKey PK_RECRUITMENT = Internal.createUniqueKey(Recruitment.RECRUITMENT, DSL.name("pk_recruitment"), new TableField[] { Recruitment.RECRUITMENT.ID_RECRUITMENT }, true); // ------------------------------------------------------------------------- // FOREIGN KEY definitions // ------------------------------------------------------------------------- - public static final ForeignKey APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_FK1 = Internal.createForeignKey(AppearSubppoena.APPEAR_SUBPPOENA, DSL.name("appear_subppoena_fk1"), new TableField[] { AppearSubppoena.APPEAR_SUBPPOENA.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final ForeignKey APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_FK1 = Internal.createForeignKey(AppearSubppoena.APPEAR_SUBPPOENA, DSL.name("appear_subppoena_fk1"), new TableField[] { AppearSubppoena.APPEAR_SUBPPOENA.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.RECRUITMENT_PKEY, new TableField[] { Recruitment.RECRUITMENT.ID }, true); public static final ForeignKey APPEAR_SUBPPOENA__FK_REGION = Internal.createForeignKey(AppearSubppoena.APPEAR_SUBPPOENA, DSL.name("fk_region"), new TableField[] { AppearSubppoena.APPEAR_SUBPPOENA.ID_REGION }, ervu_dashboard.ervu_dashboard.db_beans.space.Keys.PK_REGION, new TableField[] { Region.REGION.ID_REGION }, true); - public static final ForeignKey CONSIDERATION_COMPLAINT__CONSIDERATION_COMPLAINT_FK1 = Internal.createForeignKey(ConsiderationComplaint.CONSIDERATION_COMPLAINT, DSL.name("consideration_complaint_fk1"), new TableField[] { ConsiderationComplaint.CONSIDERATION_COMPLAINT.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final ForeignKey CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK1 = Internal.createForeignKey(ConscriptionInfo.CONSCRIPTION_INFO, DSL.name("conscription_info_fk1"), new TableField[] { ConscriptionInfo.CONSCRIPTION_INFO.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.RECRUITMENT_PKEY, new TableField[] { Recruitment.RECRUITMENT.ID }, true); + public static final ForeignKey CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK2 = Internal.createForeignKey(ConscriptionInfo.CONSCRIPTION_INFO, DSL.name("conscription_info_fk2"), new TableField[] { ConscriptionInfo.CONSCRIPTION_INFO.ID_REGION }, ervu_dashboard.ervu_dashboard.db_beans.space.Keys.PK_REGION, new TableField[] { Region.REGION.ID_REGION }, true); + public static final ForeignKey CONSIDERATION_COMPLAINT__CONSIDERATION_COMPLAINT_FK1 = Internal.createForeignKey(ConsiderationComplaint.CONSIDERATION_COMPLAINT, DSL.name("consideration_complaint_fk1"), new TableField[] { ConsiderationComplaint.CONSIDERATION_COMPLAINT.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.PUB_RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); public static final ForeignKey CONSIDERATION_COMPLAINT__FK_REGION = Internal.createForeignKey(ConsiderationComplaint.CONSIDERATION_COMPLAINT, DSL.name("fk_region"), new TableField[] { ConsiderationComplaint.CONSIDERATION_COMPLAINT.ID_REGION }, ervu_dashboard.ervu_dashboard.db_beans.space.Keys.PK_REGION, new TableField[] { Region.REGION.ID_REGION }, true); - public static final ForeignKey RECRUITMENT__FK_REGION = Internal.createForeignKey(Recruitment.RECRUITMENT, DSL.name("fk_region"), new TableField[] { Recruitment.RECRUITMENT.ID_REGION }, ervu_dashboard.ervu_dashboard.db_beans.space.Keys.PK_REGION, new TableField[] { Region.REGION.ID_REGION }, true); - public static final ForeignKey RECRUITMENT__R_RECRUITMENT_FK1 = Internal.createForeignKey(Recruitment.RECRUITMENT, DSL.name("r_recruitment_fk1"), new TableField[] { Recruitment.RECRUITMENT.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Ratings.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Ratings.java index 54ab840..0b092da 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Ratings.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Ratings.java @@ -6,13 +6,14 @@ package ervu_dashboard.ervu_dashboard.db_beans.ratings; import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.AppearSubppoena; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConscriptionInfo; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationComplaint; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.Recruitment; import java.util.Arrays; import java.util.List; import org.jooq.Catalog; +import org.jooq.Sequence; import org.jooq.Table; import org.jooq.impl.SchemaImpl; @@ -35,16 +36,16 @@ public class Ratings extends SchemaImpl { */ public final AppearSubppoena APPEAR_SUBPPOENA = AppearSubppoena.APPEAR_SUBPPOENA; + /** + * Призыв уровень РФ + */ + public final ConscriptionInfo CONSCRIPTION_INFO = ConscriptionInfo.CONSCRIPTION_INFO; + /** * Рассмотрение жалоб уровень РФ */ public final ConsiderationComplaint CONSIDERATION_COMPLAINT = ConsiderationComplaint.CONSIDERATION_COMPLAINT; - /** - * Призыв уровень РФ - */ - public final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; - /** * No further instances allowed */ @@ -58,12 +59,19 @@ public class Ratings extends SchemaImpl { return DefaultCatalog.DEFAULT_CATALOG; } + @Override + public final List> getSequences() { + return Arrays.asList( + Sequences.RATINGS_CONSCRIPTION_INFO_ID_RATINGS_CONSCRIPTION_INFO_SEQ + ); + } + @Override public final List> getTables() { return Arrays.asList( AppearSubppoena.APPEAR_SUBPPOENA, - ConsiderationComplaint.CONSIDERATION_COMPLAINT, - Recruitment.RECRUITMENT + ConscriptionInfo.CONSCRIPTION_INFO, + ConsiderationComplaint.CONSIDERATION_COMPLAINT ); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Sequences.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Sequences.java new file mode 100644 index 0000000..4ac206f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Sequences.java @@ -0,0 +1,23 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ratings; + + +import org.jooq.Sequence; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * Convenience access to all sequences in ratings. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Sequences { + + /** + * The sequence + * ratings.ratings.conscription_info_id_ratings.conscription_info_seq + */ + public static final Sequence RATINGS_CONSCRIPTION_INFO_ID_RATINGS_CONSCRIPTION_INFO_SEQ = Internal.createSequence("ratings.conscription_info_id_ratings.conscription_info_seq", Ratings.RATINGS, SQLDataType.BIGINT.nullable(false), null, null, null, null, false, null); +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Tables.java index c6fd6df..fc11055 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Tables.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Tables.java @@ -5,8 +5,8 @@ package ervu_dashboard.ervu_dashboard.db_beans.ratings; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.AppearSubppoena; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConscriptionInfo; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationComplaint; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.Recruitment; /** @@ -20,13 +20,13 @@ public class Tables { */ public static final AppearSubppoena APPEAR_SUBPPOENA = AppearSubppoena.APPEAR_SUBPPOENA; + /** + * Призыв уровень РФ + */ + public static final ConscriptionInfo CONSCRIPTION_INFO = ConscriptionInfo.CONSCRIPTION_INFO; + /** * Рассмотрение жалоб уровень РФ */ public static final ConsiderationComplaint CONSIDERATION_COMPLAINT = ConsiderationComplaint.CONSIDERATION_COMPLAINT; - - /** - * Призыв уровень РФ - */ - public static final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/AppearSubppoena.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/AppearSubppoena.java index 66f455f..fcc63d0 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/AppearSubppoena.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/AppearSubppoena.java @@ -4,7 +4,7 @@ package ervu_dashboard.ervu_dashboard.db_beans.ratings.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment.RecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys; import ervu_dashboard.ervu_dashboard.db_beans.ratings.Ratings; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.AppearSubppoenaRecord; @@ -15,7 +15,6 @@ import java.sql.Date; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -92,7 +91,7 @@ public class AppearSubppoena extends TableImpl { /** * The column ratings.appear_subppoena.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); private AppearSubppoena(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -186,17 +185,17 @@ public class AppearSubppoena extends TableImpl { return _region; } - private transient PubRecruitmentPath _pubRecruitment; + private transient RecruitmentPath _recruitment; /** - * Get the implicit join path to the public.pub_recruitment + * Get the implicit join path to the ervu_dashboard.recruitment * table. */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_FK1, null); + public RecruitmentPath recruitment() { + if (_recruitment == null) + _recruitment = new RecruitmentPath(this, Keys.APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_FK1, null); - return _pubRecruitment; + return _recruitment; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConscriptionInfo.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConscriptionInfo.java new file mode 100644 index 0000000..e860ac3 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConscriptionInfo.java @@ -0,0 +1,323 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ratings.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment.RecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.Ratings; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.ConscriptionInfoRecord; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region.RegionPath; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.ForeignKey; +import org.jooq.InverseForeignKey; +import org.jooq.Name; +import org.jooq.Path; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.Record; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * Призыв уровень РФ + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ConscriptionInfo extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ratings.conscription_info + */ + public static final ConscriptionInfo CONSCRIPTION_INFO = new ConscriptionInfo(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ConscriptionInfoRecord.class; + } + + /** + * The column ratings.conscription_info.conscription_info_id. + */ + public final TableField CONSCRIPTION_INFO_ID = createField(DSL.name("conscription_info_id"), SQLDataType.BIGINT.nullable(false).defaultValue(DSL.field(DSL.raw("nextval('ratings.\"ratings.conscription_info_id_ratings.conscription_info_seq\"'::regclass)"), SQLDataType.BIGINT)), this, ""); + + /** + * The column ratings.conscription_info.id_region. + */ + public final TableField ID_REGION = createField(DSL.name("id_region"), SQLDataType.INTEGER, this, ""); + + /** + * The column ratings.conscription_info.execution. Исполнение + * плана призыва + */ + public final TableField EXECUTION = createField(DSL.name("execution"), SQLDataType.NUMERIC, this, "Исполнение плана призыва"); + + /** + * The column ratings.conscription_info.spring_autumn. + * Осень/весна + */ + public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CLOB, this, "Осень/весна"); + + /** + * The column ratings.conscription_info.recording_date. Дата + * записи + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "Дата записи"); + + /** + * The column ratings.conscription_info.execution_percent. + * Исолнение плана призыва в процентах + */ + public final TableField EXECUTION_PERCENT = createField(DSL.name("execution_percent"), SQLDataType.NUMERIC, this, "Исолнение плана призыва в процентах"); + + /** + * The column ratings.conscription_info.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); + + private ConscriptionInfo(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private ConscriptionInfo(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("Призыв уровень РФ"), TableOptions.table(), where); + } + + /** + * Create an aliased ratings.conscription_info table reference + */ + public ConscriptionInfo(String alias) { + this(DSL.name(alias), CONSCRIPTION_INFO); + } + + /** + * Create an aliased ratings.conscription_info table reference + */ + public ConscriptionInfo(Name alias) { + this(alias, CONSCRIPTION_INFO); + } + + /** + * Create a ratings.conscription_info table reference + */ + public ConscriptionInfo() { + this(DSL.name("conscription_info"), null); + } + + public ConscriptionInfo(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, CONSCRIPTION_INFO); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class ConscriptionInfoPath extends ConscriptionInfo implements Path { + public ConscriptionInfoPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private ConscriptionInfoPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public ConscriptionInfoPath as(String alias) { + return new ConscriptionInfoPath(DSL.name(alias), this); + } + + @Override + public ConscriptionInfoPath as(Name alias) { + return new ConscriptionInfoPath(alias, this); + } + + @Override + public ConscriptionInfoPath as(Table alias) { + return new ConscriptionInfoPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Ratings.RATINGS; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_CONSCRIPTION_INFO; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK2, Keys.CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK1); + } + + private transient RegionPath _region; + + /** + * Get the implicit join path to the space.region table. + */ + public RegionPath region() { + if (_region == null) + _region = new RegionPath(this, Keys.CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK2, null); + + return _region; + } + + private transient RecruitmentPath _recruitment; + + /** + * Get the implicit join path to the ervu_dashboard.recruitment + * table. + */ + public RecruitmentPath recruitment() { + if (_recruitment == null) + _recruitment = new RecruitmentPath(this, Keys.CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK1, null); + + return _recruitment; + } + + @Override + public ConscriptionInfo as(String alias) { + return new ConscriptionInfo(DSL.name(alias), this); + } + + @Override + public ConscriptionInfo as(Name alias) { + return new ConscriptionInfo(alias, this); + } + + @Override + public ConscriptionInfo as(Table alias) { + return new ConscriptionInfo(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public ConscriptionInfo rename(String name) { + return new ConscriptionInfo(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public ConscriptionInfo rename(Name name) { + return new ConscriptionInfo(name, null); + } + + /** + * Rename this table + */ + @Override + public ConscriptionInfo rename(Table name) { + return new ConscriptionInfo(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConscriptionInfo where(Condition condition) { + return new ConscriptionInfo(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConscriptionInfo where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConscriptionInfo where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConscriptionInfo where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConscriptionInfo where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConscriptionInfo where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConscriptionInfo where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConscriptionInfo where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConscriptionInfo whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConscriptionInfo whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConsiderationComplaint.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConsiderationComplaint.java index bd62383..33d8d39 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConsiderationComplaint.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConsiderationComplaint.java @@ -4,7 +4,7 @@ package ervu_dashboard.ervu_dashboard.db_beans.ratings.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys; import ervu_dashboard.ervu_dashboard.db_beans.ratings.Ratings; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.ConsiderationComplaintRecord; @@ -15,7 +15,6 @@ import java.sql.Date; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -95,7 +94,7 @@ public class ConsiderationComplaint extends TableImplratings.consideration_complaint.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); private ConsiderationComplaint(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -194,8 +193,8 @@ public class ConsiderationComplaint extends TableImplpublic.pub_recruitment - * table. + * Get the implicit join path to the + * ervu_dashboard.pub_recruitment table. */ public PubRecruitmentPath pubRecruitment() { if (_pubRecruitment == null) diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/Recruitment.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/Recruitment.java deleted file mode 100644 index 59e9bf2..0000000 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/Recruitment.java +++ /dev/null @@ -1,328 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package ervu_dashboard.ervu_dashboard.db_beans.ratings.tables; - - -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.Ratings; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records.RecruitmentRecord; -import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region.RegionPath; - -import java.math.BigDecimal; -import java.sql.Date; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.UUID; - -import org.jooq.Condition; -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; -import org.jooq.Name; -import org.jooq.Path; -import org.jooq.PlainSQL; -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.SQL; -import org.jooq.Schema; -import org.jooq.Select; -import org.jooq.Stringly; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * Призыв уровень РФ - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class Recruitment extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of ratings.recruitment - */ - public static final Recruitment RECRUITMENT = new Recruitment(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return RecruitmentRecord.class; - } - - /** - * The column ratings.recruitment.id_recruitment. - */ - public final TableField ID_RECRUITMENT = createField(DSL.name("id_recruitment"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - - /** - * The column ratings.recruitment.id_region. - */ - public final TableField ID_REGION = createField(DSL.name("id_region"), SQLDataType.INTEGER, this, ""); - - /** - * The column ratings.recruitment.execution. Исполнение плана - * призыва - */ - public final TableField EXECUTION = createField(DSL.name("execution"), SQLDataType.NUMERIC, this, "Исполнение плана призыва"); - - /** - * The column ratings.recruitment.spring_autumn. Осень/весна - */ - public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CLOB, this, "Осень/весна"); - - /** - * The column ratings.recruitment.recording_date. Дата записи - */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "Дата записи"); - - /** - * The column ratings.recruitment.execution_percent. Исолнение - * плана призыва в процентах - */ - public final TableField EXECUTION_PERCENT = createField(DSL.name("execution_percent"), SQLDataType.NUMERIC, this, "Исолнение плана призыва в процентах"); - - /** - * The column ratings.recruitment.recruitment_id. - */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); - - private Recruitment(Name alias, Table aliased) { - this(alias, aliased, (Field[]) null, null); - } - - private Recruitment(Name alias, Table aliased, Field[] parameters, Condition where) { - super(alias, null, aliased, parameters, DSL.comment("Призыв уровень РФ"), TableOptions.table(), where); - } - - /** - * Create an aliased ratings.recruitment table reference - */ - public Recruitment(String alias) { - this(DSL.name(alias), RECRUITMENT); - } - - /** - * Create an aliased ratings.recruitment table reference - */ - public Recruitment(Name alias) { - this(alias, RECRUITMENT); - } - - /** - * Create a ratings.recruitment table reference - */ - public Recruitment() { - this(DSL.name("recruitment"), null); - } - - public Recruitment(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, RECRUITMENT); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class RecruitmentPath extends Recruitment implements Path { - public RecruitmentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private RecruitmentPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public RecruitmentPath as(String alias) { - return new RecruitmentPath(DSL.name(alias), this); - } - - @Override - public RecruitmentPath as(Name alias) { - return new RecruitmentPath(alias, this); - } - - @Override - public RecruitmentPath as(Table alias) { - return new RecruitmentPath(alias.getQualifiedName(), this); - } - } - - @Override - public Schema getSchema() { - return aliased() ? null : Ratings.RATINGS; - } - - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.PK_RECRUITMENT; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.RECRUITMENT__FK_REGION, Keys.RECRUITMENT__R_RECRUITMENT_FK1); - } - - private transient RegionPath _region; - - /** - * Get the implicit join path to the space.region table. - */ - public RegionPath region() { - if (_region == null) - _region = new RegionPath(this, Keys.RECRUITMENT__FK_REGION, null); - - return _region; - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.RECRUITMENT__R_RECRUITMENT_FK1, null); - - return _pubRecruitment; - } - - @Override - public Recruitment as(String alias) { - return new Recruitment(DSL.name(alias), this); - } - - @Override - public Recruitment as(Name alias) { - return new Recruitment(alias, this); - } - - @Override - public Recruitment as(Table alias) { - return new Recruitment(alias.getQualifiedName(), this); - } - - /** - * Rename this table - */ - @Override - public Recruitment rename(String name) { - return new Recruitment(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public Recruitment rename(Name name) { - return new Recruitment(name, null); - } - - /** - * Rename this table - */ - @Override - public Recruitment rename(Table name) { - return new Recruitment(name.getQualifiedName(), null); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Recruitment where(Condition condition) { - return new Recruitment(getQualifiedName(), aliased() ? this : null, null, condition); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Recruitment where(Collection conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Recruitment where(Condition... conditions) { - return where(DSL.and(conditions)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Recruitment where(Field condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Recruitment where(SQL condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Recruitment where(@Stringly.SQL String condition) { - return where(DSL.condition(condition)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Recruitment where(@Stringly.SQL String condition, Object... binds) { - return where(DSL.condition(condition, binds)); - } - - /** - * Create an inline derived table from this table - */ - @Override - @PlainSQL - public Recruitment where(@Stringly.SQL String condition, QueryPart... parts) { - return where(DSL.condition(condition, parts)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Recruitment whereExists(Select select) { - return where(DSL.exists(select)); - } - - /** - * Create an inline derived table from this table - */ - @Override - public Recruitment whereNotExists(Select select) { - return where(DSL.notExists(select)); - } -} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/AppearSubppoenaRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/AppearSubppoenaRecord.java index 006e46a..32e2da5 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/AppearSubppoenaRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/AppearSubppoenaRecord.java @@ -8,7 +8,6 @@ import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.AppearSubppoena; import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; import org.jooq.Record1; import org.jooq.impl.UpdatableRecordImpl; @@ -101,15 +100,15 @@ public class AppearSubppoenaRecord extends UpdatableRecordImplratings.appear_subppoena.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(5, value); } /** * Getter for ratings.appear_subppoena.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(5); + public String getRecruitmentId() { + return (String) get(5); } // ------------------------------------------------------------------------- @@ -135,7 +134,7 @@ public class AppearSubppoenaRecord extends UpdatableRecordImpl { +public class ConscriptionInfoRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; /** - * Setter for ratings.recruitment.id_recruitment. + * Setter for ratings.conscription_info.conscription_info_id. */ - public void setIdRecruitment(Long value) { + public void setConscriptionInfoId(Long value) { set(0, value); } /** - * Getter for ratings.recruitment.id_recruitment. + * Getter for ratings.conscription_info.conscription_info_id. */ - public Long getIdRecruitment() { + public Long getConscriptionInfoId() { return (Long) get(0); } /** - * Setter for ratings.recruitment.id_region. + * Setter for ratings.conscription_info.id_region. */ public void setIdRegion(Integer value) { set(1, value); } /** - * Getter for ratings.recruitment.id_region. + * Getter for ratings.conscription_info.id_region. */ public Integer getIdRegion() { return (Integer) get(1); } /** - * Setter for ratings.recruitment.execution. Исполнение плана - * призыва + * Setter for ratings.conscription_info.execution. Исполнение + * плана призыва */ public void setExecution(BigDecimal value) { set(2, value); } /** - * Getter for ratings.recruitment.execution. Исполнение плана - * призыва + * Getter for ratings.conscription_info.execution. Исполнение + * плана призыва */ public BigDecimal getExecution() { return (BigDecimal) get(2); } /** - * Setter for ratings.recruitment.spring_autumn. Осень/весна + * Setter for ratings.conscription_info.spring_autumn. + * Осень/весна */ public void setSpringAutumn(String value) { set(3, value); } /** - * Getter for ratings.recruitment.spring_autumn. Осень/весна + * Getter for ratings.conscription_info.spring_autumn. + * Осень/весна */ public String getSpringAutumn() { return (String) get(3); } /** - * Setter for ratings.recruitment.recording_date. Дата записи + * Setter for ratings.conscription_info.recording_date. Дата + * записи */ public void setRecordingDate(Date value) { set(4, value); } /** - * Getter for ratings.recruitment.recording_date. Дата записи + * Getter for ratings.conscription_info.recording_date. Дата + * записи */ public Date getRecordingDate() { return (Date) get(4); } /** - * Setter for ratings.recruitment.execution_percent. Исолнение - * плана призыва в процентах + * Setter for ratings.conscription_info.execution_percent. + * Исолнение плана призыва в процентах */ public void setExecutionPercent(BigDecimal value) { set(5, value); } /** - * Getter for ratings.recruitment.execution_percent. Исолнение - * плана призыва в процентах + * Getter for ratings.conscription_info.execution_percent. + * Исолнение плана призыва в процентах */ public BigDecimal getExecutionPercent() { return (BigDecimal) get(5); } /** - * Setter for ratings.recruitment.recruitment_id. + * Setter for ratings.conscription_info.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(6, value); } /** - * Getter for ratings.recruitment.recruitment_id. + * Getter for ratings.conscription_info.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(6); + public String getRecruitmentId() { + return (String) get(6); } // ------------------------------------------------------------------------- @@ -138,19 +141,19 @@ public class RecruitmentRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- /** - * Create a detached RecruitmentRecord + * Create a detached ConscriptionInfoRecord */ - public RecruitmentRecord() { - super(Recruitment.RECRUITMENT); + public ConscriptionInfoRecord() { + super(ConscriptionInfo.CONSCRIPTION_INFO); } /** - * Create a detached, initialised RecruitmentRecord + * Create a detached, initialised ConscriptionInfoRecord */ - public RecruitmentRecord(Long idRecruitment, Integer idRegion, BigDecimal execution, String springAutumn, Date recordingDate, BigDecimal executionPercent, UUID recruitmentId) { - super(Recruitment.RECRUITMENT); + public ConscriptionInfoRecord(Long conscriptionInfoId, Integer idRegion, BigDecimal execution, String springAutumn, Date recordingDate, BigDecimal executionPercent, String recruitmentId) { + super(ConscriptionInfo.CONSCRIPTION_INFO); - setIdRecruitment(idRecruitment); + setConscriptionInfoId(conscriptionInfoId); setIdRegion(idRegion); setExecution(execution); setSpringAutumn(springAutumn); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/ConsiderationComplaintRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/ConsiderationComplaintRecord.java index 39afb84..b1efbe8 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/ConsiderationComplaintRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/ConsiderationComplaintRecord.java @@ -8,7 +8,6 @@ import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationCompla import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; import org.jooq.Record1; import org.jooq.impl.UpdatableRecordImpl; @@ -107,15 +106,15 @@ public class ConsiderationComplaintRecord extends UpdatableRecordImplratings.consideration_complaint.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(5, value); } /** * Getter for ratings.consideration_complaint.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(5); + public String getRecruitmentId() { + return (String) get(5); } // ------------------------------------------------------------------------- @@ -141,7 +140,7 @@ public class ConsiderationComplaintRecord extends UpdatableRecordImpl PK_APPEAL = Internal.createUniqueKey(Appeals.APPEALS, DSL.name("pk_appeal"), new TableField[] { Appeals.APPEALS.ID_APPEAL }, true); - public static final UniqueKey PK_RECRUITMENT = Internal.createUniqueKey(Recruitment.RECRUITMENT, DSL.name("pk_recruitment"), new TableField[] { Recruitment.RECRUITMENT.ID_RECRUITMENT }, true); - public static final UniqueKey PK_SUBPOENA = Internal.createUniqueKey(Subpoenas.SUBPOENAS, DSL.name("pk_subpoena"), new TableField[] { Subpoenas.SUBPOENAS.ID_SUBPOENA }, true); + public static final UniqueKey PK_POSTPONEMENT_INFO = Internal.createUniqueKey(PostponementInfo.POSTPONEMENT_INFO, DSL.name("pk_postponement_info"), new TableField[] { PostponementInfo.POSTPONEMENT_INFO.POSTPONEMENT_INFO_ID }, true); + public static final UniqueKey SUBPOENAS_PKEY = Internal.createUniqueKey(Subpoenas.SUBPOENAS, DSL.name("subpoenas_pkey"), new TableField[] { Subpoenas.SUBPOENAS.SPRING_AUTUMN, Subpoenas.SUBPOENAS.RECRUITMENT_ID, Subpoenas.SUBPOENAS.RECORDING_DATE }, true); // ------------------------------------------------------------------------- // FOREIGN KEY definitions // ------------------------------------------------------------------------- - public static final ForeignKey APPEALS__RC_APPEALS_FK1 = Internal.createForeignKey(Appeals.APPEALS, DSL.name("rc_appeals_fk1"), new TableField[] { Appeals.APPEALS.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey RECRUITMENT__RC_RECRUITMENT_FK1 = Internal.createForeignKey(Recruitment.RECRUITMENT, DSL.name("rc_recruitment_fk1"), new TableField[] { Recruitment.RECRUITMENT.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey SUBPOENAS__SUBPOENAS_FK1 = Internal.createForeignKey(Subpoenas.SUBPOENAS, DSL.name("subpoenas_fk1"), new TableField[] { Subpoenas.SUBPOENAS.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final ForeignKey APPEALS__RC_APPEALS_FK1 = Internal.createForeignKey(Appeals.APPEALS, DSL.name("rc_appeals_fk1"), new TableField[] { Appeals.APPEALS.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.RECRUITMENT_PKEY, new TableField[] { Recruitment.RECRUITMENT.ID }, true); + public static final ForeignKey POSTPONEMENT_INFO__POSTPONEMENT_INFO_FK1 = Internal.createForeignKey(PostponementInfo.POSTPONEMENT_INFO, DSL.name("postponement_info_fk1"), new TableField[] { PostponementInfo.POSTPONEMENT_INFO.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.Keys.RECRUITMENT_PKEY, new TableField[] { Recruitment.RECRUITMENT.ID }, true); } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/RecruitmentCampaign.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/RecruitmentCampaign.java index 797df4a..37e9335 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/RecruitmentCampaign.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/RecruitmentCampaign.java @@ -6,13 +6,14 @@ package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign; import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Appeals; -import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Recruitment; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.PostponementInfo; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Subpoenas; import java.util.Arrays; import java.util.List; import org.jooq.Catalog; +import org.jooq.Sequence; import org.jooq.Table; import org.jooq.impl.SchemaImpl; @@ -36,9 +37,9 @@ public class RecruitmentCampaign extends SchemaImpl { public final Appeals APPEALS = Appeals.APPEALS; /** - * The table recruitment_campaign.recruitment. + * статистика по отсрочке и призывам */ - public final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + public final PostponementInfo POSTPONEMENT_INFO = PostponementInfo.POSTPONEMENT_INFO; /** * Повестки уровень РФ @@ -58,11 +59,18 @@ public class RecruitmentCampaign extends SchemaImpl { return DefaultCatalog.DEFAULT_CATALOG; } + @Override + public final List> getSequences() { + return Arrays.asList( + Sequences.RECRUITMENT_ID_RECRUITMENT_SEQ + ); + } + @Override public final List> getTables() { return Arrays.asList( Appeals.APPEALS, - Recruitment.RECRUITMENT, + PostponementInfo.POSTPONEMENT_INFO, Subpoenas.SUBPOENAS ); } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Sequences.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Sequences.java new file mode 100644 index 0000000..fd54463 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Sequences.java @@ -0,0 +1,23 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign; + + +import org.jooq.Sequence; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * Convenience access to all sequences in recruitment_campaign. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Sequences { + + /** + * The sequence + * recruitment_campaign.recruitment_id_recruitment_seq + */ + public static final Sequence RECRUITMENT_ID_RECRUITMENT_SEQ = Internal.createSequence("recruitment_id_recruitment_seq", RecruitmentCampaign.RECRUITMENT_CAMPAIGN, SQLDataType.BIGINT.nullable(false), null, null, null, null, false, null); +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Tables.java index be8998f..2c61a07 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Tables.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Tables.java @@ -5,7 +5,7 @@ package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Appeals; -import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Recruitment; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.PostponementInfo; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Subpoenas; @@ -21,9 +21,9 @@ public class Tables { public static final Appeals APPEALS = Appeals.APPEALS; /** - * The table recruitment_campaign.recruitment. + * статистика по отсрочке и призывам */ - public static final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + public static final PostponementInfo POSTPONEMENT_INFO = PostponementInfo.POSTPONEMENT_INFO; /** * Повестки уровень РФ diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Appeals.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Appeals.java index c00d499..9b3657c 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Appeals.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Appeals.java @@ -4,7 +4,7 @@ package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment.RecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.Keys; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.RecruitmentCampaign; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records.AppealsRecord; @@ -14,7 +14,6 @@ import java.sql.Date; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; @@ -95,12 +94,6 @@ public class Appeals extends TableImpl { */ public final TableField AVERAGE_RATING = createField(DSL.name("average_rating"), SQLDataType.NUMERIC, this, "Оценка удовлетворенности"); - /** - * The column recruitment_campaign.appeals.spring_autumn. - * Весна/Осень - */ - public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CLOB, this, "Весна/Осень"); - /** * The column recruitment_campaign.appeals.recording_date. Дата * записи @@ -123,7 +116,12 @@ public class Appeals extends TableImpl { /** * The column recruitment_campaign.appeals.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column recruitment_campaign.appeals.testspring_autumn. + */ + public final TableField TESTSPRING_AUTUMN = createField(DSL.name("testspring_autumn"), SQLDataType.CHAR(36), this, ""); private Appeals(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -207,17 +205,17 @@ public class Appeals extends TableImpl { return Arrays.asList(Keys.APPEALS__RC_APPEALS_FK1); } - private transient PubRecruitmentPath _pubRecruitment; + private transient RecruitmentPath _recruitment; /** - * Get the implicit join path to the public.pub_recruitment + * Get the implicit join path to the ervu_dashboard.recruitment * table. */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.APPEALS__RC_APPEALS_FK1, null); + public RecruitmentPath recruitment() { + if (_recruitment == null) + _recruitment = new RecruitmentPath(this, Keys.APPEALS__RC_APPEALS_FK1, null); - return _pubRecruitment; + return _recruitment; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/PostponementInfo.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/PostponementInfo.java new file mode 100644 index 0000000..abb007f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/PostponementInfo.java @@ -0,0 +1,341 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.ervu_dashboard.tables.Recruitment.RecruitmentPath; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.RecruitmentCampaign; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records.PostponementInfoRecord; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.ForeignKey; +import org.jooq.Identity; +import org.jooq.InverseForeignKey; +import org.jooq.Name; +import org.jooq.Path; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.Record; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * статистика по отсрочке и призывам + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class PostponementInfo extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * recruitment_campaign.postponement_info + */ + public static final PostponementInfo POSTPONEMENT_INFO = new PostponementInfo(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return PostponementInfoRecord.class; + } + + /** + * The column + * recruitment_campaign.postponement_info.postponement_info_id. + */ + public final TableField POSTPONEMENT_INFO_ID = createField(DSL.name("postponement_info_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column + * recruitment_campaign.postponement_info.suitable_recruit. + * Подходят под призыв + */ + public final TableField SUITABLE_RECRUIT = createField(DSL.name("suitable_recruit"), SQLDataType.NUMERIC, this, "Подходят под призыв"); + + /** + * The column + * recruitment_campaign.postponement_info.postponement_have_right. + * Имеют право на отсрочку + */ + public final TableField POSTPONEMENT_HAVE_RIGHT = createField(DSL.name("postponement_have_right"), SQLDataType.NUMERIC, this, "Имеют право на отсрочку"); + + /** + * The column + * recruitment_campaign.postponement_info.postponement_granted. + * Предоставлена отсрочка + */ + public final TableField POSTPONEMENT_GRANTED = createField(DSL.name("postponement_granted"), SQLDataType.NUMERIC, this, "Предоставлена отсрочка"); + + /** + * The column + * recruitment_campaign.postponement_info.recording_date. Дата + * записи + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + + /** + * The column + * recruitment_campaign.postponement_info.postponement_have_right_percent. + * Процент имеющих право на отсрочку + */ + public final TableField POSTPONEMENT_HAVE_RIGHT_PERCENT = createField(DSL.name("postponement_have_right_percent"), SQLDataType.NUMERIC, this, "Процент имеющих право на отсрочку"); + + /** + * The column + * recruitment_campaign.postponement_info.postponement_granted_percent. + * Процент предоставленных отсрочек + */ + public final TableField POSTPONEMENT_GRANTED_PERCENT = createField(DSL.name("postponement_granted_percent"), SQLDataType.NUMERIC, this, "Процент предоставленных отсрочек"); + + /** + * The column + * recruitment_campaign.postponement_info.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column + * recruitment_campaign.postponement_info.testspring_autumn. + */ + public final TableField TESTSPRING_AUTUMN = createField(DSL.name("testspring_autumn"), SQLDataType.CHAR(36), this, ""); + + private PostponementInfo(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private PostponementInfo(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("статистика по отсрочке и призывам"), TableOptions.table(), where); + } + + /** + * Create an aliased recruitment_campaign.postponement_info + * table reference + */ + public PostponementInfo(String alias) { + this(DSL.name(alias), POSTPONEMENT_INFO); + } + + /** + * Create an aliased recruitment_campaign.postponement_info + * table reference + */ + public PostponementInfo(Name alias) { + this(alias, POSTPONEMENT_INFO); + } + + /** + * Create a recruitment_campaign.postponement_info table + * reference + */ + public PostponementInfo() { + this(DSL.name("postponement_info"), null); + } + + public PostponementInfo(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, POSTPONEMENT_INFO); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class PostponementInfoPath extends PostponementInfo implements Path { + public PostponementInfoPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private PostponementInfoPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public PostponementInfoPath as(String alias) { + return new PostponementInfoPath(DSL.name(alias), this); + } + + @Override + public PostponementInfoPath as(Name alias) { + return new PostponementInfoPath(alias, this); + } + + @Override + public PostponementInfoPath as(Table alias) { + return new PostponementInfoPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : RecruitmentCampaign.RECRUITMENT_CAMPAIGN; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_POSTPONEMENT_INFO; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.POSTPONEMENT_INFO__POSTPONEMENT_INFO_FK1); + } + + private transient RecruitmentPath _recruitment; + + /** + * Get the implicit join path to the ervu_dashboard.recruitment + * table. + */ + public RecruitmentPath recruitment() { + if (_recruitment == null) + _recruitment = new RecruitmentPath(this, Keys.POSTPONEMENT_INFO__POSTPONEMENT_INFO_FK1, null); + + return _recruitment; + } + + @Override + public PostponementInfo as(String alias) { + return new PostponementInfo(DSL.name(alias), this); + } + + @Override + public PostponementInfo as(Name alias) { + return new PostponementInfo(alias, this); + } + + @Override + public PostponementInfo as(Table alias) { + return new PostponementInfo(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public PostponementInfo rename(String name) { + return new PostponementInfo(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public PostponementInfo rename(Name name) { + return new PostponementInfo(name, null); + } + + /** + * Rename this table + */ + @Override + public PostponementInfo rename(Table name) { + return new PostponementInfo(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PostponementInfo where(Condition condition) { + return new PostponementInfo(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PostponementInfo where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PostponementInfo where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PostponementInfo where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PostponementInfo where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PostponementInfo where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PostponementInfo where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public PostponementInfo where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PostponementInfo whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public PostponementInfo whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Subpoenas.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Subpoenas.java index 2554ba0..905bb65 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Subpoenas.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Subpoenas.java @@ -4,28 +4,20 @@ package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.Keys; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.RecruitmentCampaign; import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records.SubpoenasRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -60,11 +52,6 @@ public class Subpoenas extends TableImpl { return SubpoenasRecord.class; } - /** - * The column recruitment_campaign.subpoenas.id_subpoena. - */ - public final TableField ID_SUBPOENA = createField(DSL.name("id_subpoena"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column recruitment_campaign.subpoenas.subpoena. * Направлено повесток @@ -102,17 +89,11 @@ public class Subpoenas extends TableImpl { */ public final TableField RESTRICTIONS_APPLIED = createField(DSL.name("restrictions_applied"), SQLDataType.NUMERIC, this, "Наложено ограничений"); - /** - * The column recruitment_campaign.subpoenas.spring_autumn. - * Весна/Осень - */ - public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CLOB, this, "Весна/Осень"); - /** * The column recruitment_campaign.subpoenas.recording_date. * Дата записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column recruitment_campaign.subpoenas.appeared_percent. @@ -165,7 +146,7 @@ public class Subpoenas extends TableImpl { /** * The column recruitment_campaign.subpoenas.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** * The column recruitment_campaign.subpoenas.rest. Остальные @@ -173,15 +154,14 @@ public class Subpoenas extends TableImpl { public final TableField REST = createField(DSL.name("rest"), SQLDataType.NUMERIC, this, "Остальные"); /** - * The column - * recruitment_campaign.subpoenas.testrecruitment_id. + * The column recruitment_campaign.subpoenas.spring_autumn. */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CHAR(36).nullable(false), this, ""); /** - * The column recruitment_campaign.subpoenas.testspring_autumn. + * The column recruitment_campaign.subpoenas.id_subpoena. */ - public final TableField TESTSPRING_AUTUMN = createField(DSL.name("testspring_autumn"), SQLDataType.CHAR(36), this, ""); + public final TableField ID_SUBPOENA = createField(DSL.name("id_subpoena"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private Subpoenas(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -214,37 +194,6 @@ public class Subpoenas extends TableImpl { this(DSL.name("subpoenas"), null); } - public Subpoenas(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, SUBPOENAS); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class SubpoenasPath extends Subpoenas implements Path { - public SubpoenasPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private SubpoenasPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public SubpoenasPath as(String alias) { - return new SubpoenasPath(DSL.name(alias), this); - } - - @Override - public SubpoenasPath as(Name alias) { - return new SubpoenasPath(alias, this); - } - - @Override - public SubpoenasPath as(Table alias) { - return new SubpoenasPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : RecruitmentCampaign.RECRUITMENT_CAMPAIGN; @@ -257,25 +206,7 @@ public class Subpoenas extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_SUBPOENA; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.SUBPOENAS__SUBPOENAS_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.SUBPOENAS__SUBPOENAS_FK1, null); - - return _pubRecruitment; + return Keys.SUBPOENAS_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/AppealsRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/AppealsRecord.java index 55289fa..5bd1644 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/AppealsRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/AppealsRecord.java @@ -8,7 +8,6 @@ import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Appeal import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; import org.jooq.Record1; import org.jooq.impl.UpdatableRecordImpl; @@ -116,28 +115,12 @@ public class AppealsRecord extends UpdatableRecordImpl { return (BigDecimal) get(5); } - /** - * Setter for recruitment_campaign.appeals.spring_autumn. - * Весна/Осень - */ - public void setSpringAutumn(String value) { - set(6, value); - } - - /** - * Getter for recruitment_campaign.appeals.spring_autumn. - * Весна/Осень - */ - public String getSpringAutumn() { - return (String) get(6); - } - /** * Setter for recruitment_campaign.appeals.recording_date. Дата * записи */ public void setRecordingDate(Date value) { - set(7, value); + set(6, value); } /** @@ -145,7 +128,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * записи */ public Date getRecordingDate() { - return (Date) get(7); + return (Date) get(6); } /** @@ -153,7 +136,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * Процент решенных */ public void setResolvedPercent(BigDecimal value) { - set(8, value); + set(7, value); } /** @@ -161,7 +144,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * Процент решенных */ public BigDecimal getResolvedPercent() { - return (BigDecimal) get(8); + return (BigDecimal) get(7); } /** @@ -170,7 +153,7 @@ public class AppealsRecord extends UpdatableRecordImpl { * не решенных */ public void setNotResolvedPercent(BigDecimal value) { - set(9, value); + set(8, value); } /** @@ -179,21 +162,35 @@ public class AppealsRecord extends UpdatableRecordImpl { * не решенных */ public BigDecimal getNotResolvedPercent() { - return (BigDecimal) get(9); + return (BigDecimal) get(8); } /** * Setter for recruitment_campaign.appeals.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(10, value); + public void setRecruitmentId(String value) { + set(9, value); } /** * Getter for recruitment_campaign.appeals.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(10); + public String getRecruitmentId() { + return (String) get(9); + } + + /** + * Setter for recruitment_campaign.appeals.testspring_autumn. + */ + public void setTestspringAutumn(String value) { + set(10, value); + } + + /** + * Getter for recruitment_campaign.appeals.testspring_autumn. + */ + public String getTestspringAutumn() { + return (String) get(10); } // ------------------------------------------------------------------------- @@ -219,7 +216,7 @@ public class AppealsRecord extends UpdatableRecordImpl { /** * Create a detached, initialised AppealsRecord */ - public AppealsRecord(Long idAppeal, BigDecimal totalAppeal, BigDecimal resolved, BigDecimal notResolved, BigDecimal averageConsideration, BigDecimal averageRating, String springAutumn, Date recordingDate, BigDecimal resolvedPercent, BigDecimal notResolvedPercent, UUID recruitmentId) { + public AppealsRecord(Long idAppeal, BigDecimal totalAppeal, BigDecimal resolved, BigDecimal notResolved, BigDecimal averageConsideration, BigDecimal averageRating, Date recordingDate, BigDecimal resolvedPercent, BigDecimal notResolvedPercent, String recruitmentId, String testspringAutumn) { super(Appeals.APPEALS); setIdAppeal(idAppeal); @@ -228,11 +225,11 @@ public class AppealsRecord extends UpdatableRecordImpl { setNotResolved(notResolved); setAverageConsideration(averageConsideration); setAverageRating(averageRating); - setSpringAutumn(springAutumn); setRecordingDate(recordingDate); setResolvedPercent(resolvedPercent); setNotResolvedPercent(notResolvedPercent); setRecruitmentId(recruitmentId); + setTestspringAutumn(testspringAutumn); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/RecruitmentRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/PostponementInfoRecord.java similarity index 53% rename from backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/RecruitmentRecord.java rename to backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/PostponementInfoRecord.java index 44e9b79..c5640ee 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/RecruitmentRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/PostponementInfoRecord.java @@ -4,42 +4,43 @@ package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records; -import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Recruitment; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.PostponementInfo; import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; import org.jooq.Record1; import org.jooq.impl.UpdatableRecordImpl; /** - * This class is generated by jOOQ. + * статистика по отсрочке и призывам */ @SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class RecruitmentRecord extends UpdatableRecordImpl { +public class PostponementInfoRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; /** - * Setter for recruitment_campaign.recruitment.id_recruitment. + * Setter for + * recruitment_campaign.postponement_info.postponement_info_id. */ - public void setIdRecruitment(Long value) { + public void setPostponementInfoId(Long value) { set(0, value); } /** - * Getter for recruitment_campaign.recruitment.id_recruitment. + * Getter for + * recruitment_campaign.postponement_info.postponement_info_id. */ - public Long getIdRecruitment() { + public Long getPostponementInfoId() { return (Long) get(0); } /** * Setter for - * recruitment_campaign.recruitment.suitable_recruit. Подходят - * под призыв + * recruitment_campaign.postponement_info.suitable_recruit. + * Подходят под призыв */ public void setSuitableRecruit(BigDecimal value) { set(1, value); @@ -47,8 +48,8 @@ public class RecruitmentRecord extends UpdatableRecordImpl { /** * Getter for - * recruitment_campaign.recruitment.suitable_recruit. Подходят - * под призыв + * recruitment_campaign.postponement_info.suitable_recruit. + * Подходят под призыв */ public BigDecimal getSuitableRecruit() { return (BigDecimal) get(1); @@ -56,7 +57,7 @@ public class RecruitmentRecord extends UpdatableRecordImpl { /** * Setter for - * recruitment_campaign.recruitment.postponement_have_right. + * recruitment_campaign.postponement_info.postponement_have_right. * Имеют право на отсрочку */ public void setPostponementHaveRight(BigDecimal value) { @@ -65,7 +66,7 @@ public class RecruitmentRecord extends UpdatableRecordImpl { /** * Getter for - * recruitment_campaign.recruitment.postponement_have_right. + * recruitment_campaign.postponement_info.postponement_have_right. * Имеют право на отсрочку */ public BigDecimal getPostponementHaveRight() { @@ -74,7 +75,7 @@ public class RecruitmentRecord extends UpdatableRecordImpl { /** * Setter for - * recruitment_campaign.recruitment.postponement_granted. + * recruitment_campaign.postponement_info.postponement_granted. * Предоставлена отсрочка */ public void setPostponementGranted(BigDecimal value) { @@ -83,7 +84,7 @@ public class RecruitmentRecord extends UpdatableRecordImpl { /** * Getter for - * recruitment_campaign.recruitment.postponement_granted. + * recruitment_campaign.postponement_info.postponement_granted. * Предоставлена отсрочка */ public BigDecimal getPostponementGranted() { @@ -91,85 +92,89 @@ public class RecruitmentRecord extends UpdatableRecordImpl { } /** - * Setter for recruitment_campaign.recruitment.spring_autumn. - * Осень/Весна + * Setter for + * recruitment_campaign.postponement_info.recording_date. Дата + * записи */ - public void setSpringAutumn(String value) { + public void setRecordingDate(Date value) { set(4, value); } /** - * Getter for recruitment_campaign.recruitment.spring_autumn. - * Осень/Весна - */ - public String getSpringAutumn() { - return (String) get(4); - } - - /** - * Setter for recruitment_campaign.recruitment.recording_date. - * Дата записи - */ - public void setRecordingDate(Date value) { - set(5, value); - } - - /** - * Getter for recruitment_campaign.recruitment.recording_date. - * Дата записи + * Getter for + * recruitment_campaign.postponement_info.recording_date. Дата + * записи */ public Date getRecordingDate() { - return (Date) get(5); + return (Date) get(4); } /** * Setter for - * recruitment_campaign.recruitment.postponement_have_right_percent. + * recruitment_campaign.postponement_info.postponement_have_right_percent. * Процент имеющих право на отсрочку */ public void setPostponementHaveRightPercent(BigDecimal value) { + set(5, value); + } + + /** + * Getter for + * recruitment_campaign.postponement_info.postponement_have_right_percent. + * Процент имеющих право на отсрочку + */ + public BigDecimal getPostponementHaveRightPercent() { + return (BigDecimal) get(5); + } + + /** + * Setter for + * recruitment_campaign.postponement_info.postponement_granted_percent. + * Процент предоставленных отсрочек + */ + public void setPostponementGrantedPercent(BigDecimal value) { set(6, value); } /** * Getter for - * recruitment_campaign.recruitment.postponement_have_right_percent. - * Процент имеющих право на отсрочку + * recruitment_campaign.postponement_info.postponement_granted_percent. + * Процент предоставленных отсрочек */ - public BigDecimal getPostponementHaveRightPercent() { + public BigDecimal getPostponementGrantedPercent() { return (BigDecimal) get(6); } /** * Setter for - * recruitment_campaign.recruitment.postponement_granted_percent. - * Процент предоставленных отсрочек + * recruitment_campaign.postponement_info.recruitment_id. */ - public void setPostponementGrantedPercent(BigDecimal value) { + public void setRecruitmentId(String value) { set(7, value); } /** * Getter for - * recruitment_campaign.recruitment.postponement_granted_percent. - * Процент предоставленных отсрочек + * recruitment_campaign.postponement_info.recruitment_id. */ - public BigDecimal getPostponementGrantedPercent() { - return (BigDecimal) get(7); + public String getRecruitmentId() { + return (String) get(7); } /** - * Setter for recruitment_campaign.recruitment.recruitment_id. + * Setter for + * recruitment_campaign.postponement_info.testspring_autumn. */ - public void setRecruitmentId(UUID value) { + public void setTestspringAutumn(String value) { set(8, value); } /** - * Getter for recruitment_campaign.recruitment.recruitment_id. + * Getter for + * recruitment_campaign.postponement_info.testspring_autumn. */ - public UUID getRecruitmentId() { - return (UUID) get(8); + public String getTestspringAutumn() { + return (String) get(8); } // ------------------------------------------------------------------------- @@ -186,27 +191,27 @@ public class RecruitmentRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- /** - * Create a detached RecruitmentRecord + * Create a detached PostponementInfoRecord */ - public RecruitmentRecord() { - super(Recruitment.RECRUITMENT); + public PostponementInfoRecord() { + super(PostponementInfo.POSTPONEMENT_INFO); } /** - * Create a detached, initialised RecruitmentRecord + * Create a detached, initialised PostponementInfoRecord */ - public RecruitmentRecord(Long idRecruitment, BigDecimal suitableRecruit, BigDecimal postponementHaveRight, BigDecimal postponementGranted, String springAutumn, Date recordingDate, BigDecimal postponementHaveRightPercent, BigDecimal postponementGrantedPercent, UUID recruitmentId) { - super(Recruitment.RECRUITMENT); + public PostponementInfoRecord(Long postponementInfoId, BigDecimal suitableRecruit, BigDecimal postponementHaveRight, BigDecimal postponementGranted, Date recordingDate, BigDecimal postponementHaveRightPercent, BigDecimal postponementGrantedPercent, String recruitmentId, String testspringAutumn) { + super(PostponementInfo.POSTPONEMENT_INFO); - setIdRecruitment(idRecruitment); + setPostponementInfoId(postponementInfoId); setSuitableRecruit(suitableRecruit); setPostponementHaveRight(postponementHaveRight); setPostponementGranted(postponementGranted); - setSpringAutumn(springAutumn); setRecordingDate(recordingDate); setPostponementHaveRightPercent(postponementHaveRightPercent); setPostponementGrantedPercent(postponementGrantedPercent); setRecruitmentId(recruitmentId); + setTestspringAutumn(testspringAutumn); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/SubpoenasRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/SubpoenasRecord.java index d67af79..6325ae4 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/SubpoenasRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/SubpoenasRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Subpoe import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record3; import org.jooq.impl.UpdatableRecordImpl; @@ -22,26 +21,12 @@ public class SubpoenasRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; - /** - * Setter for recruitment_campaign.subpoenas.id_subpoena. - */ - public void setIdSubpoena(Long value) { - set(0, value); - } - - /** - * Getter for recruitment_campaign.subpoenas.id_subpoena. - */ - public Long getIdSubpoena() { - return (Long) get(0); - } - /** * Setter for recruitment_campaign.subpoenas.subpoena. * Направлено повесток */ public void setSubpoena(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -49,21 +34,21 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Направлено повесток */ public BigDecimal getSubpoena() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** * Setter for recruitment_campaign.subpoenas.appeared. Явились */ public void setAppeared(BigDecimal value) { - set(2, value); + set(1, value); } /** * Getter for recruitment_campaign.subpoenas.appeared. Явились */ public BigDecimal getAppeared() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** @@ -71,7 +56,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились */ public void setNotAppeared(BigDecimal value) { - set(3, value); + set(2, value); } /** @@ -79,7 +64,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились */ public BigDecimal getNotAppeared() { - return (BigDecimal) get(3); + return (BigDecimal) get(2); } /** @@ -88,7 +73,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились по уважительной причине */ public void setNotApGoodReason(BigDecimal value) { - set(4, value); + set(3, value); } /** @@ -97,7 +82,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились по уважительной причине */ public BigDecimal getNotApGoodReason() { - return (BigDecimal) get(4); + return (BigDecimal) get(3); } /** @@ -105,7 +90,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Явка не требуется */ public void setApNotRequired(BigDecimal value) { - set(5, value); + set(4, value); } /** @@ -113,7 +98,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Явка не требуется */ public BigDecimal getApNotRequired() { - return (BigDecimal) get(5); + return (BigDecimal) get(4); } /** @@ -122,7 +107,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Наложено ограничений */ public void setRestrictionsApplied(BigDecimal value) { - set(6, value); + set(5, value); } /** @@ -131,23 +116,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Наложено ограничений */ public BigDecimal getRestrictionsApplied() { - return (BigDecimal) get(6); - } - - /** - * Setter for recruitment_campaign.subpoenas.spring_autumn. - * Весна/Осень - */ - public void setSpringAutumn(String value) { - set(7, value); - } - - /** - * Getter for recruitment_campaign.subpoenas.spring_autumn. - * Весна/Осень - */ - public String getSpringAutumn() { - return (String) get(7); + return (BigDecimal) get(5); } /** @@ -155,7 +124,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Дата записи */ public void setRecordingDate(Date value) { - set(8, value); + set(6, value); } /** @@ -163,7 +132,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Дата записи */ public Date getRecordingDate() { - return (Date) get(8); + return (Date) get(6); } /** @@ -171,7 +140,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент явившихся */ public void setAppearedPercent(BigDecimal value) { - set(9, value); + set(7, value); } /** @@ -179,7 +148,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент явившихся */ public BigDecimal getAppearedPercent() { - return (BigDecimal) get(9); + return (BigDecimal) get(7); } /** @@ -188,7 +157,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * не явившихся */ public void setNotAppearedPercent(BigDecimal value) { - set(10, value); + set(8, value); } /** @@ -197,7 +166,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * не явившихся */ public BigDecimal getNotAppearedPercent() { - return (BigDecimal) get(10); + return (BigDecimal) get(8); } /** @@ -206,7 +175,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент не явившихся по уважительной причине */ public void setNotApGoodReasonPercent(BigDecimal value) { - set(11, value); + set(9, value); } /** @@ -215,7 +184,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент не явившихся по уважительной причине */ public BigDecimal getNotApGoodReasonPercent() { - return (BigDecimal) get(11); + return (BigDecimal) get(9); } /** @@ -224,7 +193,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент тех, где явка не требуется */ public void setApNotRequiredPercent(BigDecimal value) { - set(12, value); + set(10, value); } /** @@ -233,7 +202,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент тех, где явка не требуется */ public BigDecimal getApNotRequiredPercent() { - return (BigDecimal) get(12); + return (BigDecimal) get(10); } /** @@ -242,7 +211,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Наложено ограничений */ public void setRestrictionsAppliedPercent(BigDecimal value) { - set(13, value); + set(11, value); } /** @@ -251,7 +220,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Наложено ограничений */ public BigDecimal getRestrictionsAppliedPercent() { - return (BigDecimal) get(13); + return (BigDecimal) get(11); } /** @@ -260,7 +229,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * реализатором мер */ public void setIntroducedMeasures(BigDecimal value) { - set(14, value); + set(12, value); } /** @@ -269,7 +238,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * реализатором мер */ public BigDecimal getIntroducedMeasures() { - return (BigDecimal) get(14); + return (BigDecimal) get(12); } /** @@ -278,7 +247,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент введенных реализатором мер */ public void setIntroducedMeasuresPercent(BigDecimal value) { - set(15, value); + set(13, value); } /** @@ -287,65 +256,63 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Процент введенных реализатором мер */ public BigDecimal getIntroducedMeasuresPercent() { - return (BigDecimal) get(15); + return (BigDecimal) get(13); } /** * Setter for recruitment_campaign.subpoenas.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(16, value); + public void setRecruitmentId(String value) { + set(14, value); } /** * Getter for recruitment_campaign.subpoenas.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(16); + public String getRecruitmentId() { + return (String) get(14); } /** * Setter for recruitment_campaign.subpoenas.rest. Остальные */ public void setRest(BigDecimal value) { - set(17, value); + set(15, value); } /** * Getter for recruitment_campaign.subpoenas.rest. Остальные */ public BigDecimal getRest() { - return (BigDecimal) get(17); + return (BigDecimal) get(15); } /** - * Setter for - * recruitment_campaign.subpoenas.testrecruitment_id. + * Setter for recruitment_campaign.subpoenas.spring_autumn. */ - public void setTestrecruitmentId(String value) { - set(18, value); + public void setSpringAutumn(String value) { + set(16, value); } /** - * Getter for - * recruitment_campaign.subpoenas.testrecruitment_id. + * Getter for recruitment_campaign.subpoenas.spring_autumn. */ - public String getTestrecruitmentId() { - return (String) get(18); + public String getSpringAutumn() { + return (String) get(16); } /** - * Setter for recruitment_campaign.subpoenas.testspring_autumn. + * Setter for recruitment_campaign.subpoenas.id_subpoena. */ - public void setTestspringAutumn(String value) { - set(19, value); + public void setIdSubpoena(Long value) { + set(17, value); } /** - * Getter for recruitment_campaign.subpoenas.testspring_autumn. + * Getter for recruitment_campaign.subpoenas.id_subpoena. */ - public String getTestspringAutumn() { - return (String) get(19); + public Long getIdSubpoena() { + return (Long) get(17); } // ------------------------------------------------------------------------- @@ -353,8 +320,8 @@ public class SubpoenasRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -371,17 +338,15 @@ public class SubpoenasRecord extends UpdatableRecordImpl { /** * Create a detached, initialised SubpoenasRecord */ - public SubpoenasRecord(Long idSubpoena, BigDecimal subpoena, BigDecimal appeared, BigDecimal notAppeared, BigDecimal notApGoodReason, BigDecimal apNotRequired, BigDecimal restrictionsApplied, String springAutumn, Date recordingDate, BigDecimal appearedPercent, BigDecimal notAppearedPercent, BigDecimal notApGoodReasonPercent, BigDecimal apNotRequiredPercent, BigDecimal restrictionsAppliedPercent, BigDecimal introducedMeasures, BigDecimal introducedMeasuresPercent, UUID recruitmentId, BigDecimal rest, String testrecruitmentId, String testspringAutumn) { + public SubpoenasRecord(BigDecimal subpoena, BigDecimal appeared, BigDecimal notAppeared, BigDecimal notApGoodReason, BigDecimal apNotRequired, BigDecimal restrictionsApplied, Date recordingDate, BigDecimal appearedPercent, BigDecimal notAppearedPercent, BigDecimal notApGoodReasonPercent, BigDecimal apNotRequiredPercent, BigDecimal restrictionsAppliedPercent, BigDecimal introducedMeasures, BigDecimal introducedMeasuresPercent, String recruitmentId, BigDecimal rest, String springAutumn, Long idSubpoena) { super(Subpoenas.SUBPOENAS); - setIdSubpoena(idSubpoena); setSubpoena(subpoena); setAppeared(appeared); setNotAppeared(notAppeared); setNotApGoodReason(notApGoodReason); setApNotRequired(apNotRequired); setRestrictionsApplied(restrictionsApplied); - setSpringAutumn(springAutumn); setRecordingDate(recordingDate); setAppearedPercent(appearedPercent); setNotAppearedPercent(notAppearedPercent); @@ -392,8 +357,8 @@ public class SubpoenasRecord extends UpdatableRecordImpl { setIntroducedMeasuresPercent(introducedMeasuresPercent); setRecruitmentId(recruitmentId); setRest(rest); - setTestrecruitmentId(testrecruitmentId); - setTestspringAutumn(testspringAutumn); + setSpringAutumn(springAutumn); + setIdSubpoena(idSubpoena); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Space.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Space.java index 147557c..12aa657 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Space.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Space.java @@ -9,6 +9,7 @@ import ervu_dashboard.ervu_dashboard.db_beans.space.tables.MilitaryCommissariat; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.MilitaryDistrict; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Testrecruitment; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Ztestrecruitment; import java.util.Arrays; import java.util.List; @@ -51,6 +52,11 @@ public class Space extends SchemaImpl { */ public final Testrecruitment TESTRECRUITMENT = Testrecruitment.TESTRECRUITMENT; + /** + * The table space.ztestrecruitment. + */ + public final Ztestrecruitment ZTESTRECRUITMENT = Ztestrecruitment.ZTESTRECRUITMENT; + /** * No further instances allowed */ @@ -70,7 +76,8 @@ public class Space extends SchemaImpl { MilitaryCommissariat.MILITARY_COMMISSARIAT, MilitaryDistrict.MILITARY_DISTRICT, Region.REGION, - Testrecruitment.TESTRECRUITMENT + Testrecruitment.TESTRECRUITMENT, + Ztestrecruitment.ZTESTRECRUITMENT ); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Tables.java index 3ac7f50..0dabe30 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Tables.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Tables.java @@ -8,6 +8,7 @@ import ervu_dashboard.ervu_dashboard.db_beans.space.tables.MilitaryCommissariat; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.MilitaryDistrict; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Testrecruitment; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Ztestrecruitment; /** @@ -35,4 +36,9 @@ public class Tables { * The table space.testrecruitment. */ public static final Testrecruitment TESTRECRUITMENT = Testrecruitment.TESTRECRUITMENT; + + /** + * The table space.ztestrecruitment. + */ + public static final Ztestrecruitment ZTESTRECRUITMENT = Ztestrecruitment.ZTESTRECRUITMENT; } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Region.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Region.java index a08767c..3d0ff61 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Region.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Region.java @@ -6,8 +6,8 @@ package ervu_dashboard.ervu_dashboard.db_beans.space.tables; import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReviewRating.ReviewRatingPath; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.AppearSubppoena.AppearSubppoenaPath; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConscriptionInfo.ConscriptionInfoPath; import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationComplaint.ConsiderationComplaintPath; -import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.Recruitment.RecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.space.Keys; import ervu_dashboard.ervu_dashboard.db_beans.space.Space; import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.RegionRecord; @@ -169,6 +169,19 @@ public class Region extends TableImpl { return _appearSubppoena; } + private transient ConscriptionInfoPath _conscriptionInfo; + + /** + * Get the implicit to-many join path to the + * ratings.conscription_info table + */ + public ConscriptionInfoPath conscriptionInfo() { + if (_conscriptionInfo == null) + _conscriptionInfo = new ConscriptionInfoPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.CONSCRIPTION_INFO__CONSCRIPTION_INFO_FK2.getInverseKey()); + + return _conscriptionInfo; + } + private transient ConsiderationComplaintPath _considerationComplaint; /** @@ -182,19 +195,6 @@ public class Region extends TableImpl { return _considerationComplaint; } - private transient RecruitmentPath _recruitment; - - /** - * Get the implicit to-many join path to the - * ratings.recruitment table - */ - public RecruitmentPath recruitment() { - if (_recruitment == null) - _recruitment = new RecruitmentPath(this, null, ervu_dashboard.ervu_dashboard.db_beans.ratings.Keys.RECRUITMENT__FK_REGION.getInverseKey()); - - return _recruitment; - } - @Override public Region as(String alias) { return new Region(DSL.name(alias), this); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Testrecruitment.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Testrecruitment.java index 1b58460..6893dce 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Testrecruitment.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Testrecruitment.java @@ -55,9 +55,24 @@ public class Testrecruitment extends TableImpl { public final TableField ID = createField(DSL.name("id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** - * The column space.testrecruitment.name. + * The column space.testrecruitment.shortname. */ - public final TableField NAME = createField(DSL.name("name"), SQLDataType.CHAR(300), this, ""); + public final TableField SHORTNAME = createField(DSL.name("shortname"), SQLDataType.CHAR(300), this, ""); + + /** + * The column space.testrecruitment.idm_id. + */ + public final TableField IDM_ID = createField(DSL.name("idm_id"), SQLDataType.VARCHAR(36), this, ""); + + /** + * The column space.testrecruitment.code. + */ + public final TableField CODE = createField(DSL.name("code"), SQLDataType.CHAR(300), this, ""); + + /** + * The column space.testrecruitment.parent_id. + */ + public final TableField PARENT_ID = createField(DSL.name("parent_id"), SQLDataType.CHAR(300), this, ""); private Testrecruitment(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Ztestrecruitment.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Ztestrecruitment.java new file mode 100644 index 0000000..c892259 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Ztestrecruitment.java @@ -0,0 +1,217 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.space.Space; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.ZtestrecruitmentRecord; + +import java.util.Collection; +import java.util.UUID; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Ztestrecruitment extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of space.ztestrecruitment + */ + public static final Ztestrecruitment ZTESTRECRUITMENT = new Ztestrecruitment(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ZtestrecruitmentRecord.class; + } + + /** + * The column space.ztestrecruitment.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.UUID, this, ""); + + /** + * The column space.ztestrecruitment.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.CLOB, this, ""); + + private Ztestrecruitment(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Ztestrecruitment(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased space.ztestrecruitment table reference + */ + public Ztestrecruitment(String alias) { + this(DSL.name(alias), ZTESTRECRUITMENT); + } + + /** + * Create an aliased space.ztestrecruitment table reference + */ + public Ztestrecruitment(Name alias) { + this(alias, ZTESTRECRUITMENT); + } + + /** + * Create a space.ztestrecruitment table reference + */ + public Ztestrecruitment() { + this(DSL.name("ztestrecruitment"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Space.SPACE; + } + + @Override + public Ztestrecruitment as(String alias) { + return new Ztestrecruitment(DSL.name(alias), this); + } + + @Override + public Ztestrecruitment as(Name alias) { + return new Ztestrecruitment(alias, this); + } + + @Override + public Ztestrecruitment as(Table alias) { + return new Ztestrecruitment(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Ztestrecruitment rename(String name) { + return new Ztestrecruitment(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Ztestrecruitment rename(Name name) { + return new Ztestrecruitment(name, null); + } + + /** + * Rename this table + */ + @Override + public Ztestrecruitment rename(Table name) { + return new Ztestrecruitment(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Ztestrecruitment where(Condition condition) { + return new Ztestrecruitment(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Ztestrecruitment where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Ztestrecruitment where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Ztestrecruitment where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Ztestrecruitment where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Ztestrecruitment where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Ztestrecruitment where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Ztestrecruitment where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Ztestrecruitment whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Ztestrecruitment whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/TestrecruitmentRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/TestrecruitmentRecord.java index 3746d9a..13d42fb 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/TestrecruitmentRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/TestrecruitmentRecord.java @@ -33,19 +33,61 @@ public class TestrecruitmentRecord extends UpdatableRecordImplspace.testrecruitment.name. + * Setter for space.testrecruitment.shortname. */ - public void setName(String value) { + public void setShortname(String value) { set(1, value); } /** - * Getter for space.testrecruitment.name. + * Getter for space.testrecruitment.shortname. */ - public String getName() { + public String getShortname() { return (String) get(1); } + /** + * Setter for space.testrecruitment.idm_id. + */ + public void setIdmId(String value) { + set(2, value); + } + + /** + * Getter for space.testrecruitment.idm_id. + */ + public String getIdmId() { + return (String) get(2); + } + + /** + * Setter for space.testrecruitment.code. + */ + public void setCode(String value) { + set(3, value); + } + + /** + * Getter for space.testrecruitment.code. + */ + public String getCode() { + return (String) get(3); + } + + /** + * Setter for space.testrecruitment.parent_id. + */ + public void setParentId(String value) { + set(4, value); + } + + /** + * Getter for space.testrecruitment.parent_id. + */ + public String getParentId() { + return (String) get(4); + } + // ------------------------------------------------------------------------- // Primary key information // ------------------------------------------------------------------------- @@ -69,11 +111,14 @@ public class TestrecruitmentRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for space.ztestrecruitment.id. + */ + public void setId(UUID value) { + set(0, value); + } + + /** + * Getter for space.ztestrecruitment.id. + */ + public UUID getId() { + return (UUID) get(0); + } + + /** + * Setter for space.ztestrecruitment.name. + */ + public void setName(String value) { + set(1, value); + } + + /** + * Getter for space.ztestrecruitment.name. + */ + public String getName() { + return (String) get(1); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ZtestrecruitmentRecord + */ + public ZtestrecruitmentRecord() { + super(Ztestrecruitment.ZTESTRECRUITMENT); + } + + /** + * Create a detached, initialised ZtestrecruitmentRecord + */ + public ZtestrecruitmentRecord(UUID id, String name) { + super(Ztestrecruitment.ZTESTRECRUITMENT); + + setId(id); + setName(name); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Keys.java index d7b38ab..f60f191 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Keys.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Keys.java @@ -4,8 +4,6 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.PubRecruitmentRecord; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Age; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Busyness; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.ChildMinor; @@ -25,7 +23,6 @@ import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.Re import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.RemovedRegistryRecord; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.SubpoenasRecord; -import org.jooq.ForeignKey; import org.jooq.TableField; import org.jooq.UniqueKey; import org.jooq.impl.DSL; @@ -43,27 +40,13 @@ public class Keys { // UNIQUE and PRIMARY KEY definitions // ------------------------------------------------------------------------- - public static final UniqueKey PK_AGE = Internal.createUniqueKey(Age.AGE, DSL.name("pk_age"), new TableField[] { Age.AGE.ID_AGE }, true); - public static final UniqueKey PK_BUSYNESS = Internal.createUniqueKey(Busyness.BUSYNESS, DSL.name("pk_busyness"), new TableField[] { Busyness.BUSYNESS.ID_BUSYNESS }, true); - public static final UniqueKey PK_CHILD_MINOR = Internal.createUniqueKey(ChildMinor.CHILD_MINOR, DSL.name("pk_child_minor"), new TableField[] { ChildMinor.CHILD_MINOR.ID_CHILD_MINOR }, true); - public static final UniqueKey PK_DRIVER_LICENSE = Internal.createUniqueKey(DriverLicense.DRIVER_LICENSE, DSL.name("pk_driver_license"), new TableField[] { DriverLicense.DRIVER_LICENSE.ID_DRIVER_LICENSE }, true); - public static final UniqueKey PK_EDUCATION_LEVEL = Internal.createUniqueKey(EducationLevel.EDUCATION_LEVEL, DSL.name("pk_education_level"), new TableField[] { EducationLevel.EDUCATION_LEVEL.ID_EDUCATION_LEVEL }, true); - public static final UniqueKey PK_MARITAL_STATUS = Internal.createUniqueKey(MaritalStatus.MARITAL_STATUS, DSL.name("pk_marital_status"), new TableField[] { MaritalStatus.MARITAL_STATUS.ID_MARITAL_STATUS }, true); - public static final UniqueKey PK_REG_MIL_CAT = Internal.createUniqueKey(RegMilCat.REG_MIL_CAT, DSL.name("pk_reg_mil_cat"), new TableField[] { RegMilCat.REG_MIL_CAT.ID_REG_MIL_CAT }, true); - public static final UniqueKey REMOVED_REGISTRY_PKEY = Internal.createUniqueKey(RemovedRegistry.REMOVED_REGISTRY, DSL.name("removed_registry_pkey"), new TableField[] { RemovedRegistry.REMOVED_REGISTRY.ID_REMOVED_REGISTRY }, true); - public static final UniqueKey PK_SUBPOENA = Internal.createUniqueKey(Subpoenas.SUBPOENAS, DSL.name("pk_subpoena"), new TableField[] { Subpoenas.SUBPOENAS.ID_SUBPOENA }, true); - - // ------------------------------------------------------------------------- - // FOREIGN KEY definitions - // ------------------------------------------------------------------------- - - public static final ForeignKey AGE__AGE_FK1 = Internal.createForeignKey(Age.AGE, DSL.name("age_fk1"), new TableField[] { Age.AGE.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey BUSYNESS__BUSYNESS_FK1 = Internal.createForeignKey(Busyness.BUSYNESS, DSL.name("busyness_fk1"), new TableField[] { Busyness.BUSYNESS.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey CHILD_MINOR__CHILD_MINOR_FK1 = Internal.createForeignKey(ChildMinor.CHILD_MINOR, DSL.name("child_minor_fk1"), new TableField[] { ChildMinor.CHILD_MINOR.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey DRIVER_LICENSE__DRIVER_LICENSE_FK1 = Internal.createForeignKey(DriverLicense.DRIVER_LICENSE, DSL.name("driver_license_fk1"), new TableField[] { DriverLicense.DRIVER_LICENSE.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey EDUCATION_LEVEL__EDUCATION_LEVEL_FK1 = Internal.createForeignKey(EducationLevel.EDUCATION_LEVEL, DSL.name("education_level_fk1"), new TableField[] { EducationLevel.EDUCATION_LEVEL.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey MARITAL_STATUS__MARITAL_STATUS_FK1 = Internal.createForeignKey(MaritalStatus.MARITAL_STATUS, DSL.name("marital_status_fk1"), new TableField[] { MaritalStatus.MARITAL_STATUS.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey REG_MIL_CAT__REG_MIL_CAT_FK1 = Internal.createForeignKey(RegMilCat.REG_MIL_CAT, DSL.name("reg_mil_cat_fk1"), new TableField[] { RegMilCat.REG_MIL_CAT.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey REMOVED_REGISTRY__REMOVED_REGISTRY_FK1 = Internal.createForeignKey(RemovedRegistry.REMOVED_REGISTRY, DSL.name("removed_registry_fk1"), new TableField[] { RemovedRegistry.REMOVED_REGISTRY.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); - public static final ForeignKey SUBPOENAS__TR_SUBPOENAS_FK1 = Internal.createForeignKey(Subpoenas.SUBPOENAS, DSL.name("tr_subpoenas_fk1"), new TableField[] { Subpoenas.SUBPOENAS.RECRUITMENT_ID }, ervu_dashboard.ervu_dashboard.db_beans.public_.Keys.RECRUITMENT_PKEY, new TableField[] { PubRecruitment.PUB_RECRUITMENT.ID }, true); + public static final UniqueKey AGE_PKEY = Internal.createUniqueKey(Age.AGE, DSL.name("age_pkey"), new TableField[] { Age.AGE.REGISTERED, Age.AGE.RECRUITMENT_ID, Age.AGE.RECORDING_DATE, Age.AGE.ALL_M_W }, true); + public static final UniqueKey BUSYNESS_PKEY = Internal.createUniqueKey(Busyness.BUSYNESS, DSL.name("busyness_pkey"), new TableField[] { Busyness.BUSYNESS.RECORDING_DATE, Busyness.BUSYNESS.RECRUITMENT_ID, Busyness.BUSYNESS.REGISTERED, Busyness.BUSYNESS.ALL_M_W }, true); + public static final UniqueKey CHILD_MINOR_PKEY = Internal.createUniqueKey(ChildMinor.CHILD_MINOR, DSL.name("child_minor_pkey"), new TableField[] { ChildMinor.CHILD_MINOR.ALL_M_W, ChildMinor.CHILD_MINOR.RECORDING_DATE, ChildMinor.CHILD_MINOR.RECRUITMENT_ID }, true); + public static final UniqueKey DRIVER_LICENSE_PKEY = Internal.createUniqueKey(DriverLicense.DRIVER_LICENSE, DSL.name("driver_license_pkey"), new TableField[] { DriverLicense.DRIVER_LICENSE.RECRUITMENT_ID, DriverLicense.DRIVER_LICENSE.ALL_M_W, DriverLicense.DRIVER_LICENSE.RECORDING_DATE }, true); + public static final UniqueKey EDUCATION_LEVEL_PKEY = Internal.createUniqueKey(EducationLevel.EDUCATION_LEVEL, DSL.name("education_level_pkey"), new TableField[] { EducationLevel.EDUCATION_LEVEL.ALL_M_W, EducationLevel.EDUCATION_LEVEL.RECORDING_DATE, EducationLevel.EDUCATION_LEVEL.RECRUITMENT_ID }, true); + public static final UniqueKey MARITAL_STATUS_PKEY = Internal.createUniqueKey(MaritalStatus.MARITAL_STATUS, DSL.name("marital_status_pkey"), new TableField[] { MaritalStatus.MARITAL_STATUS.RECRUITMENT_ID, MaritalStatus.MARITAL_STATUS.RECORDING_DATE, MaritalStatus.MARITAL_STATUS.ALL_M_W }, true); + public static final UniqueKey REG_MIL_CAT_PKEY = Internal.createUniqueKey(RegMilCat.REG_MIL_CAT, DSL.name("reg_mil_cat_pkey"), new TableField[] { RegMilCat.REG_MIL_CAT.MIL_REG, RegMilCat.REG_MIL_CAT.RECRUITMENT_ID, RegMilCat.REG_MIL_CAT.RECORDING_DATE }, true); + public static final UniqueKey REMOVED_REGISTRY_PKEY = Internal.createUniqueKey(RemovedRegistry.REMOVED_REGISTRY, DSL.name("removed_registry_pkey"), new TableField[] { RemovedRegistry.REMOVED_REGISTRY.RECRUITMENT_ID, RemovedRegistry.REMOVED_REGISTRY.RECORDING_DATE }, true); + public static final UniqueKey SUBPOENAS_PKEY = Internal.createUniqueKey(Subpoenas.SUBPOENAS, DSL.name("subpoenas_pkey"), new TableField[] { Subpoenas.SUBPOENAS.MIL_REG, Subpoenas.SUBPOENAS.RECRUITMENT_ID, Subpoenas.SUBPOENAS.RECORDING_DATE }, true); } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Age.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Age.java index bdf1456..002a063 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Age.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Age.java @@ -4,28 +4,20 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.AgeRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -60,11 +52,6 @@ public class Age extends TableImpl { return AgeRecord.class; } - /** - * The column total_registered.age.id_age. - */ - public final TableField ID_AGE = createField(DSL.name("id_age"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.age.17_yaers. Возраст 17 */ @@ -103,18 +90,12 @@ public class Age extends TableImpl { /** * The column total_registered.age.all_M_W. Все/мужчины/женщины */ - public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "Все/мужчины/женщины"); - - /** - * The column total_registered.age.registered. Состоит на учете - * или нет - */ - public final TableField REGISTERED = createField(DSL.name("registered"), SQLDataType.BOOLEAN, this, "Состоит на учете или нет"); + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CHAR(10).nullable(false), this, "Все/мужчины/женщины"); /** * The column total_registered.age.recording_date. Дата записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column total_registered.age.46-50_years. Возраст 46-50 @@ -172,7 +153,17 @@ public class Age extends TableImpl { /** * The column total_registered.age.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column total_registered.age.registered. + */ + public final TableField REGISTERED = createField(DSL.name("registered"), SQLDataType.CHAR(10).nullable(false), this, ""); + + /** + * The column total_registered.age.id_age. + */ + public final TableField ID_AGE = createField(DSL.name("id_age"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private Age(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -203,37 +194,6 @@ public class Age extends TableImpl { this(DSL.name("age"), null); } - public Age(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, AGE); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class AgePath extends Age implements Path { - public AgePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private AgePath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public AgePath as(String alias) { - return new AgePath(DSL.name(alias), this); - } - - @Override - public AgePath as(Name alias) { - return new AgePath(alias, this); - } - - @Override - public AgePath as(Table alias) { - return new AgePath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; @@ -246,25 +206,7 @@ public class Age extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_AGE; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.AGE__AGE_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.AGE__AGE_FK1, null); - - return _pubRecruitment; + return Keys.AGE_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Busyness.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Busyness.java index 2912698..5103f91 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Busyness.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Busyness.java @@ -4,28 +4,19 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.BusynessRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -60,11 +51,6 @@ public class Busyness extends TableImpl { return BusynessRecord.class; } - /** - * The column total_registered.busyness.id_busyness. - */ - public final TableField ID_BUSYNESS = createField(DSL.name("id_busyness"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.busyness.study. Учатся */ @@ -80,23 +66,11 @@ public class Busyness extends TableImpl { */ public final TableField NOT_WORK = createField(DSL.name("not_work"), SQLDataType.NUMERIC, this, "Безработные"); - /** - * The column total_registered.busyness.all_M_W. - * Все/Мужчины/Женщины - */ - public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "Все/Мужчины/Женщины"); - - /** - * The column total_registered.busyness.registered. Состоит на - * учете/не состоит - */ - public final TableField REGISTERED = createField(DSL.name("registered"), SQLDataType.BOOLEAN, this, "Состоит на учете/не состоит"); - /** * The column total_registered.busyness.recording_date. Дата * записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column total_registered.busyness.study_percent. Учатся в @@ -119,7 +93,22 @@ public class Busyness extends TableImpl { /** * The column total_registered.busyness.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column total_registered.busyness.registered. + */ + public final TableField REGISTERED = createField(DSL.name("registered"), SQLDataType.VARCHAR.nullable(false), this, ""); + + /** + * The column total_registered.busyness.all_M_W. + */ + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.VARCHAR.nullable(false), this, ""); + + /** + * The column total_registered.busyness.busyness. + */ + public final TableField BUSYNESS_ = createField(DSL.name("busyness"), SQLDataType.NUMERIC, this, ""); private Busyness(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -150,68 +139,14 @@ public class Busyness extends TableImpl { this(DSL.name("busyness"), null); } - public Busyness(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, BUSYNESS); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class BusynessPath extends Busyness implements Path { - public BusynessPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private BusynessPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public BusynessPath as(String alias) { - return new BusynessPath(DSL.name(alias), this); - } - - @Override - public BusynessPath as(Name alias) { - return new BusynessPath(alias, this); - } - - @Override - public BusynessPath as(Table alias) { - return new BusynessPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; } - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - @Override public UniqueKey getPrimaryKey() { - return Keys.PK_BUSYNESS; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.BUSYNESS__BUSYNESS_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.BUSYNESS__BUSYNESS_FK1, null); - - return _pubRecruitment; + return Keys.BUSYNESS_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/ChildMinor.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/ChildMinor.java index a500b72..0a56bff 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/ChildMinor.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/ChildMinor.java @@ -4,28 +4,20 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.ChildMinorRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -60,11 +52,6 @@ public class ChildMinor extends TableImpl { return ChildMinorRecord.class; } - /** - * The column total_registered.child_minor.id_child_minor. - */ - public final TableField ID_CHILD_MINOR = createField(DSL.name("id_child_minor"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.child_minor.no_child. Нет детей */ @@ -95,13 +82,13 @@ public class ChildMinor extends TableImpl { * The column total_registered.child_minor.all_M_W. * Все/Мужчины/Женщины */ - public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "Все/Мужчины/Женщины"); + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CHAR(10).nullable(false), this, "Все/Мужчины/Женщины"); /** * The column total_registered.child_minor.recording_date. Дата * записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column total_registered.child_minor.no_child_percent. @@ -137,7 +124,12 @@ public class ChildMinor extends TableImpl { /** * The column total_registered.child_minor.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column total_registered.child_minor.id_child_minor. + */ + public final TableField ID_CHILD_MINOR = createField(DSL.name("id_child_minor"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private ChildMinor(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -170,37 +162,6 @@ public class ChildMinor extends TableImpl { this(DSL.name("child_minor"), null); } - public ChildMinor(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, CHILD_MINOR); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class ChildMinorPath extends ChildMinor implements Path { - public ChildMinorPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private ChildMinorPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public ChildMinorPath as(String alias) { - return new ChildMinorPath(DSL.name(alias), this); - } - - @Override - public ChildMinorPath as(Name alias) { - return new ChildMinorPath(alias, this); - } - - @Override - public ChildMinorPath as(Table alias) { - return new ChildMinorPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; @@ -213,25 +174,7 @@ public class ChildMinor extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_CHILD_MINOR; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.CHILD_MINOR__CHILD_MINOR_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.CHILD_MINOR__CHILD_MINOR_FK1, null); - - return _pubRecruitment; + return Keys.CHILD_MINOR_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/DriverLicense.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/DriverLicense.java index 87e0eb6..bb10ed1 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/DriverLicense.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/DriverLicense.java @@ -4,28 +4,20 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.DriverLicenseRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -61,12 +53,6 @@ public class DriverLicense extends TableImpl { return DriverLicenseRecord.class; } - /** - * The column - * total_registered.driver_license.id_driver_license. - */ - public final TableField ID_DRIVER_LICENSE = createField(DSL.name("id_driver_license"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.driver_license.nope. нет * водительского удостоверения @@ -102,13 +88,13 @@ public class DriverLicense extends TableImpl { * The column total_registered.driver_license.all_M_W. * Все/Мужчины/Женщины */ - public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "Все/Мужчины/Женщины"); + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CHAR(10).nullable(false), this, "Все/Мужчины/Женщины"); /** * The column total_registered.driver_license.recording_date. * Дата записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column total_registered.driver_license.nope_repcent. нет @@ -149,7 +135,13 @@ public class DriverLicense extends TableImpl { /** * The column total_registered.driver_license.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column + * total_registered.driver_license.id_driver_license. + */ + public final TableField ID_DRIVER_LICENSE = createField(DSL.name("id_driver_license"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private DriverLicense(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -182,37 +174,6 @@ public class DriverLicense extends TableImpl { this(DSL.name("driver_license"), null); } - public DriverLicense(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, DRIVER_LICENSE); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class DriverLicensePath extends DriverLicense implements Path { - public DriverLicensePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private DriverLicensePath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public DriverLicensePath as(String alias) { - return new DriverLicensePath(DSL.name(alias), this); - } - - @Override - public DriverLicensePath as(Name alias) { - return new DriverLicensePath(alias, this); - } - - @Override - public DriverLicensePath as(Table alias) { - return new DriverLicensePath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; @@ -225,25 +186,7 @@ public class DriverLicense extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_DRIVER_LICENSE; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.DRIVER_LICENSE__DRIVER_LICENSE_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.DRIVER_LICENSE__DRIVER_LICENSE_FK1, null); - - return _pubRecruitment; + return Keys.DRIVER_LICENSE_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/EducationLevel.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/EducationLevel.java index ccfade9..c0b2d3c 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/EducationLevel.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/EducationLevel.java @@ -4,28 +4,19 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.EducationLevelRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -61,12 +52,6 @@ public class EducationLevel extends TableImpl { return EducationLevelRecord.class; } - /** - * The column - * total_registered.education_level.id_education_level. - */ - public final TableField ID_EDUCATION_LEVEL = createField(DSL.name("id_education_level"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.education_level.higher. Высшее * образование @@ -83,7 +68,7 @@ public class EducationLevel extends TableImpl { * The column total_registered.education_level.all_M_W. * Все/Мужчины/Женщины */ - public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "Все/Мужчины/Женщины"); + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB.nullable(false), this, "Все/Мужчины/Женщины"); /** * The column total_registered.education_level.only_general. @@ -101,7 +86,7 @@ public class EducationLevel extends TableImpl { * The column total_registered.education_level.recording_date. * Дата записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column total_registered.education_level.higher_percent. @@ -131,7 +116,12 @@ public class EducationLevel extends TableImpl { /** * The column total_registered.education_level.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column total_registered.education_level.education_level. + */ + public final TableField EDUCATION_LEVEL_ = createField(DSL.name("education_level"), SQLDataType.NUMERIC, this, ""); private EducationLevel(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -164,68 +154,14 @@ public class EducationLevel extends TableImpl { this(DSL.name("education_level"), null); } - public EducationLevel(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, EDUCATION_LEVEL); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class EducationLevelPath extends EducationLevel implements Path { - public EducationLevelPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private EducationLevelPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public EducationLevelPath as(String alias) { - return new EducationLevelPath(DSL.name(alias), this); - } - - @Override - public EducationLevelPath as(Name alias) { - return new EducationLevelPath(alias, this); - } - - @Override - public EducationLevelPath as(Table alias) { - return new EducationLevelPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; } - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - @Override public UniqueKey getPrimaryKey() { - return Keys.PK_EDUCATION_LEVEL; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.EDUCATION_LEVEL__EDUCATION_LEVEL_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.EDUCATION_LEVEL__EDUCATION_LEVEL_FK1, null); - - return _pubRecruitment; + return Keys.EDUCATION_LEVEL_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/MaritalStatus.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/MaritalStatus.java index 5ec5e9b..eea7509 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/MaritalStatus.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/MaritalStatus.java @@ -4,28 +4,19 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.MaritalStatusRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -61,12 +52,6 @@ public class MaritalStatus extends TableImpl { return MaritalStatusRecord.class; } - /** - * The column - * total_registered.marital_status.id_marital_status. - */ - public final TableField ID_MARITAL_STATUS = createField(DSL.name("id_marital_status"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.marital_status.married. В браке */ @@ -82,13 +67,13 @@ public class MaritalStatus extends TableImpl { * The column total_registered.marital_status.all_M_W. * Все/Мужчины/Женщины */ - public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "Все/Мужчины/Женщины"); + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB.nullable(false), this, "Все/Мужчины/Женщины"); /** * The column total_registered.marital_status.recording_date. * Дата записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column total_registered.marital_status.married_percent. @@ -106,7 +91,12 @@ public class MaritalStatus extends TableImpl { /** * The column total_registered.marital_status.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column total_registered.marital_status.marital_status. + */ + public final TableField MARITAL_STATUS_ = createField(DSL.name("marital_status"), SQLDataType.NUMERIC, this, ""); private MaritalStatus(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -139,68 +129,14 @@ public class MaritalStatus extends TableImpl { this(DSL.name("marital_status"), null); } - public MaritalStatus(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, MARITAL_STATUS); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class MaritalStatusPath extends MaritalStatus implements Path { - public MaritalStatusPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private MaritalStatusPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public MaritalStatusPath as(String alias) { - return new MaritalStatusPath(DSL.name(alias), this); - } - - @Override - public MaritalStatusPath as(Name alias) { - return new MaritalStatusPath(alias, this); - } - - @Override - public MaritalStatusPath as(Table alias) { - return new MaritalStatusPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; } - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - @Override public UniqueKey getPrimaryKey() { - return Keys.PK_MARITAL_STATUS; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.MARITAL_STATUS__MARITAL_STATUS_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.MARITAL_STATUS__MARITAL_STATUS_FK1, null); - - return _pubRecruitment; + return Keys.MARITAL_STATUS_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RegMilCat.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RegMilCat.java index 6aab08f..510ddd8 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RegMilCat.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RegMilCat.java @@ -4,28 +4,20 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.RegMilCatRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -61,11 +53,6 @@ public class RegMilCat extends TableImpl { return RegMilCatRecord.class; } - /** - * The column total_registered.reg_mil_cat.id_reg_mil_cat. - */ - public final TableField ID_REG_MIL_CAT = createField(DSL.name("id_reg_mil_cat"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.reg_mil_cat.first_reg_17. * Первоначальная постановка на воинский учет граждан от 17 лет @@ -104,17 +91,11 @@ public class RegMilCat extends TableImpl { */ public final TableField RECEIVED_CITIZENSHIP = createField(DSL.name("received_citizenship"), SQLDataType.NUMERIC, this, "Получившие гражданство"); - /** - * The column total_registered.reg_mil_cat.mil_reg. Состоит на - * учете/ не состоит - */ - public final TableField MIL_REG = createField(DSL.name("mil_reg"), SQLDataType.BOOLEAN, this, "Состоит на учете/ не состоит"); - /** * The column total_registered.reg_mil_cat.recording_date. Дата * записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column @@ -159,17 +140,17 @@ public class RegMilCat extends TableImpl { /** * The column total_registered.reg_mil_cat.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** - * The column total_registered.reg_mil_cat.testrecruitment_id. + * The column total_registered.reg_mil_cat.mil_reg. */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + public final TableField MIL_REG = createField(DSL.name("mil_reg"), SQLDataType.NUMERIC.nullable(false), this, ""); /** - * The column total_registered.reg_mil_cat.testmil_reg. + * The column total_registered.reg_mil_cat.id_reg_mil_cat. */ - public final TableField TESTMIL_REG = createField(DSL.name("testmil_reg"), SQLDataType.NUMERIC, this, ""); + public final TableField ID_REG_MIL_CAT = createField(DSL.name("id_reg_mil_cat"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private RegMilCat(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -202,37 +183,6 @@ public class RegMilCat extends TableImpl { this(DSL.name("reg_mil_cat"), null); } - public RegMilCat(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, REG_MIL_CAT); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class RegMilCatPath extends RegMilCat implements Path { - public RegMilCatPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private RegMilCatPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public RegMilCatPath as(String alias) { - return new RegMilCatPath(DSL.name(alias), this); - } - - @Override - public RegMilCatPath as(Name alias) { - return new RegMilCatPath(alias, this); - } - - @Override - public RegMilCatPath as(Table alias) { - return new RegMilCatPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; @@ -245,25 +195,7 @@ public class RegMilCat extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_REG_MIL_CAT; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.REG_MIL_CAT__REG_MIL_CAT_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.REG_MIL_CAT__REG_MIL_CAT_FK1, null); - - return _pubRecruitment; + return Keys.REG_MIL_CAT_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RemovedRegistry.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RemovedRegistry.java index d473f9e..9747aa7 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RemovedRegistry.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RemovedRegistry.java @@ -4,28 +4,20 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.RemovedRegistryRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -106,7 +98,7 @@ public class RemovedRegistry extends TableImpl { * The column total_registered.removed_registry.recording_date. * Дата записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column @@ -151,7 +143,7 @@ public class RemovedRegistry extends TableImpl { /** * The column total_registered.removed_registry.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** * The column @@ -159,12 +151,6 @@ public class RemovedRegistry extends TableImpl { */ public final TableField ID_REMOVED_REGISTRY = createField(DSL.name("id_removed_registry"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** - * The column - * total_registered.removed_registry.testrecruitment_id. - */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); - private RemovedRegistry(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); } @@ -196,37 +182,6 @@ public class RemovedRegistry extends TableImpl { this(DSL.name("removed_registry"), null); } - public RemovedRegistry(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, REMOVED_REGISTRY); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class RemovedRegistryPath extends RemovedRegistry implements Path { - public RemovedRegistryPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private RemovedRegistryPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public RemovedRegistryPath as(String alias) { - return new RemovedRegistryPath(DSL.name(alias), this); - } - - @Override - public RemovedRegistryPath as(Name alias) { - return new RemovedRegistryPath(alias, this); - } - - @Override - public RemovedRegistryPath as(Table alias) { - return new RemovedRegistryPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; @@ -242,24 +197,6 @@ public class RemovedRegistry extends TableImpl { return Keys.REMOVED_REGISTRY_PKEY; } - @Override - public List> getReferences() { - return Arrays.asList(Keys.REMOVED_REGISTRY__REMOVED_REGISTRY_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.REMOVED_REGISTRY__REMOVED_REGISTRY_FK1, null); - - return _pubRecruitment; - } - @Override public RemovedRegistry as(String alias) { return new RemovedRegistry(DSL.name(alias), this); diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Subpoenas.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Subpoenas.java index e84a341..523cacd 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Subpoenas.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Subpoenas.java @@ -4,28 +4,20 @@ package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables; -import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.PubRecruitment.PubRecruitmentPath; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.Keys; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.SubpoenasRecord; import java.math.BigDecimal; import java.sql.Date; -import java.util.Arrays; import java.util.Collection; -import java.util.List; -import java.util.UUID; import org.jooq.Condition; import org.jooq.Field; -import org.jooq.ForeignKey; import org.jooq.Identity; -import org.jooq.InverseForeignKey; import org.jooq.Name; -import org.jooq.Path; import org.jooq.PlainSQL; import org.jooq.QueryPart; -import org.jooq.Record; import org.jooq.SQL; import org.jooq.Schema; import org.jooq.Select; @@ -60,11 +52,6 @@ public class Subpoenas extends TableImpl { return SubpoenasRecord.class; } - /** - * The column total_registered.subpoenas.id_subpoena. - */ - public final TableField ID_SUBPOENA = createField(DSL.name("id_subpoena"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); - /** * The column total_registered.subpoenas.subpoena. Направлено * повесток @@ -122,17 +109,11 @@ public class Subpoenas extends TableImpl { */ public final TableField INTRODUCED_MEASURES = createField(DSL.name("introduced_measures"), SQLDataType.NUMERIC, this, "Введено реализатором мер"); - /** - * The column total_registered.subpoenas.mil_reg. Состоит/не - * состоит на учете - */ - public final TableField MIL_REG = createField(DSL.name("mil_reg"), SQLDataType.BOOLEAN, this, "Состоит/не состоит на учете"); - /** * The column total_registered.subpoenas.recording_date. Дата * записи */ - public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE.nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.DATE)), this, "Дата записи"); /** * The column total_registered.subpoenas.appeared_percent. @@ -189,17 +170,17 @@ public class Subpoenas extends TableImpl { /** * The column total_registered.subpoenas.recruitment_id. */ - public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.CHAR(36).nullable(false), this, ""); /** - * The column total_registered.subpoenas.testrecruitment_id. + * The column total_registered.subpoenas.mil_reg. */ - public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + public final TableField MIL_REG = createField(DSL.name("mil_reg"), SQLDataType.NUMERIC.nullable(false), this, ""); /** - * The column total_registered.subpoenas.testmil_reg. + * The column total_registered.subpoenas.id_subpoena. */ - public final TableField TESTMIL_REG = createField(DSL.name("testmil_reg"), SQLDataType.NUMERIC, this, ""); + public final TableField ID_SUBPOENA = createField(DSL.name("id_subpoena"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); private Subpoenas(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); @@ -230,37 +211,6 @@ public class Subpoenas extends TableImpl { this(DSL.name("subpoenas"), null); } - public Subpoenas(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath, SUBPOENAS); - } - - /** - * A subtype implementing {@link Path} for simplified path-based joins. - */ - public static class SubpoenasPath extends Subpoenas implements Path { - public SubpoenasPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { - super(path, childPath, parentPath); - } - private SubpoenasPath(Name alias, Table aliased) { - super(alias, aliased); - } - - @Override - public SubpoenasPath as(String alias) { - return new SubpoenasPath(DSL.name(alias), this); - } - - @Override - public SubpoenasPath as(Name alias) { - return new SubpoenasPath(alias, this); - } - - @Override - public SubpoenasPath as(Table alias) { - return new SubpoenasPath(alias.getQualifiedName(), this); - } - } - @Override public Schema getSchema() { return aliased() ? null : TotalRegistered.TOTAL_REGISTERED; @@ -273,25 +223,7 @@ public class Subpoenas extends TableImpl { @Override public UniqueKey getPrimaryKey() { - return Keys.PK_SUBPOENA; - } - - @Override - public List> getReferences() { - return Arrays.asList(Keys.SUBPOENAS__TR_SUBPOENAS_FK1); - } - - private transient PubRecruitmentPath _pubRecruitment; - - /** - * Get the implicit join path to the public.pub_recruitment - * table. - */ - public PubRecruitmentPath pubRecruitment() { - if (_pubRecruitment == null) - _pubRecruitment = new PubRecruitmentPath(this, Keys.SUBPOENAS__TR_SUBPOENAS_FK1, null); - - return _pubRecruitment; + return Keys.SUBPOENAS_PKEY; } @Override diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/AgeRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/AgeRecord.java index 4f4738e..1ee76e1 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/AgeRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/AgeRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Age; import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record4; import org.jooq.impl.UpdatableRecordImpl; @@ -22,174 +21,144 @@ public class AgeRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; - /** - * Setter for total_registered.age.id_age. - */ - public void setIdAge(Long value) { - set(0, value); - } - - /** - * Getter for total_registered.age.id_age. - */ - public Long getIdAge() { - return (Long) get(0); - } - /** * Setter for total_registered.age.17_yaers. Возраст 17 */ public void set_17Yaers(BigDecimal value) { - set(1, value); + set(0, value); } /** * Getter for total_registered.age.17_yaers. Возраст 17 */ public BigDecimal get_17Yaers() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** * Setter for total_registered.age.18-26_years. Возраст 18-26 */ public void set_18_26Years(BigDecimal value) { - set(2, value); + set(1, value); } /** * Getter for total_registered.age.18-26_years. Возраст 18-26 */ public BigDecimal get_18_26Years() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** * Setter for total_registered.age.27-30_years. Возраст 27-30 */ public void set_27_30Years(BigDecimal value) { - set(3, value); + set(2, value); } /** * Getter for total_registered.age.27-30_years. Возраст 27-30 */ public BigDecimal get_27_30Years() { - return (BigDecimal) get(3); + return (BigDecimal) get(2); } /** * Setter for total_registered.age.31-35_years. Возраст 31-35 */ public void set_31_35Years(BigDecimal value) { - set(4, value); + set(3, value); } /** * Getter for total_registered.age.31-35_years. Возраст 31-35 */ public BigDecimal get_31_35Years() { - return (BigDecimal) get(4); + return (BigDecimal) get(3); } /** * Setter for total_registered.age.36-40_years. Возраст 36-40 */ public void set_36_40Years(BigDecimal value) { - set(5, value); + set(4, value); } /** * Getter for total_registered.age.36-40_years. Возраст 36-40 */ public BigDecimal get_36_40Years() { - return (BigDecimal) get(5); + return (BigDecimal) get(4); } /** * Setter for total_registered.age.41-45_years. Возраст 41-45 */ public void set_41_45Years(BigDecimal value) { - set(6, value); + set(5, value); } /** * Getter for total_registered.age.41-45_years. Возраст 41-45 */ public BigDecimal get_41_45Years() { - return (BigDecimal) get(6); + return (BigDecimal) get(5); } /** * Setter for total_registered.age.51+_years. Возраст 51+ */ public void set_51_2bYears(BigDecimal value) { - set(7, value); + set(6, value); } /** * Getter for total_registered.age.51+_years. Возраст 51+ */ public BigDecimal get_51_2bYears() { - return (BigDecimal) get(7); + return (BigDecimal) get(6); } /** * Setter for total_registered.age.all_M_W. Все/мужчины/женщины */ public void setAllMW(String value) { - set(8, value); + set(7, value); } /** * Getter for total_registered.age.all_M_W. Все/мужчины/женщины */ public String getAllMW() { - return (String) get(8); - } - - /** - * Setter for total_registered.age.registered. Состоит на учете - * или нет - */ - public void setRegistered(Boolean value) { - set(9, value); - } - - /** - * Getter for total_registered.age.registered. Состоит на учете - * или нет - */ - public Boolean getRegistered() { - return (Boolean) get(9); + return (String) get(7); } /** * Setter for total_registered.age.recording_date. Дата записи */ public void setRecordingDate(Date value) { - set(10, value); + set(8, value); } /** * Getter for total_registered.age.recording_date. Дата записи */ public Date getRecordingDate() { - return (Date) get(10); + return (Date) get(8); } /** * Setter for total_registered.age.46-50_years. Возраст 46-50 */ public void set_46_50Years(BigDecimal value) { - set(11, value); + set(9, value); } /** * Getter for total_registered.age.46-50_years. Возраст 46-50 */ public BigDecimal get_46_50Years() { - return (BigDecimal) get(11); + return (BigDecimal) get(9); } /** @@ -197,7 +166,7 @@ public class AgeRecord extends UpdatableRecordImpl { * в процентах */ public void set_17YaersPercent(BigDecimal value) { - set(12, value); + set(10, value); } /** @@ -205,7 +174,7 @@ public class AgeRecord extends UpdatableRecordImpl { * в процентах */ public BigDecimal get_17YaersPercent() { - return (BigDecimal) get(12); + return (BigDecimal) get(10); } /** @@ -213,7 +182,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 18-26 в процентах */ public void set_18_26YearsPercent(BigDecimal value) { - set(13, value); + set(11, value); } /** @@ -221,7 +190,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 18-26 в процентах */ public BigDecimal get_18_26YearsPercent() { - return (BigDecimal) get(13); + return (BigDecimal) get(11); } /** @@ -229,7 +198,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 27-30 в процентах */ public void set_27_30YearsPercent(BigDecimal value) { - set(14, value); + set(12, value); } /** @@ -237,7 +206,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 27-30 в процентах */ public BigDecimal get_27_30YearsPercent() { - return (BigDecimal) get(14); + return (BigDecimal) get(12); } /** @@ -245,7 +214,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 31-35 в процентах */ public void set_31_35YearsPercent(BigDecimal value) { - set(15, value); + set(13, value); } /** @@ -253,7 +222,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 31-35 в процентах */ public BigDecimal get_31_35YearsPercent() { - return (BigDecimal) get(15); + return (BigDecimal) get(13); } /** @@ -261,7 +230,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 36-40 в процентах */ public void set_36_40YearsPercent(BigDecimal value) { - set(16, value); + set(14, value); } /** @@ -269,7 +238,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 36-40 в процентах */ public BigDecimal get_36_40YearsPercent() { - return (BigDecimal) get(16); + return (BigDecimal) get(14); } /** @@ -277,7 +246,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 41-45 в процентах */ public void set_41_45YearsPercent(BigDecimal value) { - set(17, value); + set(15, value); } /** @@ -285,7 +254,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 41-45 в процентах */ public BigDecimal get_41_45YearsPercent() { - return (BigDecimal) get(17); + return (BigDecimal) get(15); } /** @@ -293,7 +262,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 46-50 в процентах */ public void set_46_50YearsPercent(BigDecimal value) { - set(18, value); + set(16, value); } /** @@ -301,7 +270,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 46-50 в процентах */ public BigDecimal get_46_50YearsPercent() { - return (BigDecimal) get(18); + return (BigDecimal) get(16); } /** @@ -309,7 +278,7 @@ public class AgeRecord extends UpdatableRecordImpl { * 51+ в процентах */ public void set_51_2bYearsPercent(BigDecimal value) { - set(19, value); + set(17, value); } /** @@ -317,21 +286,49 @@ public class AgeRecord extends UpdatableRecordImpl { * 51+ в процентах */ public BigDecimal get_51_2bYearsPercent() { - return (BigDecimal) get(19); + return (BigDecimal) get(17); } /** * Setter for total_registered.age.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(20, value); + public void setRecruitmentId(String value) { + set(18, value); } /** * Getter for total_registered.age.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(20); + public String getRecruitmentId() { + return (String) get(18); + } + + /** + * Setter for total_registered.age.registered. + */ + public void setRegistered(String value) { + set(19, value); + } + + /** + * Getter for total_registered.age.registered. + */ + public String getRegistered() { + return (String) get(19); + } + + /** + * Setter for total_registered.age.id_age. + */ + public void setIdAge(Long value) { + set(20, value); + } + + /** + * Getter for total_registered.age.id_age. + */ + public Long getIdAge() { + return (Long) get(20); } // ------------------------------------------------------------------------- @@ -339,8 +336,8 @@ public class AgeRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record4 key() { + return (Record4) super.key(); } // ------------------------------------------------------------------------- @@ -357,10 +354,9 @@ public class AgeRecord extends UpdatableRecordImpl { /** * Create a detached, initialised AgeRecord */ - public AgeRecord(Long idAge, BigDecimal _17Yaers, BigDecimal _18_26Years, BigDecimal _27_30Years, BigDecimal _31_35Years, BigDecimal _36_40Years, BigDecimal _41_45Years, BigDecimal _51_2bYears, String allMW, Boolean registered, Date recordingDate, BigDecimal _46_50Years, BigDecimal _17YaersPercent, BigDecimal _18_26YearsPercent, BigDecimal _27_30YearsPercent, BigDecimal _31_35YearsPercent, BigDecimal _36_40YearsPercent, BigDecimal _41_45YearsPercent, BigDecimal _46_50YearsPercent, BigDecimal _51_2bYearsPercent, UUID recruitmentId) { + public AgeRecord(BigDecimal _17Yaers, BigDecimal _18_26Years, BigDecimal _27_30Years, BigDecimal _31_35Years, BigDecimal _36_40Years, BigDecimal _41_45Years, BigDecimal _51_2bYears, String allMW, Date recordingDate, BigDecimal _46_50Years, BigDecimal _17YaersPercent, BigDecimal _18_26YearsPercent, BigDecimal _27_30YearsPercent, BigDecimal _31_35YearsPercent, BigDecimal _36_40YearsPercent, BigDecimal _41_45YearsPercent, BigDecimal _46_50YearsPercent, BigDecimal _51_2bYearsPercent, String recruitmentId, String registered, Long idAge) { super(Age.AGE); - setIdAge(idAge); set_17Yaers(_17Yaers); set_18_26Years(_18_26Years); set_27_30Years(_27_30Years); @@ -369,7 +365,6 @@ public class AgeRecord extends UpdatableRecordImpl { set_41_45Years(_41_45Years); set_51_2bYears(_51_2bYears); setAllMW(allMW); - setRegistered(registered); setRecordingDate(recordingDate); set_46_50Years(_46_50Years); set_17YaersPercent(_17YaersPercent); @@ -381,6 +376,8 @@ public class AgeRecord extends UpdatableRecordImpl { set_46_50YearsPercent(_46_50YearsPercent); set_51_2bYearsPercent(_51_2bYearsPercent); setRecruitmentId(recruitmentId); + setRegistered(registered); + setIdAge(idAge); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/BusynessRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/BusynessRecord.java index 2515808..3b9b7de 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/BusynessRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/BusynessRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Busyness; import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record4; import org.jooq.impl.UpdatableRecordImpl; @@ -22,92 +21,46 @@ public class BusynessRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; - /** - * Setter for total_registered.busyness.id_busyness. - */ - public void setIdBusyness(Long value) { - set(0, value); - } - - /** - * Getter for total_registered.busyness.id_busyness. - */ - public Long getIdBusyness() { - return (Long) get(0); - } - /** * Setter for total_registered.busyness.study. Учатся */ public void setStudy(BigDecimal value) { - set(1, value); + set(0, value); } /** * Getter for total_registered.busyness.study. Учатся */ public BigDecimal getStudy() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** * Setter for total_registered.busyness.work. Работают */ public void setWork(BigDecimal value) { - set(2, value); + set(1, value); } /** * Getter for total_registered.busyness.work. Работают */ public BigDecimal getWork() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** * Setter for total_registered.busyness.not_work. Безработные */ public void setNotWork(BigDecimal value) { - set(3, value); + set(2, value); } /** * Getter for total_registered.busyness.not_work. Безработные */ public BigDecimal getNotWork() { - return (BigDecimal) get(3); - } - - /** - * Setter for total_registered.busyness.all_M_W. - * Все/Мужчины/Женщины - */ - public void setAllMW(String value) { - set(4, value); - } - - /** - * Getter for total_registered.busyness.all_M_W. - * Все/Мужчины/Женщины - */ - public String getAllMW() { - return (String) get(4); - } - - /** - * Setter for total_registered.busyness.registered. Состоит на - * учете/не состоит - */ - public void setRegistered(Boolean value) { - set(5, value); - } - - /** - * Getter for total_registered.busyness.registered. Состоит на - * учете/не состоит - */ - public Boolean getRegistered() { - return (Boolean) get(5); + return (BigDecimal) get(2); } /** @@ -115,7 +68,7 @@ public class BusynessRecord extends UpdatableRecordImpl { * записи */ public void setRecordingDate(Date value) { - set(6, value); + set(3, value); } /** @@ -123,7 +76,7 @@ public class BusynessRecord extends UpdatableRecordImpl { * записи */ public Date getRecordingDate() { - return (Date) get(6); + return (Date) get(3); } /** @@ -131,7 +84,7 @@ public class BusynessRecord extends UpdatableRecordImpl { * процентах */ public void setStudyPercent(BigDecimal value) { - set(7, value); + set(4, value); } /** @@ -139,7 +92,7 @@ public class BusynessRecord extends UpdatableRecordImpl { * процентах */ public BigDecimal getStudyPercent() { - return (BigDecimal) get(7); + return (BigDecimal) get(4); } /** @@ -147,7 +100,7 @@ public class BusynessRecord extends UpdatableRecordImpl { * в процентах */ public void setWorkPercent(BigDecimal value) { - set(8, value); + set(5, value); } /** @@ -155,7 +108,7 @@ public class BusynessRecord extends UpdatableRecordImpl { * в процентах */ public BigDecimal getWorkPercent() { - return (BigDecimal) get(8); + return (BigDecimal) get(5); } /** @@ -163,7 +116,7 @@ public class BusynessRecord extends UpdatableRecordImpl { * Безработные в процентах */ public void setNotWorkPercent(BigDecimal value) { - set(9, value); + set(6, value); } /** @@ -171,21 +124,63 @@ public class BusynessRecord extends UpdatableRecordImpl { * Безработные в процентах */ public BigDecimal getNotWorkPercent() { - return (BigDecimal) get(9); + return (BigDecimal) get(6); } /** * Setter for total_registered.busyness.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(10, value); + public void setRecruitmentId(String value) { + set(7, value); } /** * Getter for total_registered.busyness.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(10); + public String getRecruitmentId() { + return (String) get(7); + } + + /** + * Setter for total_registered.busyness.registered. + */ + public void setRegistered(String value) { + set(8, value); + } + + /** + * Getter for total_registered.busyness.registered. + */ + public String getRegistered() { + return (String) get(8); + } + + /** + * Setter for total_registered.busyness.all_M_W. + */ + public void setAllMW(String value) { + set(9, value); + } + + /** + * Getter for total_registered.busyness.all_M_W. + */ + public String getAllMW() { + return (String) get(9); + } + + /** + * Setter for total_registered.busyness.busyness. + */ + public void setBusyness(BigDecimal value) { + set(10, value); + } + + /** + * Getter for total_registered.busyness.busyness. + */ + public BigDecimal getBusyness() { + return (BigDecimal) get(10); } // ------------------------------------------------------------------------- @@ -193,8 +188,8 @@ public class BusynessRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record4 key() { + return (Record4) super.key(); } // ------------------------------------------------------------------------- @@ -211,20 +206,20 @@ public class BusynessRecord extends UpdatableRecordImpl { /** * Create a detached, initialised BusynessRecord */ - public BusynessRecord(Long idBusyness, BigDecimal study, BigDecimal work, BigDecimal notWork, String allMW, Boolean registered, Date recordingDate, BigDecimal studyPercent, BigDecimal workPercent, BigDecimal notWorkPercent, UUID recruitmentId) { + public BusynessRecord(BigDecimal study, BigDecimal work, BigDecimal notWork, Date recordingDate, BigDecimal studyPercent, BigDecimal workPercent, BigDecimal notWorkPercent, String recruitmentId, String registered, String allMW, BigDecimal busyness) { super(Busyness.BUSYNESS); - setIdBusyness(idBusyness); setStudy(study); setWork(work); setNotWork(notWork); - setAllMW(allMW); - setRegistered(registered); setRecordingDate(recordingDate); setStudyPercent(studyPercent); setWorkPercent(workPercent); setNotWorkPercent(notWorkPercent); setRecruitmentId(recruitmentId); + setRegistered(registered); + setAllMW(allMW); + setBusyness(busyness); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/ChildMinorRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/ChildMinorRecord.java index 9f57004..09199b6 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/ChildMinorRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/ChildMinorRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.ChildMinor import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record3; import org.jooq.impl.UpdatableRecordImpl; @@ -22,74 +21,60 @@ public class ChildMinorRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; - /** - * Setter for total_registered.child_minor.id_child_minor. - */ - public void setIdChildMinor(Long value) { - set(0, value); - } - - /** - * Getter for total_registered.child_minor.id_child_minor. - */ - public Long getIdChildMinor() { - return (Long) get(0); - } - /** * Setter for total_registered.child_minor.no_child. Нет детей */ public void setNoChild(BigDecimal value) { - set(1, value); + set(0, value); } /** * Getter for total_registered.child_minor.no_child. Нет детей */ public BigDecimal getNoChild() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** * Setter for total_registered.child_minor.1_child. 1 ребенок */ public void set_1Child(BigDecimal value) { - set(2, value); + set(1, value); } /** * Getter for total_registered.child_minor.1_child. 1 ребенок */ public BigDecimal get_1Child() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** * Setter for total_registered.child_minor.2_child. 2 ребенка */ public void set_2Child(BigDecimal value) { - set(3, value); + set(2, value); } /** * Getter for total_registered.child_minor.2_child. 2 ребенка */ public BigDecimal get_2Child() { - return (BigDecimal) get(3); + return (BigDecimal) get(2); } /** * Setter for total_registered.child_minor.3_child. 3 ребенка */ public void set_3Child(BigDecimal value) { - set(4, value); + set(3, value); } /** * Getter for total_registered.child_minor.3_child. 3 ребенка */ public BigDecimal get_3Child() { - return (BigDecimal) get(4); + return (BigDecimal) get(3); } /** @@ -97,7 +82,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * более */ public void set_4MoreChild(BigDecimal value) { - set(5, value); + set(4, value); } /** @@ -105,7 +90,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * более */ public BigDecimal get_4MoreChild() { - return (BigDecimal) get(5); + return (BigDecimal) get(4); } /** @@ -113,7 +98,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * Все/Мужчины/Женщины */ public void setAllMW(String value) { - set(6, value); + set(5, value); } /** @@ -121,7 +106,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * Все/Мужчины/Женщины */ public String getAllMW() { - return (String) get(6); + return (String) get(5); } /** @@ -129,7 +114,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * записи */ public void setRecordingDate(Date value) { - set(7, value); + set(6, value); } /** @@ -137,7 +122,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * записи */ public Date getRecordingDate() { - return (Date) get(7); + return (Date) get(6); } /** @@ -145,7 +130,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * Нет детей в процентах */ public void setNoChildPercent(BigDecimal value) { - set(8, value); + set(7, value); } /** @@ -153,7 +138,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * Нет детей в процентах */ public BigDecimal getNoChildPercent() { - return (BigDecimal) get(8); + return (BigDecimal) get(7); } /** @@ -161,7 +146,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенок в процентах */ public void set_1ChildPercent(BigDecimal value) { - set(9, value); + set(8, value); } /** @@ -169,7 +154,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенок в процентах */ public BigDecimal get_1ChildPercent() { - return (BigDecimal) get(9); + return (BigDecimal) get(8); } /** @@ -177,7 +162,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенка в процентах */ public void set_2ChildPercent(BigDecimal value) { - set(10, value); + set(9, value); } /** @@ -185,7 +170,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенка в процентах */ public BigDecimal get_2ChildPercent() { - return (BigDecimal) get(10); + return (BigDecimal) get(9); } /** @@ -193,7 +178,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенка в процентах */ public void set_3ChildPercent(BigDecimal value) { - set(11, value); + set(10, value); } /** @@ -201,7 +186,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенка в процентах */ public BigDecimal get_3ChildPercent() { - return (BigDecimal) get(11); + return (BigDecimal) get(10); } /** @@ -210,7 +195,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенка в процентах */ public void set_4MoreChildPercent(BigDecimal value) { - set(12, value); + set(11, value); } /** @@ -219,21 +204,35 @@ public class ChildMinorRecord extends UpdatableRecordImpl { * ребенка в процентах */ public BigDecimal get_4MoreChildPercent() { - return (BigDecimal) get(12); + return (BigDecimal) get(11); } /** * Setter for total_registered.child_minor.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(13, value); + public void setRecruitmentId(String value) { + set(12, value); } /** * Getter for total_registered.child_minor.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(13); + public String getRecruitmentId() { + return (String) get(12); + } + + /** + * Setter for total_registered.child_minor.id_child_minor. + */ + public void setIdChildMinor(Long value) { + set(13, value); + } + + /** + * Getter for total_registered.child_minor.id_child_minor. + */ + public Long getIdChildMinor() { + return (Long) get(13); } // ------------------------------------------------------------------------- @@ -241,8 +240,8 @@ public class ChildMinorRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -259,10 +258,9 @@ public class ChildMinorRecord extends UpdatableRecordImpl { /** * Create a detached, initialised ChildMinorRecord */ - public ChildMinorRecord(Long idChildMinor, BigDecimal noChild, BigDecimal _1Child, BigDecimal _2Child, BigDecimal _3Child, BigDecimal _4MoreChild, String allMW, Date recordingDate, BigDecimal noChildPercent, BigDecimal _1ChildPercent, BigDecimal _2ChildPercent, BigDecimal _3ChildPercent, BigDecimal _4MoreChildPercent, UUID recruitmentId) { + public ChildMinorRecord(BigDecimal noChild, BigDecimal _1Child, BigDecimal _2Child, BigDecimal _3Child, BigDecimal _4MoreChild, String allMW, Date recordingDate, BigDecimal noChildPercent, BigDecimal _1ChildPercent, BigDecimal _2ChildPercent, BigDecimal _3ChildPercent, BigDecimal _4MoreChildPercent, String recruitmentId, Long idChildMinor) { super(ChildMinor.CHILD_MINOR); - setIdChildMinor(idChildMinor); setNoChild(noChild); set_1Child(_1Child); set_2Child(_2Child); @@ -276,6 +274,7 @@ public class ChildMinorRecord extends UpdatableRecordImpl { set_3ChildPercent(_3ChildPercent); set_4MoreChildPercent(_4MoreChildPercent); setRecruitmentId(recruitmentId); + setIdChildMinor(idChildMinor); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/DriverLicenseRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/DriverLicenseRecord.java index 64bafb3..2dcd921 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/DriverLicenseRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/DriverLicenseRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.DriverLice import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record3; import org.jooq.impl.UpdatableRecordImpl; @@ -23,28 +22,12 @@ public class DriverLicenseRecord extends UpdatableRecordImpltotal_registered.driver_license.id_driver_license. - */ - public void setIdDriverLicense(Long value) { - set(0, value); - } - - /** - * Getter for - * total_registered.driver_license.id_driver_license. - */ - public Long getIdDriverLicense() { - return (Long) get(0); - } - /** * Setter for total_registered.driver_license.nope. нет * водительского удостоверения */ public void setNope(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -52,77 +35,77 @@ public class DriverLicenseRecord extends UpdatableRecordImpltotal_registered.driver_license.A. категория A */ public void setA(BigDecimal value) { - set(2, value); + set(1, value); } /** * Getter for total_registered.driver_license.A. категория A */ public BigDecimal getA() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** * Setter for total_registered.driver_license.B. категория B */ public void setB(BigDecimal value) { - set(3, value); + set(2, value); } /** * Getter for total_registered.driver_license.B. категория B */ public BigDecimal getB() { - return (BigDecimal) get(3); + return (BigDecimal) get(2); } /** * Setter for total_registered.driver_license.C. категория C */ public void setC(BigDecimal value) { - set(4, value); + set(3, value); } /** * Getter for total_registered.driver_license.C. категория C */ public BigDecimal getC() { - return (BigDecimal) get(4); + return (BigDecimal) get(3); } /** * Setter for total_registered.driver_license.D. категория D */ public void setD(BigDecimal value) { - set(5, value); + set(4, value); } /** * Getter for total_registered.driver_license.D. категория D */ public BigDecimal getD() { - return (BigDecimal) get(5); + return (BigDecimal) get(4); } /** * Setter for total_registered.driver_license.E. категория E */ public void setE(BigDecimal value) { - set(6, value); + set(5, value); } /** * Getter for total_registered.driver_license.E. категория E */ public BigDecimal getE() { - return (BigDecimal) get(6); + return (BigDecimal) get(5); } /** @@ -130,7 +113,7 @@ public class DriverLicenseRecord extends UpdatableRecordImpltotal_registered.driver_license.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(15, value); + public void setRecruitmentId(String value) { + set(14, value); } /** * Getter for total_registered.driver_license.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(15); + public String getRecruitmentId() { + return (String) get(14); + } + + /** + * Setter for + * total_registered.driver_license.id_driver_license. + */ + public void setIdDriverLicense(Long value) { + set(15, value); + } + + /** + * Getter for + * total_registered.driver_license.id_driver_license. + */ + public Long getIdDriverLicense() { + return (Long) get(15); } // ------------------------------------------------------------------------- @@ -272,8 +271,8 @@ public class DriverLicenseRecord extends UpdatableRecordImpl key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -290,10 +289,9 @@ public class DriverLicenseRecord extends UpdatableRecordImpltotal_registered.education_level.id_education_level. - */ - public void setIdEducationLevel(Long value) { - set(0, value); - } - - /** - * Getter for - * total_registered.education_level.id_education_level. - */ - public Long getIdEducationLevel() { - return (Long) get(0); - } - /** * Setter for total_registered.education_level.higher. Высшее * образование */ public void setHigher(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -52,7 +35,7 @@ public class EducationLevelRecord extends UpdatableRecordImpltotal_registered.education_level.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(11, value); + public void setRecruitmentId(String value) { + set(10, value); } /** * Getter for total_registered.education_level.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(11); + public String getRecruitmentId() { + return (String) get(10); + } + + /** + * Setter for total_registered.education_level.education_level. + */ + public void setEducationLevel(BigDecimal value) { + set(11, value); + } + + /** + * Getter for total_registered.education_level.education_level. + */ + public BigDecimal getEducationLevel() { + return (BigDecimal) get(11); } // ------------------------------------------------------------------------- @@ -220,8 +217,8 @@ public class EducationLevelRecord extends UpdatableRecordImpl key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -238,10 +235,9 @@ public class EducationLevelRecord extends UpdatableRecordImpltotal_registered.marital_status.id_marital_status. - */ - public void setIdMaritalStatus(Long value) { - set(0, value); - } - - /** - * Getter for - * total_registered.marital_status.id_marital_status. - */ - public Long getIdMaritalStatus() { - return (Long) get(0); - } - /** * Setter for total_registered.marital_status.married. В браке */ public void setMarried(BigDecimal value) { - set(1, value); + set(0, value); } /** * Getter for total_registered.marital_status.married. В браке */ public BigDecimal getMarried() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** @@ -58,7 +41,7 @@ public class MaritalStatusRecord extends UpdatableRecordImpltotal_registered.marital_status.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(7, value); + public void setRecruitmentId(String value) { + set(6, value); } /** * Getter for total_registered.marital_status.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(7); + public String getRecruitmentId() { + return (String) get(6); + } + + /** + * Setter for total_registered.marital_status.marital_status. + */ + public void setMaritalStatus(BigDecimal value) { + set(7, value); + } + + /** + * Getter for total_registered.marital_status.marital_status. + */ + public BigDecimal getMaritalStatus() { + return (BigDecimal) get(7); } // ------------------------------------------------------------------------- @@ -154,8 +151,8 @@ public class MaritalStatusRecord extends UpdatableRecordImpl key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -172,10 +169,9 @@ public class MaritalStatusRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; - /** - * Setter for total_registered.reg_mil_cat.id_reg_mil_cat. - */ - public void setIdRegMilCat(Long value) { - set(0, value); - } - - /** - * Getter for total_registered.reg_mil_cat.id_reg_mil_cat. - */ - public Long getIdRegMilCat() { - return (Long) get(0); - } - /** * Setter for total_registered.reg_mil_cat.first_reg_17. * Первоначальная постановка на воинский учет граждан от 17 лет */ public void setFirstReg_17(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -50,7 +35,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Первоначальная постановка на воинский учет граждан от 17 лет */ public BigDecimal getFirstReg_17() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** @@ -58,7 +43,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Первоначальная постановка на воинский учет граждан от 18 лет */ public void setFirstReg_18(BigDecimal value) { - set(2, value); + set(1, value); } /** @@ -66,7 +51,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Первоначальная постановка на воинский учет граждан от 18 лет */ public BigDecimal getFirstReg_18() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** @@ -75,7 +60,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Возвратившиеся из мест лишения свободы */ public void setReturnedDepLiberty(BigDecimal value) { - set(3, value); + set(2, value); } /** @@ -84,7 +69,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Возвратившиеся из мест лишения свободы */ public BigDecimal getReturnedDepLiberty() { - return (BigDecimal) get(3); + return (BigDecimal) get(2); } /** @@ -92,7 +77,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * получившие ВУС */ public void setMilSpecW(BigDecimal value) { - set(4, value); + set(3, value); } /** @@ -100,7 +85,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * получившие ВУС */ public BigDecimal getMilSpecW() { - return (BigDecimal) get(4); + return (BigDecimal) get(3); } /** @@ -108,7 +93,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * наказание в местах лишения свободы */ public void setPunished(BigDecimal value) { - set(5, value); + set(4, value); } /** @@ -116,7 +101,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * наказание в местах лишения свободы */ public BigDecimal getPunished() { - return (BigDecimal) get(5); + return (BigDecimal) get(4); } /** @@ -125,7 +110,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Получившие гражданство */ public void setReceivedCitizenship(BigDecimal value) { - set(6, value); + set(5, value); } /** @@ -134,23 +119,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Получившие гражданство */ public BigDecimal getReceivedCitizenship() { - return (BigDecimal) get(6); - } - - /** - * Setter for total_registered.reg_mil_cat.mil_reg. Состоит на - * учете/ не состоит - */ - public void setMilReg(Boolean value) { - set(7, value); - } - - /** - * Getter for total_registered.reg_mil_cat.mil_reg. Состоит на - * учете/ не состоит - */ - public Boolean getMilReg() { - return (Boolean) get(7); + return (BigDecimal) get(5); } /** @@ -158,7 +127,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * записи */ public void setRecordingDate(Date value) { - set(8, value); + set(6, value); } /** @@ -166,7 +135,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * записи */ public Date getRecordingDate() { - return (Date) get(8); + return (Date) get(6); } /** @@ -175,7 +144,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Первоначальная постановка на воинский учет граждан от 17 лет в процентах */ public void setFirstReg_17Percent(BigDecimal value) { - set(9, value); + set(7, value); } /** @@ -184,7 +153,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Первоначальная постановка на воинский учет граждан от 17 лет в процентах */ public BigDecimal getFirstReg_17Percent() { - return (BigDecimal) get(9); + return (BigDecimal) get(7); } /** @@ -193,7 +162,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Первоначальная постановка на воинский учет граждан от 18 лет в процентах */ public void setFirstReg_18Percent(BigDecimal value) { - set(10, value); + set(8, value); } /** @@ -202,7 +171,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Первоначальная постановка на воинский учет граждан от 18 лет в процентах */ public BigDecimal getFirstReg_18Percent() { - return (BigDecimal) get(10); + return (BigDecimal) get(8); } /** @@ -211,7 +180,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Возвратившиеся из мест лишения свободы в процентах */ public void setReturnedDepLibertyPercent(BigDecimal value) { - set(11, value); + set(9, value); } /** @@ -220,7 +189,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Возвратившиеся из мест лишения свободы в процентах */ public BigDecimal getReturnedDepLibertyPercent() { - return (BigDecimal) get(11); + return (BigDecimal) get(9); } /** @@ -228,7 +197,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Женщины, получившие ВУС в процентах */ public void setMilSpecWPercent(BigDecimal value) { - set(12, value); + set(10, value); } /** @@ -236,7 +205,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Женщины, получившие ВУС в процентах */ public BigDecimal getMilSpecWPercent() { - return (BigDecimal) get(12); + return (BigDecimal) get(10); } /** @@ -244,7 +213,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Отбывающие наказание в местах лишения свободы в процентах */ public void setPunishedPercent(BigDecimal value) { - set(13, value); + set(11, value); } /** @@ -252,7 +221,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Отбывающие наказание в местах лишения свободы в процентах */ public BigDecimal getPunishedPercent() { - return (BigDecimal) get(13); + return (BigDecimal) get(11); } /** @@ -261,7 +230,7 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Получившие гражданство в процентах */ public void setReceivedCitizenshipPercent(BigDecimal value) { - set(14, value); + set(12, value); } /** @@ -270,49 +239,49 @@ public class RegMilCatRecord extends UpdatableRecordImpl { * Получившие гражданство в процентах */ public BigDecimal getReceivedCitizenshipPercent() { - return (BigDecimal) get(14); + return (BigDecimal) get(12); } /** * Setter for total_registered.reg_mil_cat.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(15, value); + public void setRecruitmentId(String value) { + set(13, value); } /** * Getter for total_registered.reg_mil_cat.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(15); + public String getRecruitmentId() { + return (String) get(13); } /** - * Setter for total_registered.reg_mil_cat.testrecruitment_id. + * Setter for total_registered.reg_mil_cat.mil_reg. */ - public void setTestrecruitmentId(String value) { - set(16, value); + public void setMilReg(BigDecimal value) { + set(14, value); } /** - * Getter for total_registered.reg_mil_cat.testrecruitment_id. + * Getter for total_registered.reg_mil_cat.mil_reg. */ - public String getTestrecruitmentId() { - return (String) get(16); + public BigDecimal getMilReg() { + return (BigDecimal) get(14); } /** - * Setter for total_registered.reg_mil_cat.testmil_reg. + * Setter for total_registered.reg_mil_cat.id_reg_mil_cat. */ - public void setTestmilReg(BigDecimal value) { - set(17, value); + public void setIdRegMilCat(Long value) { + set(15, value); } /** - * Getter for total_registered.reg_mil_cat.testmil_reg. + * Getter for total_registered.reg_mil_cat.id_reg_mil_cat. */ - public BigDecimal getTestmilReg() { - return (BigDecimal) get(17); + public Long getIdRegMilCat() { + return (Long) get(15); } // ------------------------------------------------------------------------- @@ -320,8 +289,8 @@ public class RegMilCatRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -338,17 +307,15 @@ public class RegMilCatRecord extends UpdatableRecordImpl { /** * Create a detached, initialised RegMilCatRecord */ - public RegMilCatRecord(Long idRegMilCat, BigDecimal firstReg_17, BigDecimal firstReg_18, BigDecimal returnedDepLiberty, BigDecimal milSpecW, BigDecimal punished, BigDecimal receivedCitizenship, Boolean milReg, Date recordingDate, BigDecimal firstReg_17Percent, BigDecimal firstReg_18Percent, BigDecimal returnedDepLibertyPercent, BigDecimal milSpecWPercent, BigDecimal punishedPercent, BigDecimal receivedCitizenshipPercent, UUID recruitmentId, String testrecruitmentId, BigDecimal testmilReg) { + public RegMilCatRecord(BigDecimal firstReg_17, BigDecimal firstReg_18, BigDecimal returnedDepLiberty, BigDecimal milSpecW, BigDecimal punished, BigDecimal receivedCitizenship, Date recordingDate, BigDecimal firstReg_17Percent, BigDecimal firstReg_18Percent, BigDecimal returnedDepLibertyPercent, BigDecimal milSpecWPercent, BigDecimal punishedPercent, BigDecimal receivedCitizenshipPercent, String recruitmentId, BigDecimal milReg, Long idRegMilCat) { super(RegMilCat.REG_MIL_CAT); - setIdRegMilCat(idRegMilCat); setFirstReg_17(firstReg_17); setFirstReg_18(firstReg_18); setReturnedDepLiberty(returnedDepLiberty); setMilSpecW(milSpecW); setPunished(punished); setReceivedCitizenship(receivedCitizenship); - setMilReg(milReg); setRecordingDate(recordingDate); setFirstReg_17Percent(firstReg_17Percent); setFirstReg_18Percent(firstReg_18Percent); @@ -357,8 +324,8 @@ public class RegMilCatRecord extends UpdatableRecordImpl { setPunishedPercent(punishedPercent); setReceivedCitizenshipPercent(receivedCitizenshipPercent); setRecruitmentId(recruitmentId); - setTestrecruitmentId(testrecruitmentId); - setTestmilReg(testmilReg); + setMilReg(milReg); + setIdRegMilCat(idRegMilCat); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RemovedRegistryRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RemovedRegistryRecord.java index 71a8e92..3bee751 100644 --- a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RemovedRegistryRecord.java +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RemovedRegistryRecord.java @@ -8,9 +8,8 @@ import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RemovedReg import java.math.BigDecimal; import java.sql.Date; -import java.util.UUID; -import org.jooq.Record1; +import org.jooq.Record2; import org.jooq.impl.UpdatableRecordImpl; @@ -257,15 +256,15 @@ public class RemovedRegistryRecord extends UpdatableRecordImpltotal_registered.removed_registry.recruitment_id. */ - public void setRecruitmentId(UUID value) { + public void setRecruitmentId(String value) { set(14, value); } /** * Getter for total_registered.removed_registry.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(14); + public String getRecruitmentId() { + return (String) get(14); } /** @@ -284,29 +283,13 @@ public class RemovedRegistryRecord extends UpdatableRecordImpltotal_registered.removed_registry.testrecruitment_id. - */ - public void setTestrecruitmentId(String value) { - set(16, value); - } - - /** - * Getter for - * total_registered.removed_registry.testrecruitment_id. - */ - public String getTestrecruitmentId() { - return (String) get(16); - } - // ------------------------------------------------------------------------- // Primary key information // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record2 key() { + return (Record2) super.key(); } // ------------------------------------------------------------------------- @@ -323,7 +306,7 @@ public class RemovedRegistryRecord extends UpdatableRecordImpl { private static final long serialVersionUID = 1L; - /** - * Setter for total_registered.subpoenas.id_subpoena. - */ - public void setIdSubpoena(Long value) { - set(0, value); - } - - /** - * Getter for total_registered.subpoenas.id_subpoena. - */ - public Long getIdSubpoena() { - return (Long) get(0); - } - /** * Setter for total_registered.subpoenas.subpoena. Направлено * повесток */ public void setSubpoena(BigDecimal value) { - set(1, value); + set(0, value); } /** @@ -49,7 +34,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * повесток */ public BigDecimal getSubpoena() { - return (BigDecimal) get(1); + return (BigDecimal) get(0); } /** @@ -57,7 +42,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Средний срок явки */ public void setAverageAppeared(BigDecimal value) { - set(2, value); + set(1, value); } /** @@ -65,21 +50,21 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Средний срок явки */ public BigDecimal getAverageAppeared() { - return (BigDecimal) get(2); + return (BigDecimal) get(1); } /** * Setter for total_registered.subpoenas.appeared. Явились */ public void setAppeared(BigDecimal value) { - set(3, value); + set(2, value); } /** * Getter for total_registered.subpoenas.appeared. Явились */ public BigDecimal getAppeared() { - return (BigDecimal) get(3); + return (BigDecimal) get(2); } /** @@ -87,7 +72,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились */ public void setNotAppeared(BigDecimal value) { - set(4, value); + set(3, value); } /** @@ -95,7 +80,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились */ public BigDecimal getNotAppeared() { - return (BigDecimal) get(4); + return (BigDecimal) get(3); } /** @@ -103,7 +88,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились по уважительной причине */ public void setNotApGoodReason(BigDecimal value) { - set(5, value); + set(4, value); } /** @@ -111,7 +96,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились по уважительной причине */ public BigDecimal getNotApGoodReason() { - return (BigDecimal) get(5); + return (BigDecimal) get(4); } /** @@ -119,7 +104,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * не требуется */ public void setApNotRequired(BigDecimal value) { - set(6, value); + set(5, value); } /** @@ -127,35 +112,35 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * не требуется */ public BigDecimal getApNotRequired() { - return (BigDecimal) get(6); + return (BigDecimal) get(5); } /** * Setter for total_registered.subpoenas.electron. Электронно */ public void setElectron(BigDecimal value) { - set(7, value); + set(6, value); } /** * Getter for total_registered.subpoenas.electron. Электронно */ public BigDecimal getElectron() { - return (BigDecimal) get(7); + return (BigDecimal) get(6); } /** * Setter for total_registered.subpoenas.paper. Нарочно */ public void setPaper(BigDecimal value) { - set(8, value); + set(7, value); } /** * Getter for total_registered.subpoenas.paper. Нарочно */ public BigDecimal getPaper() { - return (BigDecimal) get(8); + return (BigDecimal) get(7); } /** @@ -163,7 +148,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Применено ограничений */ public void setRestrictionsApplied(BigDecimal value) { - set(9, value); + set(8, value); } /** @@ -171,7 +156,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Применено ограничений */ public BigDecimal getRestrictionsApplied() { - return (BigDecimal) get(9); + return (BigDecimal) get(8); } /** @@ -179,7 +164,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Введено реализатором мер */ public void setIntroducedMeasures(BigDecimal value) { - set(10, value); + set(9, value); } /** @@ -187,23 +172,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Введено реализатором мер */ public BigDecimal getIntroducedMeasures() { - return (BigDecimal) get(10); - } - - /** - * Setter for total_registered.subpoenas.mil_reg. Состоит/не - * состоит на учете - */ - public void setMilReg(Boolean value) { - set(11, value); - } - - /** - * Getter for total_registered.subpoenas.mil_reg. Состоит/не - * состоит на учете - */ - public Boolean getMilReg() { - return (Boolean) get(11); + return (BigDecimal) get(9); } /** @@ -211,7 +180,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * записи */ public void setRecordingDate(Date value) { - set(12, value); + set(10, value); } /** @@ -219,7 +188,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * записи */ public Date getRecordingDate() { - return (Date) get(12); + return (Date) get(10); } /** @@ -227,7 +196,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Явились в процентах */ public void setAppearedPercent(BigDecimal value) { - set(13, value); + set(11, value); } /** @@ -235,7 +204,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Явились в процентах */ public BigDecimal getAppearedPercent() { - return (BigDecimal) get(13); + return (BigDecimal) get(11); } /** @@ -243,7 +212,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Не явились в процентах */ public void setNotAppearedPercent(BigDecimal value) { - set(14, value); + set(12, value); } /** @@ -251,7 +220,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Не явились в процентах */ public BigDecimal getNotAppearedPercent() { - return (BigDecimal) get(14); + return (BigDecimal) get(12); } /** @@ -260,7 +229,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились по уважительной причине в процентах */ public void setNotApGoodReasonPercent(BigDecimal value) { - set(15, value); + set(13, value); } /** @@ -269,7 +238,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * явились по уважительной причине в процентах */ public BigDecimal getNotApGoodReasonPercent() { - return (BigDecimal) get(15); + return (BigDecimal) get(13); } /** @@ -278,7 +247,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * требуется в процентах */ public void setApNotRequiredPercent(BigDecimal value) { - set(16, value); + set(14, value); } /** @@ -287,7 +256,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * требуется в процентах */ public BigDecimal getApNotRequiredPercent() { - return (BigDecimal) get(16); + return (BigDecimal) get(14); } /** @@ -295,7 +264,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Электронно в процентах */ public void setElectronPercent(BigDecimal value) { - set(17, value); + set(15, value); } /** @@ -303,7 +272,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Электронно в процентах */ public BigDecimal getElectronPercent() { - return (BigDecimal) get(17); + return (BigDecimal) get(15); } /** @@ -311,7 +280,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * в процентах */ public void setPaperPercent(BigDecimal value) { - set(18, value); + set(16, value); } /** @@ -319,7 +288,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * в процентах */ public BigDecimal getPaperPercent() { - return (BigDecimal) get(18); + return (BigDecimal) get(16); } /** @@ -328,7 +297,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Применено ограничений в процентах */ public void setRestrictionsAppliedPercent(BigDecimal value) { - set(19, value); + set(17, value); } /** @@ -337,7 +306,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Применено ограничений в процентах */ public BigDecimal getRestrictionsAppliedPercent() { - return (BigDecimal) get(19); + return (BigDecimal) get(17); } /** @@ -346,7 +315,7 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Введено реализатором мер в процентах */ public void setIntroducedMeasuresPercent(BigDecimal value) { - set(20, value); + set(18, value); } /** @@ -355,49 +324,49 @@ public class SubpoenasRecord extends UpdatableRecordImpl { * Введено реализатором мер в процентах */ public BigDecimal getIntroducedMeasuresPercent() { - return (BigDecimal) get(20); + return (BigDecimal) get(18); } /** * Setter for total_registered.subpoenas.recruitment_id. */ - public void setRecruitmentId(UUID value) { - set(21, value); + public void setRecruitmentId(String value) { + set(19, value); } /** * Getter for total_registered.subpoenas.recruitment_id. */ - public UUID getRecruitmentId() { - return (UUID) get(21); + public String getRecruitmentId() { + return (String) get(19); } /** - * Setter for total_registered.subpoenas.testrecruitment_id. + * Setter for total_registered.subpoenas.mil_reg. */ - public void setTestrecruitmentId(String value) { - set(22, value); + public void setMilReg(BigDecimal value) { + set(20, value); } /** - * Getter for total_registered.subpoenas.testrecruitment_id. + * Getter for total_registered.subpoenas.mil_reg. */ - public String getTestrecruitmentId() { - return (String) get(22); + public BigDecimal getMilReg() { + return (BigDecimal) get(20); } /** - * Setter for total_registered.subpoenas.testmil_reg. + * Setter for total_registered.subpoenas.id_subpoena. */ - public void setTestmilReg(BigDecimal value) { - set(23, value); + public void setIdSubpoena(Long value) { + set(21, value); } /** - * Getter for total_registered.subpoenas.testmil_reg. + * Getter for total_registered.subpoenas.id_subpoena. */ - public BigDecimal getTestmilReg() { - return (BigDecimal) get(23); + public Long getIdSubpoena() { + return (Long) get(21); } // ------------------------------------------------------------------------- @@ -405,8 +374,8 @@ public class SubpoenasRecord extends UpdatableRecordImpl { // ------------------------------------------------------------------------- @Override - public Record1 key() { - return (Record1) super.key(); + public Record3 key() { + return (Record3) super.key(); } // ------------------------------------------------------------------------- @@ -423,10 +392,9 @@ public class SubpoenasRecord extends UpdatableRecordImpl { /** * Create a detached, initialised SubpoenasRecord */ - public SubpoenasRecord(Long idSubpoena, BigDecimal subpoena, BigDecimal averageAppeared, BigDecimal appeared, BigDecimal notAppeared, BigDecimal notApGoodReason, BigDecimal apNotRequired, BigDecimal electron, BigDecimal paper, BigDecimal restrictionsApplied, BigDecimal introducedMeasures, Boolean milReg, Date recordingDate, BigDecimal appearedPercent, BigDecimal notAppearedPercent, BigDecimal notApGoodReasonPercent, BigDecimal apNotRequiredPercent, BigDecimal electronPercent, BigDecimal paperPercent, BigDecimal restrictionsAppliedPercent, BigDecimal introducedMeasuresPercent, UUID recruitmentId, String testrecruitmentId, BigDecimal testmilReg) { + public SubpoenasRecord(BigDecimal subpoena, BigDecimal averageAppeared, BigDecimal appeared, BigDecimal notAppeared, BigDecimal notApGoodReason, BigDecimal apNotRequired, BigDecimal electron, BigDecimal paper, BigDecimal restrictionsApplied, BigDecimal introducedMeasures, Date recordingDate, BigDecimal appearedPercent, BigDecimal notAppearedPercent, BigDecimal notApGoodReasonPercent, BigDecimal apNotRequiredPercent, BigDecimal electronPercent, BigDecimal paperPercent, BigDecimal restrictionsAppliedPercent, BigDecimal introducedMeasuresPercent, String recruitmentId, BigDecimal milReg, Long idSubpoena) { super(Subpoenas.SUBPOENAS); - setIdSubpoena(idSubpoena); setSubpoena(subpoena); setAverageAppeared(averageAppeared); setAppeared(appeared); @@ -437,7 +405,6 @@ public class SubpoenasRecord extends UpdatableRecordImpl { setPaper(paper); setRestrictionsApplied(restrictionsApplied); setIntroducedMeasures(introducedMeasures); - setMilReg(milReg); setRecordingDate(recordingDate); setAppearedPercent(appearedPercent); setNotAppearedPercent(notAppearedPercent); @@ -448,8 +415,8 @@ public class SubpoenasRecord extends UpdatableRecordImpl { setRestrictionsAppliedPercent(restrictionsAppliedPercent); setIntroducedMeasuresPercent(introducedMeasuresPercent); setRecruitmentId(recruitmentId); - setTestrecruitmentId(testrecruitmentId); - setTestmilReg(testmilReg); + setMilReg(milReg); + setIdSubpoena(idSubpoena); resetChangedOnNotNull(); } } diff --git a/backend/src/main/java/ervu_dashboard/security/config/SecurityConfig.java b/backend/src/main/java/ervu_dashboard/security/config/SecurityConfig.java new file mode 100644 index 0000000..fd9abd5 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/config/SecurityConfig.java @@ -0,0 +1,60 @@ +package ervu_dashboard.security.config; + +import ervu_dashboard.security.filter.JwtAuthenticationFilter; +import ervu_dashboard.security.provider.ErvuJwtAuthenticationProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; + +@Configuration +@EnableWebSecurity +public class SecurityConfig extends WebSecurityConfigurerAdapter { + + @Autowired + private JwtAuthenticationFilter jwtAuthenticationFilter; + @Autowired + private ErvuJwtAuthenticationProvider jwtAuthenticationProvider; + + @Value("${security.roles.allowed:#{null}}") + private String[] allowedRoles; + + protected void configure(HttpSecurity http) throws Exception { + http.csrf().disable() + .authorizeHttpRequests() + .antMatchers("/version") + .permitAll() + .antMatchers("/session") + .authenticated(); + + if (this.allowedRoles != null) { + http.authorizeHttpRequests().anyRequest().hasAnyAuthority(allowedRoles); + } + else { + http.authorizeHttpRequests().anyRequest().authenticated(); + } + + http.sessionManagement() + .sessionCreationPolicy(SessionCreationPolicy.STATELESS) + .and() + .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); + } + + @Autowired + public void configureGlobal(AuthenticationManagerBuilder auth) { + auth.authenticationProvider(jwtAuthenticationProvider); + } + + @Bean(name = "authenticationManager") + @Override + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/context/SecurityContext.java b/backend/src/main/java/ervu_dashboard/security/context/SecurityContext.java new file mode 100644 index 0000000..d8f50c4 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/context/SecurityContext.java @@ -0,0 +1,8 @@ +package ervu_dashboard.security.context; + +import ervu_dashboard.security.model.jwt.UserSession; + +public interface SecurityContext { + String getRecruitmentId(); + UserSession getUserSession(); +} diff --git a/backend/src/main/java/ervu_dashboard/security/context/SecurityContextImpl.java b/backend/src/main/java/ervu_dashboard/security/context/SecurityContextImpl.java new file mode 100644 index 0000000..bdf884f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/context/SecurityContextImpl.java @@ -0,0 +1,34 @@ +package ervu_dashboard.security.context; + +import ervu_dashboard.security.model.jwt.UserSession; +import ervu_dashboard.security.model.jwt.authentication.JwtTokenAuthentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; + +@Component +public class SecurityContextImpl + implements SecurityContext { + @Override + public String getRecruitmentId() { + JwtTokenAuthentication jwtTokenAuthentication = (JwtTokenAuthentication) + SecurityContextHolder.getContext().getAuthentication(); + if (jwtTokenAuthentication != null) { + return jwtTokenAuthentication.getUserSession().recruitmentId(); + } + else { + return null; + } + } + + @Override + public UserSession getUserSession() { + JwtTokenAuthentication jwtTokenAuthentication = (JwtTokenAuthentication) + SecurityContextHolder.getContext().getAuthentication(); + if (jwtTokenAuthentication != null) { + return jwtTokenAuthentication.getUserSession(); + } + else { + return null; + } + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/controller/AuthorizationController.java b/backend/src/main/java/ervu_dashboard/security/controller/AuthorizationController.java new file mode 100644 index 0000000..e83e0b4 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/controller/AuthorizationController.java @@ -0,0 +1,34 @@ +package ervu_dashboard.security.controller; + +import java.util.stream.Collectors; + +import ervu_dashboard.security.dto.SessionDto; +import ervu_dashboard.security.model.jwt.UserSession; +import ervu_dashboard.security.context.SecurityContext; +import ervu_dashboard.security.model.role.ErvuRoleAuthority; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class AuthorizationController { + + private final SecurityContext securityContext; + + public AuthorizationController(SecurityContext securityContext) { + this.securityContext = securityContext; + } + + @GetMapping("/session") + public SessionDto getSession() { + UserSession userSession = securityContext.getUserSession(); + return new SessionDto( + userSession.name(), + userSession.realm(), + userSession.roles() + .stream() + .map(ErvuRoleAuthority::getAuthority) + .collect(Collectors.toSet()), + userSession.recruitmentId() + ); + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/dto/SessionDto.java b/backend/src/main/java/ervu_dashboard/security/dto/SessionDto.java new file mode 100644 index 0000000..35d586c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/dto/SessionDto.java @@ -0,0 +1,10 @@ +package ervu_dashboard.security.dto; + +import java.util.Set; + +public record SessionDto( + String name, + String realm, + Set roles, + String recruitmentId +) {} diff --git a/backend/src/main/java/ervu_dashboard/security/filter/JwtAuthenticationFilter.java b/backend/src/main/java/ervu_dashboard/security/filter/JwtAuthenticationFilter.java new file mode 100644 index 0000000..03e43d0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/filter/JwtAuthenticationFilter.java @@ -0,0 +1,66 @@ +package ervu_dashboard.security.filter; + +import java.io.IOException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.util.Optional; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import ervu_dashboard.security.model.jwt.authentication.JwtTokenDummy; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.CredentialsExpiredException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; +import org.springframework.web.filter.OncePerRequestFilter; + +@Component +public class JwtAuthenticationFilter extends OncePerRequestFilter { + + private final AuthenticationManager authenticationManager; + + public JwtAuthenticationFilter(AuthenticationManager authenticationManager) { + this.authenticationManager = authenticationManager; + } + + @Override + protected void doFilterInternal( + HttpServletRequest request, HttpServletResponse response, FilterChain filterChain + ) throws ServletException, IOException { + Authentication authentication = attemptAuthentication(request, response); + SecurityContextHolder.getContext().setAuthentication(authentication); + filterChain.doFilter(request, response); + } + + protected Authentication attemptAuthentication( + HttpServletRequest request, HttpServletResponse response + ) throws AuthenticationException { + String token = extractAuthTokenFromRequest(request); + + if (token == null) { + return null; + } + + Authentication authentication = new JwtTokenDummy(token); + try { + authentication = authenticationManager.authenticate(authentication); + } + catch (CredentialsExpiredException e) { + response.setStatus(401); + //LOGGER.warn(e.getMessage()); + } + return authentication; + } + + private String extractAuthTokenFromRequest(HttpServletRequest request) { + return Optional.ofNullable(request.getHeader("Authorization")) + .map(token -> URLDecoder.decode(token, StandardCharsets.UTF_8)) + .map(token -> token.replace("Bearer", "")) + .map(String::trim) + .orElse(null); + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/model/jwt/UserSession.java b/backend/src/main/java/ervu_dashboard/security/model/jwt/UserSession.java new file mode 100644 index 0000000..3d5123c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/model/jwt/UserSession.java @@ -0,0 +1,55 @@ +package ervu_dashboard.security.model.jwt; + +import java.util.Set; + +import ervu_dashboard.security.model.role.ErvuRoleAuthority; + +public record UserSession( + String name, + String realm, + Set roles, + String recruitmentId // aka domainId +) { + + public static UserSessionBuilder builder() { + return new UserSessionBuilder(); + } + + public static final class UserSessionBuilder { + private String name; + private String realm; + private Set roles; + private String recruitmentId; + + private UserSessionBuilder() { + } + + public static UserSessionBuilder aJwtClaims() { + return new UserSessionBuilder(); + } + + public UserSessionBuilder withName(String name) { + this.name = name; + return this; + } + + public UserSessionBuilder withRealm(String realm) { + this.realm = realm; + return this; + } + + public UserSessionBuilder withRoles(Set roles) { + this.roles = roles; + return this; + } + + public UserSessionBuilder withRecruitmentId(String recruitmentId) { + this.recruitmentId = recruitmentId; + return this; + } + + public UserSession build() { + return new UserSession(name, realm, roles, recruitmentId); + } + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenAuthentication.java b/backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenAuthentication.java new file mode 100644 index 0000000..b5aea43 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenAuthentication.java @@ -0,0 +1,55 @@ +package ervu_dashboard.security.model.jwt.authentication; + +import java.util.Collection; + +import ervu_dashboard.security.model.jwt.UserSession; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; + +public class JwtTokenAuthentication implements Authentication { + + private final UserSession userSession; + + public JwtTokenAuthentication(UserSession userSession) { + this.userSession = userSession; + } + + public UserSession getUserSession() { + return userSession; + } + + @Override + public Collection getAuthorities() { + return userSession.roles(); + } + + @Override + public Object getCredentials() { + return null; + } + + @Override + public Object getDetails() { + return null; + } + + @Override + public Object getPrincipal() { + return null; + } + + @Override + public boolean isAuthenticated() { + return true; + } + + @Override + public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { + + } + + @Override + public String getName() { + return userSession.name(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenDummy.java b/backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenDummy.java new file mode 100644 index 0000000..5622a36 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/model/jwt/authentication/JwtTokenDummy.java @@ -0,0 +1,56 @@ +package ervu_dashboard.security.model.jwt.authentication; + +import java.util.Collection; + +import ervu_dashboard.security.model.role.ErvuRoleAuthority; +import org.apache.commons.lang3.NotImplementedException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; + +public class JwtTokenDummy implements Authentication { + + private final String token; + + public JwtTokenDummy(String token) { + this.token = token; + } + + public String getToken() { + return token; + } + + @Override + public Collection getAuthorities() { + throw new NotImplementedException("Not implemented for dummy"); + } + + @Override + public Object getCredentials() { + throw new NotImplementedException("Not implemented for dummy"); + } + + @Override + public Object getDetails() { + throw new NotImplementedException("Not implemented for dummy"); + } + + @Override + public Object getPrincipal() { + throw new NotImplementedException("Not implemented for dummy"); + } + + @Override + public boolean isAuthenticated() { + throw new NotImplementedException("Not implemented for dummy"); + } + + @Override + public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { + throw new NotImplementedException("Not implemented for dummy"); + } + + @Override + public String getName() { + throw new NotImplementedException("Not implemented for dummy"); + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/model/role/ErvuRoleAuthority.java b/backend/src/main/java/ervu_dashboard/security/model/role/ErvuRoleAuthority.java new file mode 100644 index 0000000..7ecb0a9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/model/role/ErvuRoleAuthority.java @@ -0,0 +1,17 @@ +package ervu_dashboard.security.model.role; + +import org.springframework.security.core.GrantedAuthority; + +public class ErvuRoleAuthority implements GrantedAuthority { + + private final String role; + + public ErvuRoleAuthority(String role) { + this.role = role; + } + + @Override + public String getAuthority() { + return role; + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/provider/ErvuJwtAuthenticationProvider.java b/backend/src/main/java/ervu_dashboard/security/provider/ErvuJwtAuthenticationProvider.java new file mode 100644 index 0000000..f743292 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/provider/ErvuJwtAuthenticationProvider.java @@ -0,0 +1,33 @@ +package ervu_dashboard.security.provider; + +import ervu_dashboard.security.model.jwt.UserSession; +import ervu_dashboard.security.model.jwt.authentication.JwtTokenAuthentication; +import ervu_dashboard.security.model.jwt.authentication.JwtTokenDummy; +import ervu_dashboard.security.service.JwtTokenService; +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.stereotype.Component; + +@Component +public class ErvuJwtAuthenticationProvider implements AuthenticationProvider { + + private final JwtTokenService jwtTokenService; + + public ErvuJwtAuthenticationProvider(JwtTokenService jwtTokenService) { + this.jwtTokenService = jwtTokenService; + } + + @Override + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + JwtTokenDummy jwtTokenDummy = (JwtTokenDummy) authentication; + String jwtToken = jwtTokenDummy.getToken(); + UserSession userSession = jwtTokenService.getUserSession(jwtToken); + return new JwtTokenAuthentication(userSession); + } + + @Override + public boolean supports(Class authentication) { + return JwtTokenDummy.class.isAssignableFrom(authentication); + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/service/ErvuJwtTokenService.java b/backend/src/main/java/ervu_dashboard/security/service/ErvuJwtTokenService.java new file mode 100644 index 0000000..9b62a04 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/service/ErvuJwtTokenService.java @@ -0,0 +1,94 @@ +package ervu_dashboard.security.service; + +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.*; +import java.util.stream.Collectors; + +import javax.crypto.SecretKey; + +import ervu_dashboard.security.model.jwt.UserSession; +import ervu_dashboard.security.model.role.ErvuRoleAuthority; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.JwtParser; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.security.Keys; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +@Service +public class ErvuJwtTokenService implements JwtTokenService { + + private final boolean enableJwtValidation; + private final String issuer; + private final SecretKey secret; + + public ErvuJwtTokenService( + @Value("${security.jwt.validation.enable:false}") boolean enableJwtValidation, + @Value("${security.jwt.validation.issuer:#{null}}") String issuer, + @Value("${security.jwt.validation.secret-key:#{null}}") String secretKey + ) { + this.enableJwtValidation = enableJwtValidation; + this.issuer = issuer; + this.secret = + secretKey != null ? Keys.hmacShaKeyFor(Base64.getDecoder().decode(secretKey)) : null; + } + + @Override + public UserSession getUserSession(String token) { + try { + if (enableJwtValidation) { + return parseToken(token); + } + else { + return unsafeParseToken(token); + } + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + protected UserSession parseToken(String token) { + JwtParser parser = Jwts.parser(); + + if (issuer != null && !issuer.isEmpty()) { + parser = parser.requireIssuer(issuer); + } + + if (secret != null) { + parser = parser.setSigningKey(secret); + } + + Claims claims = parser.parseClaimsJwt(token).getBody(); + + return UserSession.builder() + .withName(claims.get("name", String.class)) + .withRealm(claims.get("realm", String.class)) + .withRecruitmentId(claims.get("domain_id", String.class)) + .withRoles((getRoles((List) claims.get("roles", ArrayList.class)))) + .build(); + } + + protected UserSession unsafeParseToken(String token) { + token = token.substring(0, token.lastIndexOf(".") + 1); + JwtParser parser = Jwts.parser(); + Claims claims = parser + .setClock(() -> Date.from(Instant.now().minus(999, ChronoUnit.DAYS))) + .parseClaimsJwt(token).getBody(); + + return UserSession.builder() + .withName(claims.get("name", String.class)) + .withRealm(claims.get("realm", String.class)) + .withRecruitmentId(claims.get("domain_id", String.class)) + .withRoles(getRoles((List) claims.get("roles", ArrayList.class))) + .build(); + } + + protected Set getRoles(List roles) { + return roles + .stream() + .map(ErvuRoleAuthority::new) + .collect(Collectors.toSet()); + } +} diff --git a/backend/src/main/java/ervu_dashboard/security/service/JwtTokenService.java b/backend/src/main/java/ervu_dashboard/security/service/JwtTokenService.java new file mode 100644 index 0000000..a3fadba --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/security/service/JwtTokenService.java @@ -0,0 +1,7 @@ +package ervu_dashboard.security.service; + +import ervu_dashboard.security.model.jwt.UserSession; + +public interface JwtTokenService { + UserSession getUserSession(String token); +} diff --git a/backend/src/main/java/ru/micord/db/DbConfiguration.java b/backend/src/main/java/ru/micord/db/DbConfiguration.java new file mode 100644 index 0000000..c53865e --- /dev/null +++ b/backend/src/main/java/ru/micord/db/DbConfiguration.java @@ -0,0 +1,156 @@ +package ru.micord.db; + +import org.jooq.ConnectionProvider; +import org.jooq.DSLContext; +import org.jooq.ExecuteListener; +import org.jooq.conf.Settings; +import org.jooq.impl.DefaultConfiguration; +import org.jooq.impl.DefaultDSLContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.Primary; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy; +import org.springframework.transaction.PlatformTransactionManager; + +import ru.cg.webbpm.modules.core.metrics.MetricsConfig; +import ru.cg.webbpm.modules.core.runtime.api.context.ExecutionContextHelper; +import ru.cg.webbpm.modules.database.api.ConfigurationProvider; +import ru.cg.webbpm.modules.database.api.metrics.DataSourceWithMetrics; +import ru.cg.webbpm.modules.database.api.provider.DslProvider; + +import ru.cg.webbpm.modules.database.impl.DbConfInitializer; +import ru.cg.webbpm.modules.database.impl.data_source.DataSourceConfigReader; +import ru.cg.webbpm.modules.database.impl.data_source.DataSourceFactory; +import ru.cg.webbpm.modules.database.impl.data_source.HikariDataSourceFactory; +import ru.cg.webbpm.modules.database.impl.data_source.JndiDataSourceFactory; +import ru.cg.webbpm.modules.database.impl.provider.DefaultConnectionProvider; +import ru.cg.webbpm.modules.database.impl.provider.DslProviderImpl; +import ru.cg.webbpm.modules.database.impl.service.ProcessSqlService; + +import ru.cg.webbpm.modules.database.bean.config.Datasource; + + +import ru.cg.webbpm.modules.resources.api.ResourceProvider; + +import ru.fix.aggregating.profiler.PrefixedProfiler; +import ru.fix.aggregating.profiler.Profiler; + +import javax.sql.DataSource; +import java.util.HashMap; +import java.util.Map; + +@Configuration +@Import(MetricsConfig.class) +public class DbConfiguration { + @Value("${webbpm.db.query_timeout:120}") + private Integer queryTimeout; + @Autowired + private ResourceProvider resourceProvider; + @Autowired + private ProcessSqlService processSqlService; + @Autowired + private Profiler profiler; + @Autowired + private ExecutionContextHelper executionContextHelper; + + @Autowired + private ExecuteListener[] executeListeners; + + private final Map dslContextMap = new HashMap<>(); + private final Map connectionProviderMap = new HashMap<>(); + + @Bean + public Datasource datasourceConfig() { + return DataSourceConfigReader.read(resourceProvider); + } + + @Bean(destroyMethod = "destroy") + public DataSourceFactory dataSourceFactory(HikariDataSourceFactory hikariDataSourceFactory) { + return new DataSourceFactory(hikariDataSourceFactory); + } + + @Bean + @Primary + public DataSource datasource(DataSourceFactory dataSourceFactory) { + DataSource dataSource = dataSourceFactory.createDataSource(datasourceConfig(), + JndiDataSourceFactory::createDataSource + ); + return new DataSourceWithMetrics( + dataSource, + "project", + new PrefixedProfiler(profiler, "webbpm.db"), + executionContextHelper + ); + } + + @Bean + public PlatformTransactionManager txManager(@Qualifier("datasource") DataSource dataSource) { + return new DataSourceTransactionManager(dataSource); + } + + @Bean + @Primary + public TransactionAwareDataSourceProxy transactionAwareDataSource(DataSource dataSource) { + return new TransactionAwareDataSourceProxy(dataSource); + } + + @Bean + @Primary + public DefaultConnectionProvider connectionProvider( + TransactionAwareDataSourceProxy transactionAwareDataSourceProxy) { + return new DefaultConnectionProvider(transactionAwareDataSourceProxy, processSqlService, + connectionProviderMap + ); + } + + @Bean + public Settings jooqSettings(DataSourceFactory dataSourceFactory) { + Settings settings = new Settings(); + if (dataSourceFactory.dataSourceType() == DataSourceFactory.DataSourceType.HIKARI) { + settings.setQueryTimeout(queryTimeout); + } + return settings; + } + + @Bean + @Primary + public org.jooq.Configuration jooqConfiguration(ConnectionProvider connectionProvider, + Settings jooqSettings) { + DefaultConfiguration configuration = new DefaultConfiguration(); + configuration.setSQLDialect(datasourceConfig().getSqlDialect()); + jooqSettings = jooqSettings.withExecuteLogging(false); + configuration.setSettings(jooqSettings); + configuration.setConnectionProvider(connectionProvider); + configuration.set(executeListeners); + return configuration; + } + + @Bean + @Primary + public DSLContext dsl(org.jooq.Configuration configuration) { + return new DefaultDSLContext(configuration); + } + + @Bean + public ConfigurationProvider configurationProvider( + PlatformTransactionManager platformTransactionManager) { + return () -> platformTransactionManager; + } + + @Bean + public DslProvider dslProvider(@Qualifier("dsl") DSLContext dsl) { + return new DslProviderImpl(dsl, this.dslContextMap); + } + + @Bean + public DbConfInitializer dbConfInitializer(DataSourceFactory dataSourceFactory, + org.jooq.Configuration masterConfiguration, Datasource datasource) { + return new DbConfInitializer(dataSourceFactory, masterConfiguration, datasource, + processSqlService, connectionProviderMap, dslContextMap); + } +} diff --git a/backend/src/main/java/ru/micord/security/SecurityConfig.java b/backend/src/main/java/ru/micord/security/SecurityConfig.java deleted file mode 100644 index 3036dc7..0000000 --- a/backend/src/main/java/ru/micord/security/SecurityConfig.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.micord.security; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.Customizer; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.web.SecurityFilterChain; - -@Configuration -@EnableWebSecurity -//@EnableAuthorizationServer -public class SecurityConfig { - - @Bean - public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { - - http.csrf().disable() - .authorizeHttpRequests() - .antMatchers("/**") - .permitAll(); - - return http.build(); - } -} diff --git a/backend/src/main/java/service/adapter/ProjectRuntimeVariableAdapterProvider.java b/backend/src/main/java/service/adapter/ProjectRuntimeVariableAdapterProvider.java new file mode 100644 index 0000000..eba7228 --- /dev/null +++ b/backend/src/main/java/service/adapter/ProjectRuntimeVariableAdapterProvider.java @@ -0,0 +1,32 @@ +package service.adapter; + +import org.springframework.stereotype.Component; + +import ru.cg.webbpm.modules.database.api.entity_graph.condition.ConditionAdapter; +import ru.cg.webbpm.modules.database.api.entity_graph.condition.ConditionAdapterProvider; +import ru.cg.webbpm.modules.database.bean.entity_graph.condition.Condition; + +/** + * @author r.latypov + */ +@Component +public class ProjectRuntimeVariableAdapterProvider implements ConditionAdapterProvider { + + /** + * @return Runtime variable value. + */ + @Override + public String getValueTypeCode() { + return "RUNTIME_VARIABLE"; + } + + /** + * Creates condition adapter. + * + * @return New runtime variable condition adapter. + */ + @Override + public ConditionAdapter createAdapter(Condition condition) { + return new ProjectRuntimeVariableConditionAdapter(); + } +} diff --git a/backend/src/main/java/service/adapter/ProjectRuntimeVariableConditionAdapter.java b/backend/src/main/java/service/adapter/ProjectRuntimeVariableConditionAdapter.java new file mode 100644 index 0000000..2ab5105 --- /dev/null +++ b/backend/src/main/java/service/adapter/ProjectRuntimeVariableConditionAdapter.java @@ -0,0 +1,23 @@ +package service.adapter; + +import org.jooq.impl.DSL; + +import ru.cg.webbpm.modules.database.api.entity_graph.condition.SimpleConditionAdapter; + +/** + * @author r.latypov + */ +public class ProjectRuntimeVariableConditionAdapter extends SimpleConditionAdapter { + + public ProjectRuntimeVariableConditionAdapter() { + super(Object.class); + } + + public Object adapt(String str) { + return switch (str) { + case "\"CURRENT_DATE\"" -> DSL.currentDate(); + case "\"CURRENT_TIMESTAMP\"" -> DSL.currentTimestamp(); + default -> null; + }; + } +} diff --git a/backend/src/main/webapp/WEB-INF/log4j2.xml b/backend/src/main/webapp/WEB-INF/log4j2.xml new file mode 100644 index 0000000..ea35d57 --- /dev/null +++ b/backend/src/main/webapp/WEB-INF/log4j2.xml @@ -0,0 +1,30 @@ + + + + + + + + + %d %p %c{1.} [%t] %m%n + + + + + + + + + + + + + + + + + + + + diff --git a/config.md b/config.md index 7455710..077ce1f 100644 --- a/config.md +++ b/config.md @@ -4,21 +4,22 @@ ## Общие -- `webbpm.security.login.case_sensitive`. Default value = true. Параметр отвечающий за чувствительность к регистру при обработке логина пользователя. - - true - Login и login, обрабатываются как разные логины. - - false - Login и login, обрабатывается как один и тот же логин. - `webbpm.db.pool_size`. Нужен только для `webbpm.mode` = development. - `webbpm.mode`. Режим работы приложения. Значения - development, production. - - development - в этом режиме используется соединение к БД проекта, заданное в Studio. - - production - в этом режиме используется соединение к БД проекта, заданное с помощью jndi имени. + - development - в этом режиме используется соединение к БД проекта, заданное в Studio. + - production - в этом режиме используется соединение к БД проекта, заданное с помощью jndi + имени. ## jBPM - `com.arjuna.ats.arjuna.allowMultipleLastResources` - `webbpm.jbpm.audit-log.disabled` - флаг, отвечающий за включение/отключение аудита jBPM -- `webbpm.jbpm.cleaner_cron` - cron расписание автоматической очистки БД JBPM, по умолчанию "-" т.е. выключен. Очищаются незавершенные процессы. -- `webbpm.jbpm.cleaner_timeout` - время, спустя которое процесс считается устаревшим. По умолчанию - 10 часов. -- `webbpm.jbpm.finished_process_cleaner_cron` - cron расписание автоматической очистки аудита процессов в БД JBPM, по умолчанию "-" +- `webbpm.jbpm.cleaner_cron` - cron расписание автоматической очистки БД JBPM, по умолчанию "-" т.е. + выключен. Очищаются незавершенные процессы. +- `webbpm.jbpm.cleaner_timeout` - время, спустя которое процесс считается устаревшим. По умолчанию - + 10 часов. +- `webbpm.jbpm.finished_process_cleaner_cron` - cron расписание автоматической очистки аудита + процессов в БД JBPM, по умолчанию "-" т.е. выключен - `webbpm.jbpm.finished_process_cleaner_timeout` - время, спустя которое процесс считается устаревшим. По умолчанию - 10 часов. @@ -42,214 +43,33 @@ Пример: ```xml + ``` -## Способ аутентификации +## Способы авторизации: -- authentication.method - способ аутентификации. Поддерживаемые способы аутентификации: form, kerberos, cert_over_db, cert_over_ldap +- По Jwt токену, указанному в заголовке Authorization -### По логину и паролю +### Настройка авторизации по JWT -Пример конфигурации: +По умолчанию все верификации токена отключены. Для того, чтобы нстроить авторизацию, следует использовать +следующие переменные среды: -```xml - -``` +| Название переменной | Тип | Описание | Пример | Значение по умолчанию | +|------------------------------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------------|-----------------------| +| security.jwt.validation.enable | boolean | Включает базовую верификацию токена, включающее в себя поле exp. | true | false | +| security.jwt.validation.issuer | String | Включает верификацию по issuer, включается только при security.jwt.validation.enable = true. При пустом значении не верифицируется. | https://example.com | null | +| security.jwt.validation.secret-key | String(base64) | Включает верификацию по ключу, включается только при security.jwt.validation.enable = true. При пустом значении не верифицируется. | ZGFzaGJvYXJk | null | +| security.roles.allowed | String[] | Включает авторизацию по ролям. В случае, если пользователь не имеет ни одной указанной роли, доступ к ресурсам отклоняется | role1,role2,role3 | null | -### По сертификату +## Настройка MFe: -- cert_over_db - проверка наличия пользователя в базе данных безопасности -- cert_over_ldap - проверка наличия пользователя в базе данных безопасности и в LDAP +Собранный образ фронтенда имеет возможность работать как полноценное standalone приложение, так и как удалённый модуль MFe. Для настройки Mfe следует указать следующие переменные: -Примеры: +* MFE_BASE_URL - указывается frontend/.env, либо в переменных среды сборки приложения. При изменении переменной приложение надо пересобирать. По умолчанию /mfe/dashboard +* backend.url - если необходимо настроить url бэкенда, его можно указать в frontend/src/resources/app.config.json -```xml - - -``` - -Параметр способа аутентификации authentication.method должен быть также установлен на клиентской части приложения в app-config.json - -Также для аутентификации по сертификату нужны свойства для хранилища сертификатов: - -- certificate.keystore.location - путь до java key store. Key store - это хранилище доверенных сертификатов, с помощью которых можно проверить корневой сертификат. Сертификат устанавливается с помощью команды: - - ```text - keytool -importcert -alias myAlias -file Example.cer -keystore exampleKeyStore - ``` - -- certificate.keystore.password - пароль для keystore, установленный при импорте сертификата - -Примеры: - -```xml - - -``` - -### Kerberos - -Получите от администратора Kerberos .keytab файл, из которого командой `klist -k http.keytab` можно получить список principal-ов -Проверить успешность авторизации principal-а можно командой `kinit -t -i http.keytab %principal%`. -В -случае успешной авторизации команда `klist` в качестве default principal которым проводилась авторизация. -После этого в standalone.xml поправить параметр `app.service-principal` на principal, которым успешно авторизовались. principal имеет формат: `HTTP/%hostname%@%REALM%` - -Пример конфигурации: - -```xml - - - -``` - -- app.service-principal. Пример - HTTP/oleg-rxserver.alt.dom@ALT.DOM -- app.keytab-location - расположение keytab файла. Пример - ${jboss.home.dir}/ -- http.keytab. - -Также необходимо в настройках браузера на клиенте задать параметр `network.negotiate-auth.trusted-uris` задать значение `.%domain%`. -Пример: - -```xml -.ALT.DOM -``` - -### Ldap - -Аутентификация происходит посредством логина и пароля синхронизированного пользователя Ldap. -Логин и пароль введенные в форму входа, будут проверены сервисом Ldap. - -Пример конфигурации: - -```xml - - - - - -``` - -#### Настройка сервера приложений для работы с Kerberos - -1. создать учетные записи в домене: - - - тестовые для проверки работоспособности функционала (пользователи домена, почтовые ящики): - - `User1 pass1 user1@example.com` - - `User2 pass2 user2@example.com` - - - сервисную для доступа сервиса(приложения) к MS AD - (пользователь домена - снять устаревание пароля, ограничение по времени действия, почтовый ящик): - - `serviceUser servicePass serviceuser@example.com` - - --- - -2. завести учетную запись машины `appserver.machine.name` (fqdn-имя сервиса) в AD (вручную, как запись в computer) и в DNS (A-запись) - - `appserver.machine.name 10.250.216.91` - -3. сгенерировать keytab (утилита ktpass) для аутентификации сервисов(приложения) для единой точки входа - `serviceUser` - с именем test.file.name.keytab - привязав к ней пользователя serviceUser - - например, так: - - ``` - ktpass -princ http/appserverMachineName.example.com@example.com -mapuser example.com\serviceUser -pass "пароль_уз_serviceUser" -crypto All -ptype KRB5_NT_PRINCIPAL -out "путь_к_директории_выгрузки_файла\test.file.name.keytab" - ``` - -##### Kerberos FAQ - -- В случае, если авторизация не проходит и в логах сервера приложений присутствует следующий вывод: - - ``` - 2019-05-14 05:33:36,588 INFO [security.controller.KerberosAuthenticationController] (default task-3) Authentication request header Authorization not exists - 2019-05-14 05:33:36,588 INFO [security.controller.KerberosAuthenticationController] (default task-3) Authentication object is not presented - ``` - - необходимо проверить настройку браузера firefox `network.negotiate-auth.trusted-uris`, она должна соответствовать домену из principal-а. - Для этого в поисковую строку браузера вводим "about:config", в открывшемся окне нажимаем "accept with risk and continue", в поисковой строке открывшейся страницы ввести `network.negotiate-auth.trusted-uris`. - Пример: для principal-а `HTTP/oleg-rxserver.alt.dom@ALT.DOM` настройка в браузере должна быть `.alt.dom`, приложение в браузере должно открываться по `http:\\oleg-rxserver.alt.dom:8080\...` - -- если в логах сервера приложений есть ошибка: - - ```xml - 2019-05-13 14:13:07,095 WARN [org.springframework.security.kerberos.web.authentication.SpnegoAuthenticationProcessingFilter] (default task-1) Negotiate Header was invalid: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAGNFAAAADw==: org.springframework.security.authentication.BadCredentialsException: Kerberos validation not successful - ... - - Caused by: java.security.PrivilegedActionException: GSSException: Defective token detected (Mechanism level: GSSHeader did not find the right tag) - at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_211] - at javax.security.auth.Subject.doAs(Subject.java:422) [rt.jar:1.8.0_211] - at org.springframework.security.kerberos.authentication.sun.SunJaasKerberosTicketValidator.validateTicket(SunJaasKerberosTicketValidator.java:68) [spring-security-kerberos-core-1.0.1.RELEASE.jar:1.0.1.RELEASE] - ... 66 more - Caused by: GSSException: Defective token detected (Mechanism level: GSSHeader did not find the right tag) - at sun.security.jgss.GSSHeader.(GSSHeader.java:97) [rt.jar:1.8.0_211] - at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:306) [rt.jar:1.8.0_211] - at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:285) [rt.jar:1.8.0_211] - at org.springframework.security.kerberos.authentication.sun.SunJaasKerberosTicketValidatorKerberosValidateAction.run(SunJaasKerberosTicketValidator.java:170) [spring-security-kerberos-core-1.0.1.RELEASE.jar:1.0.1.RELEASE] - at org.springframework.security.kerberos.authentication.sun.SunJaasKerberosTicketValidatorKerberosValidateAction.run(SunJaasKerberosTicketValidator.java:153) [spring-security-kerberos-core-1.0.1.RELEASE.jar:1.0.1.RELEASE] - ... 69 more - ``` - - необходимо проверить правильность указанного в standalone.xml principal-а. - -### Комбинации нескольких способов аутентификации - -Приложение может обрабатывать запросы на несколько способов аутентификации. Для этого необходимо переичислить нужные профили через запятую. -Примеры: - -```xml - - - - -``` - -### Время жизни токенов аутентификации - -```xml - - - -``` - -`webbpm.security.access_token.duration.minutes` - опциональный параметр (значение по умолчанию 60), время жизни в минутах, сколько будет действителен токен, после истечения этого времени токен будет обновлён `webbpm.security.refresh_token.duration.days` - опциональный параметр (значение по умолчанию 30), время жизни в днях, после истечения этого времени с последнего обновления, пользователю будет необходимо повторно войти `webbpm.security.session.active.count` - опциональный параметр (значение по умолчанию 1), количество сохраняемых в базу токенов обновления (количество активных сессий) - -Примечания. - -- Нельзя использовать одновременно профили cert_over_db c cert_over_ldap и kerberos с form. - -## Синхронизация пользователей с LDAP - -```xml - - - - - - - -``` - -Настройки подключения к LDAP: - -- `ldap.auto.sync.enabled` - включает/отключает автоматическую синхронизацию с LDAP -- `ldap.synchronizer.cron` - cron расписание автоматической синхронизации с LDAP -- `ldap.url`. Пример - ldap://localhost:389 -- `ldap.base`. Пример - dc=alt,dc=dom -- `ldap.username`. Пример - uid=test,ou=People,dc=alt,dc=dom -- `ldap.password` -- `webbpm.ldap.implementation`. Допускается два значения: open-ldap и active-directory. - -## WEBGUARD - -Для синхронизации пользователей в WEBGUARD и для корректной работы админки необходимо указать настройки соединения к REST API WEBGUARD - -```xml - - - -``` ## Статистика @@ -261,45 +81,61 @@ По умолчанию включена, отключить можно настройкой `webbpm.jbpm.hibernate_statistics.enabled`: ```xml + ``` ## Schedulers по очистке базы *jbpm*. - Очистка таблиц аудита от завершенных процессов по истечении таймаута - - - `webbpm.jbpm.finished_process_cleaner_cron` - задает расписание (*spring cron*), если настройка не задана - джоб не запускается - - `webbpm.jbpm.finished_process_cleaner_timeout` - таймаут в часах (*целое числовое значение*) - + + - `webbpm.jbpm.finished_process_cleaner_cron` - задает расписание (*spring cron*), если + настройка не задана - джоб не запускается + - `webbpm.jbpm.finished_process_cleaner_timeout` - таймаут в часах (*целое числовое значение*) + Пример: - + ```xml ``` - + ## Ограничения для запросов БД. -- `webbpm.db.query_limit_enabled` - флаг, отвечающий за вывод сообщений о превышении лимитов на количество возвращаемых записей. По умолчанию - false. +- `webbpm.db.query_limit_enabled` - флаг, отвечающий за вывод сообщений о превышении лимитов на + количество возвращаемых записей. По умолчанию - false. -- `webbpm.db.select_records_max_limit` - максимальный лимит возвращаемых строк для запросов в БД, при превышении/равенстве данного лимита будет выброшена ошибка (*целое числовое значение*). По умолчанию - 100000 +- `webbpm.db.select_records_max_limit` - максимальный лимит возвращаемых строк для запросов в БД, + при превышении/равенстве данного лимита будет выброшена ошибка (*целое числовое значение*). По + умолчанию - 100000 -- `webbpm.db.select_records_min_limit` - минимальный лимит возвращаемых строк для запросов в БД, при превышении/равенстве данного лимита в логи будет выведен warning (*целое числовое значение*). По умолчанию - 1000 +- `webbpm.db.select_records_min_limit` - минимальный лимит возвращаемых строк для запросов в БД, при + превышении/равенстве данного лимита в логи будет выведен warning (*целое числовое значение*). По + умолчанию - 1000 -- `webbpm.db.execution_time_threshold`. The threshold for time of executing a statement. Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию - 1000 миллисекунд +- `webbpm.db.execution_time_threshold`. The threshold for time of executing a statement. Система + выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию - + 1000 миллисекунд -- `webbpm.db.result_read_time_threshold`. The threshold for time of fetching a set of records from a ResultSet. - . Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию - 50 миллисекунд +- `webbpm.db.result_read_time_threshold`. The threshold for time of fetching a set of records from a + ResultSet. + . Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По + умолчанию - 50 миллисекунд -- `webbpm.db.results_count_threshold`. Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию - 1000 записей +- `webbpm.db.results_count_threshold`. Система выводит сообщение в логи при превышении. Действует + для запросов, созданных в jOOQ. По умолчанию - 1000 записей -- `webbpm.db.full_time_threshold`. Ограничение на полное время выполнения запроса. Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию sum(webbpm.db.result_read_time_threshold, webbpm.db.execution_time_threshold) миллисекунд +- `webbpm.db.full_time_threshold`. Ограничение на полное время выполнения запроса. Система выводит + сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию sum( + webbpm.db.result_read_time_threshold, webbpm.db.execution_time_threshold) миллисекунд -- `webbpm.db.query_timeout`. Ограничение на время выполнения запроса. При превышении запрос будет отклонен. Действует для запросов, созданных в jOOQ в dev режиме. По умолчанию 120 секунд. +- `webbpm.db.query_timeout`. Ограничение на время выполнения запроса. При превышении запрос будет + отклонен. Действует для запросов, созданных в jOOQ в dev режиме. По умолчанию 120 секунд. Пример: ```xml + @@ -312,7 +148,8 @@ ## Добавление версии приложения в URL при запросах к backend-у -При сборке приложения с профилем enable-version-in-url в URL будет добавляться версия приложения, указанная в pom.xml. +При сборке приложения с профилем enable-version-in-url в URL будет добавляться версия приложения, +указанная в pom.xml. Шаблон URL: ``` @@ -321,38 +158,49 @@ ## Включение регистрации пользователя -1. Укажите конфигурацию почтового сервера для отправки писем с подтверждением регистрации. -Для этого в файле проекта *jndi-resources.xml* добавьте ресурс SmtpConfiguration. -Шаблон: +1. Укажите конфигурацию почтового сервера для отправки писем с подтверждением регистрации. + Для этого в файле проекта *jndi-resources.xml* добавьте ресурс SmtpConfiguration. + Шаблон: + ``` {"host":"host","port":1234,"login":"user","password":"password","from":"email_from","senderName":"sender_name","isSecured":true} ``` -Почтовый сервер - зарегистрированный актуальный почтовый адрес. В поле password нужно указывать не пароль для входа в почту, а создать пароль для приложений в учетке почты и указать его. + +Почтовый сервер - зарегистрированный актуальный почтовый адрес. В поле password нужно указывать не +пароль для входа в почту, а создать пароль для приложений в учетке почты и указать его. + 2. Для включения регистрации добавьте в *standalone.xml* свойство + ``` ``` -3. Также в *standalone.xml* укажите ресурс для отправки писем для подтверждения регистрации (из п.1) + +3. Также в *standalone.xml* укажите ресурс для отправки писем для подтверждения регистрации (из п.1) + ``` ``` -4. При необходимости, отредактируйте шаблон письма для подтверждения регистрации -(resources/src/main/resources/mail/confirmation.html) + +4. При необходимости, отредактируйте шаблон письма для подтверждения регистрации + (resources/src/main/resources/mail/confirmation.html) 5. При необходимости, отредактируйте шаблон письма для восстановления пароля -(resources/src/main/resources/mail/reset_password.html) - + (resources/src/main/resources/mail/reset_password.html) #### Настройка браузера для входа в систему с помощью Kerberos 1. Запустите браузер firefox. 2. В адресной строке введите about:config, нажать кнопку "я принимаю на себя риск" -3. С помощью поиска найдите параметр network.negotiate-auth.trusted-uris и в качестве значения ввести домен(например для домена example.com надо ввести .example.com) -4. Откройте в браузере приложение. Пример [http://app.example.com/](http://app.example.com/) . Приложение должно открыться без запроса логина/пароля +3. С помощью поиска найдите параметр network.negotiate-auth.trusted-uris и в качестве значения + ввести домен(например для домена example.com надо ввести .example.com) +4. Откройте в браузере приложение. Пример [http://app.example.com/](http://app.example.com/) . + Приложение должно открыться без запроса логина/пароля ## Восстановление структуры БД -На основе БД проекта с помощью jOOQ генерируются Java классы для каждого объекта БД. Это происходит по нажатию кнопки Обновить на панели БД в студии. При необходимости можно сформировать DDL на основе данных классов. Пример класса для генерации DDL +На основе БД проекта с помощью jOOQ генерируются Java классы для каждого объекта БД. Это происходит +по нажатию кнопки Обновить на панели БД в студии. При необходимости можно сформировать DDL на основе +данных классов. Пример класса для генерации DDL ``` package ru.cg.webbpm.test_project.db_beans; @@ -377,23 +225,31 @@ public class Main { - этим способом нельзя восстановить функции/процедуры БД -см. также [Generating DDL from objects](https://www.jooq.org/doc/latest/manual/sql-building/ddl-statements/generating-ddl/) +см. +также [Generating DDL from objects](https://www.jooq.org/doc/latest/manual/sql-building/ddl-statements/generating-ddl/) ## Распределенный кэш (Hazelcast) -В платформе подключен кэш. Он используется для подсчёта количества пользователей и кэширования подсистемы безопасности +В платформе подключен кэш. Он используется для подсчёта количества пользователей и кэширования +подсистемы безопасности - `webbpm.cache.hazelcast.port` - входящий порт hazelcast. по дефолту 5701. - Обязательное задать одно из двух следующих параметров - - `webbpm.cache.hazelcast.hosts` - список хостов серверов приложений. - webbpm.cache.hazelcast.hosts = hostname1,hostname2,hostname3 - - `webbpm.cache.hazelcast.kubernetes.service_name` - имя сервиса в среде kubernetes, - используемый для обнаружения других подов. Подходит как стратегия обнаружения, если используется - kubernetes -- `webbpm.cache.hazelcast.outbound_port_definitions` - исходящие порты hazelcast. по дефолту не задано, система сама выбирает свободные порты. Задать диапазон 5801 - 5820 -- `webbpm.cache.hazelcast.backup_count`. Нужны чтобы когда сервер выключается был доступен бекап. Если предполагается выключать несколько серверов за раз, то нужно увеличить. - Данный бекап делает копии синхронно с основной записью и операция записи ждет пока будет записана везде. Можно делать бекап асинхронно, настраивается через async_backup_count - подробнее про бекапы [Hazelcast IMDG Reference Manual](https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#backing-up-maps) . по дефолту 1 + - `webbpm.cache.hazelcast.hosts` - список хостов серверов приложений. + webbpm.cache.hazelcast.hosts = hostname1,hostname2,hostname3 + - `webbpm.cache.hazelcast.kubernetes.service_name` - имя сервиса в среде kubernetes, + используемый для обнаружения других подов. Подходит как стратегия обнаружения, если + используется + kubernetes +- `webbpm.cache.hazelcast.outbound_port_definitions` - исходящие порты hazelcast. по дефолту не + задано, система сама выбирает свободные порты. Задать диапазон 5801 - 5820 +- `webbpm.cache.hazelcast.backup_count`. Нужны чтобы когда сервер выключается был доступен бекап. + Если предполагается выключать несколько серверов за раз, то нужно увеличить. + Данный бекап делает копии синхронно с основной записью и операция записи ждет пока будет записана + везде. Можно делать бекап асинхронно, настраивается через async_backup_count + подробнее про + бекапы [Hazelcast IMDG Reference Manual](https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#backing-up-maps) . + по дефолту 1 - `webbpm.cache.hazelcast.async_backup_count` - `webbpm.cache.hazelcast.public_address` - `webbpm.cache.hazelcast.interfaces` @@ -401,15 +257,17 @@ public class Main { Пример конфигурации: ```xml - - ` + + +` ``` ## Подключение компоненты адреса в режиме ГАР (Государственный адресный реестр) Необходимо задать параметры: -- `gar.enable` - флаг, который включает/отключает сервис для работы с ГАР. Должен быть задан для работы компоненты в режиме ГАР. По умолчанию true, для отключения задать false. +- `gar.enable` - флаг, который включает/отключает сервис для работы с ГАР. Должен быть задан для + работы компоненты в режиме ГАР. По умолчанию true, для отключения задать false. - `gar.elastic.url.host` - хост на котором развернут elasticsearch. - `gar.elastic.password` - пароль для аутентификации elasticsearch. @@ -421,9 +279,10 @@ public class Main { Пример конфигурации: ```xml - - - + + + + ``` ## Метрики @@ -433,7 +292,11 @@ public class Main { Отчет собирается раз в 30 секунд по дефолту, меняется параметром `webbpm.metrics.report_period_ms`. Все метрики идут за отчетный период, после сбора отчета они сбрасываются. -Получить json со всеми метриками можно по урлу `backend/metrics/v1/all` - метрики будут с последнего собранного отчета, запрос не триггерит сбор отчета - это независимые операции. Отчет содержит только метрики по которым был совершен хотя бы один вызов в отчетный период. То есть, если какая-то операция не была совершена в отчетный период, то соответствующая ей метрика не попадет в отчет - ее не будет в json. +Получить json со всеми метриками можно по урлу `backend/metrics/v1/all` - метрики будут с последнего +собранного отчета, запрос не триггерит сбор отчета - это независимые операции. Отчет содержит только +метрики по которым был совершен хотя бы один вызов в отчетный период. То есть, если какая-то +операция не была совершена в отчетный период, то соответствующая ей метрика не попадет в отчет - ее +не будет в json. ### Значения метрик @@ -450,36 +313,42 @@ public class Main { ### Текущие метрики приложения - Получение коннекта из пула - - - `webbpm.jbpm.db.connection.acquire` - - `webbpm.security.db.connection.acquire` - - `webbpm.db.connection.acquire` + + - `webbpm.jbpm.db.connection.acquire` + - `webbpm.security.db.connection.acquire` + - `webbpm.db.connection.acquire` - Время с момента получения коннекта до возврата его в пул - - - `webbpm.jbpm.db.connection.in_use` - - `webbpm.security.db.connection.in_use` - - `webbpm.db.connection.in_use` + + - `webbpm.jbpm.db.connection.in_use` + - `webbpm.security.db.connection.in_use` + - `webbpm.db.connection.in_use` - Время выполнения запроса на бд проекта - - - `webbpm.db.query.success.execution_time` + + - `webbpm.db.query.success.execution_time` - Время выполнения запроса на бд проекта + время получения коннекта из пула - - - `webbpm.db.query.success.full_time` + + - `webbpm.db.query.success.full_time` - active-users-count.indicatorMax - active-users-count-ttl.indicatorMax - + # Количество пользователей -- `webbpm.active_users_counter.enabled` - включает подсчет пользователей, нужно чтобы не запускать hazelcast на дев машинах. по дефолту false. На боевых серверах необходимо установить в true. +- `webbpm.active_users_counter.enabled` - включает подсчет пользователей, нужно чтобы не запускать + hazelcast на дев машинах. по дефолту false. На боевых серверах необходимо установить в true. -- `webbpm.active_users_counter.max_time_between_operations_in_seconds` - время, которое пользователь считается активным после действия. по дефолту 15 минут. +- `webbpm.active_users_counter.max_time_between_operations_in_seconds` - время, которое пользователь + считается активным после действия. по дефолту 15 минут. -- `webbpm.active_users_counter.hazelcast.app_pool_size`. Запись в hazelcast производится асинхронно в отдельном пуле, не блокируя обработку http запроса. Это размер этого пула. по дефолту 4. Можно пока оставить 4 и последить за метриками pool.hazelcast-executor.queue.indicatorMax и pool.hazelcast-executor.activeThreads.indicatorMax. Если очередь будет сильно копиться, то увеличить. +- `webbpm.active_users_counter.hazelcast.app_pool_size`. Запись в hazelcast производится асинхронно + в отдельном пуле, не блокируя обработку http запроса. Это размер этого пула. по дефолту 4. Можно + пока оставить 4 и последить за метриками pool.hazelcast-executor.queue.indicatorMax и + pool.hazelcast-executor.activeThreads.indicatorMax. Если очередь будет сильно копиться, то + увеличить. ## Настройка логов @@ -487,11 +356,13 @@ public class Main { ### Общие настройки -Платформа Web-bpm использует корневую категорию логирования `ru.cg.webbpm`, рекомендуется выставлять ее в уровень `info`. todo check prod config +Платформа Web-bpm использует корневую категорию логирования `ru.cg.webbpm`, рекомендуется выставлять +ее в уровень `info`. todo check prod config ```xml + - + ``` @@ -501,7 +372,9 @@ public class Main { **Рекомендованное использование:** всегда в `info`. -Все параметры конфигурации загружаемые платформой web-bpm и пользовательским приложением через api webbpm логируются категорией `ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty`. Она всегда должна быть выставлена в `info`. +Все параметры конфигурации загружаемые платформой web-bpm и пользовательским приложением через api +webbpm логируются категорией `ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty`. Она +всегда должна быть выставлена в `info`. Пример вывода: @@ -519,8 +392,9 @@ public class Main { Использовать только при разработке. Категория `org.jooq.tools.LoggerListener` в `debug` уровень. ```xml + - + ``` @@ -543,28 +417,37 @@ public class Main { #### Логирование больших запросов -**Рекомендованное использование:** всегда в `info`, с подобранными для проекта значениями. В проде значения должны быть проверены что они не вызывают излишнее логирование. +**Рекомендованное использование:** всегда в `info`, с подобранными для проекта значениями. В проде +значения должны быть проверены что они не вызывают излишнее логирование. + +1. Для отслеживания больших запросов в пользовательскую базу нужно задать параметры что считать + большими запросами, логироваться будут запросы больше заданных показателей. + Чтобы логировать все запросы можно задать значение `-1`. Добавляются как property в + раздел `system-properties`: -1. Для отслеживания больших запросов в пользовательскую базу нужно задать параметры что считать большими запросами, логироваться будут запросы больше заданных показателей. - Чтобы логировать все запросы можно задать значение `-1`. Добавляются как property в раздел `system-properties`: - ```xml ``` - - В `info` режиме работают: - - - `webbpm.db.full_time_threshold` - полное время выполнения запроса в миллисекундах. Включает построение запроса библиотекой, выполнение и загрузку результатов. Пример сообщения
`2023-01-11 13:09:38,361 WARN [ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener] (default task-33) Query full time threshold exceeded. full_time=[6565ms] execution_time=[6565ms] read_time=[0ms] results_count=[4] query=[]` - - `webbpm.db.results_count_threshold` - количество записей, которое вернул запрос. Пример сообщения
`2023-01-11 13:10:34,088 WARN [ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener] (default task-41) Query results count threshold exceeded. results_count=[11177] query=[]` - - В `debug` режиме дополнительно к работающим в info: - - - `webbpm.db.execution_time_threshold` - время выполнения запроса + построения запроса библиотекой. - - `webbpm.db.result_read_time_threshold` - время чтения результатов запроса -2. После задания настроек нужно настроить логирование - категория `ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener`, уровень `info` или `debug`. - + В `info` режиме работают: + + - `webbpm.db.full_time_threshold` - полное время выполнения запроса в миллисекундах. Включает + построение запроса библиотекой, выполнение и загрузку результатов. Пример + сообщения
`2023-01-11 13:09:38,361 WARN [ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener] (default task-33) Query full time threshold exceeded. full_time=[6565ms] execution_time=[6565ms] read_time=[0ms] results_count=[4] query=[]` + - `webbpm.db.results_count_threshold` - количество записей, которое вернул запрос. Пример + сообщения
`2023-01-11 13:10:34,088 WARN [ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener] (default task-41) Query results count threshold exceeded. results_count=[11177] query=[]` + + В `debug` режиме дополнительно к работающим в info: + + - `webbpm.db.execution_time_threshold` - время выполнения запроса + построения запроса + библиотекой. + - `webbpm.db.result_read_time_threshold` - время чтения результатов запроса + +2. После задания настроек нужно настроить логирование - + категория `ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener`, уровень `info` + или `debug`. + ```xml @@ -575,17 +458,19 @@ public class Main { #### Основные настройки -JBPM использует 3 корневых категории логирования – `org.jbpm`, `org.drools`, `org.kie`. Все они должны быть выставлены в `warn`. +JBPM использует 3 корневых категории логирования – `org.jbpm`, `org.drools`, `org.kie`. Все они +должны быть выставлены в `warn`. ```xml + - + - + - + ``` @@ -596,16 +481,19 @@ JBPM использует 3 корневых категории логирова Для логирования sql запросов нужно включить категорию `org.hibernate.SQL` в `debug`: ```xml + - + ``` -Чтобы вывести параметры запросов и результат выполнения – категорию `org.hibernate.type.descriptor.sql` в `trace`: +Чтобы вывести параметры запросов и результат выполнения – +категорию `org.hibernate.type.descriptor.sql` в `trace`: ```xml + - + ``` @@ -627,29 +515,32 @@ JBPM использует 3 корневых категории логирова **Рекомендованное использование:** только при разработке в случае необходимости. 1. Время выполнения запроса и количество результатов. - - Включаются категорией `org.hibernate.stat` в `debug`. При этом в hibernate должен быть включен сбор статистики. + + Включаются категорией `org.hibernate.stat` в `debug`. При этом в hibernate должен быть включен + сбор статистики. Похоже что логируется только hql select запросов. - + ```xml ``` - + Пример вывода: - + ``` 18:21:06,858 DEBUG [org.hibernate.stat.internal.ConcurrentStatisticsImpl] (default task-41) HHH000117: HQL: select t from AuditTaskImpl t where t.taskId = :taskId, time: 6ms, rows: 1 ``` 2. Показатели hibernate сессий - - Включаются категорией `org.hibernate.engine.internal.StatisticalLoggingSessionEventListener` в `info`. - При этом в hibernate должен быть включен сбор статистики. Тут может быть интересно количество запросов, флашей и общее время на все запросы сессией. - + + Включаются категорией `org.hibernate.engine.internal.StatisticalLoggingSessionEventListener` + в `info`. + При этом в hibernate должен быть включен сбор статистики. Тут может быть интересно количество + запросов, флашей и общее время на все запросы сессией. + Пример вывода: - + ``` 2017-12-04 17:25:58,493 INFO [org.hibernate.engine.internal.StatisticalLoggingSessionEventListener] (default task-21) Session Metrics { 63408365 nanoseconds spent acquiring 17 JDBC connections; @@ -669,39 +560,51 @@ JBPM использует 3 корневых категории логирова **Рекомендованное использование:** всегда в `trace`. -Должно быть включено всегда. Позволяет убедиться что hibernate не накатывал никакие миграции на базу. Этот функционал отключен у нас в коде. +Должно быть включено всегда. Позволяет убедиться что hibernate не накатывал никакие миграции на +базу. Этот функционал отключен у нас в коде. ```xml + - + ``` # Описание параметров конфигурации клиентской части -Свойства задаются в файле frontend/src/resources/app-config.json или frontend.war/src/resources/app-config.json +Свойства задаются в файле frontend/src/resources/app-config.json или +frontend.war/src/resources/app-config.json ## Общие -- `dev_mode` - настройка задающая dev_mode для просмотра логов (true/false). При отсутствие оставляет значение при сборке -- `guard.confirm_exit` - выводить или нет диалог подтверждения, если обнаружены несохраненные данные в форме. Значение по умолчанию - false. +- `dev_mode` - настройка задающая dev_mode для просмотра логов (true/false). При отсутствие + оставляет значение при сборке +- `guard.confirm_exit` - выводить или нет диалог подтверждения, если обнаружены несохраненные данные + в форме. Значение по умолчанию - false. - `password.pattern` - Регулярное выражение для валидации пароля. - `password_pattern_error` - Сообщение об ошибке валидации. -- `show.client.errors` - отвечает за отображение ошибок javascript-a пользователю (должна использоваться только в тестовых контурах) по умолчанию выключена -- 'available_task.single_fetch' - Отвечает за количество запросов available_task при завершении процесса. true - одиночный запрос, false/не указано - 10 запросов(старая реализация). +- `show.client.errors` - отвечает за отображение ошибок javascript-a пользователю (должна + использоваться только в тестовых контурах) по умолчанию выключена +- 'available_task.single_fetch' - Отвечает за количество запросов available_task при завершении + процесса. true - одиночный запрос, false/не указано - 10 запросов(старая реализация). ## Вывод сообщений -- `message_service_error_timeout` время в мс, в течение которого будет отображено сообщение об ошибке. Значение по умолчанию - таймаут не задан (окно не закрывается). -- `message_service_warning_timeout` время в мс, в течение которого будет отображено предупреждающее сообщение. Значение по умолчанию - таймаут не задан (окно не закрывается). -- `message_service_success_timeout` время в мс, в течение которого будет отображено сообщение об успехе. Значение по умолчанию - таймаут не задан (окно не закрывается). -- `message_service_info_timeout` время в мс, в течение которого будет отображено информационное сообщение. Значение по умолчанию - таймаут не задан (окно не закрывается). +- `message_service_error_timeout` время в мс, в течение которого будет отображено сообщение об + ошибке. Значение по умолчанию - таймаут не задан (окно не закрывается). +- `message_service_warning_timeout` время в мс, в течение которого будет отображено предупреждающее + сообщение. Значение по умолчанию - таймаут не задан (окно не закрывается). +- `message_service_success_timeout` время в мс, в течение которого будет отображено сообщение об + успехе. Значение по умолчанию - таймаут не задан (окно не закрывается). +- `message_service_info_timeout` время в мс, в течение которого будет отображено информационное + сообщение. Значение по умолчанию - таймаут не задан (окно не закрывается). ## Электронная подпись ### Esmart -- `electronic_sign.esmart_extension_url` - url для создания расширенной подписи. Подробная информация по ссылке [http://demo.esmart.ru](http://demo.esmart.ru) +- `electronic_sign.esmart_extension_url` - url для создания расширенной подписи. Подробная + информация по ссылке [http://demo.esmart.ru](http://demo.esmart.ru) - `electronic_sign.tsp_address` - адрес сервера службы штампов времени Пример: @@ -712,38 +615,46 @@ JBPM использует 3 корневых категории логирова ## Способ аутентификации -- `auth_method` - способ аутентификации. Может принимать одно значение из списка: form, kerberos, cert_over_db, cert_over_ldap +- `auth_method` - способ аутентификации. Может принимать одно значение из списка: form, kerberos, + cert_over_db, cert_over_ldap ## Таймер очистки закешированных значений фильтров -- `filter_cleanup_interval_hours` - время жизни закешированного значения фильтра в часах. По умолчанию - 720 часов, -- `filter_cleanup_check_period_minutes` - период проверки наличия просроченных закешированных значений в минутах. По умолчанию - 30 минут +- `filter_cleanup_interval_hours` - время жизни закешированного значения фильтра в часах. По + умолчанию - 720 часов, +- `filter_cleanup_check_period_minutes` - период проверки наличия просроченных закешированных + значений в минутах. По умолчанию - 30 минут ## Добавление версии приложения в URL при запросах к frontend-у В модуле frontend в src/resources/app-config.json добавлены 2 переменные -- `"enable.version.in.url": "%enable.version.in.url%"` - подставлять ли версию в URL приложения. По умолчанию false. Если сборка произведена +- `"enable.version.in.url": "%enable.version.in.url%"` - подставлять ли версию в URL приложения. По + умолчанию false. Если сборка произведена - `"app.version": "%project.version%"` - версия приложения. с профилем `enable-version-in-url`, то значение будет true. ## Добавление Jivo чат в проект -Свойства задаются в файле frontend/src/resources/app-config.json или frontend.war/src/resources/app-config.json +Свойства задаются в файле frontend/src/resources/app-config.json или +frontend.war/src/resources/app-config.json -- `jivo_chat_widget_api_url` - API url для работы Jivo чата. Необходимо заменить {WIDGET_ID} на реальный Widget API ID -- `jivo_chat_widget_enabled` - параметр отвечающий за активацию Jivo чата. По дефолту false, для активации задать true. +- `jivo_chat_widget_api_url` - API url для работы Jivo чата. Необходимо заменить {WIDGET_ID} на + реальный Widget API ID +- `jivo_chat_widget_enabled` - параметр отвечающий за активацию Jivo чата. По дефолту false, для + активации задать true. Пример: ```json "jivo_chat_widget_api_url": "https://code.jivo.ru/widget/{WIDGET_ID}", - "jivo_chat_widget_enabled": false +"jivo_chat_widget_enabled": false ``` # Прочее ## Смена удалённого репозитория -1. Смените адрес NPM registry в файле frontend.npmrc. Пример - registry=https://repo.example.com/repository/npm-all/ +1. Смените адрес NPM registry в файле frontend.npmrc. Пример - + registry=https://repo.example.com/repository/npm-all/ 2. Поменяйте ссылки в блоке , файла pom.xml diff --git a/config/.gitignore b/config/.gitignore index ba9a786..1952cfe 100644 --- a/config/.gitignore +++ b/config/.gitignore @@ -1,2 +1,3 @@ /*.ear /*.jar +/*.war diff --git a/config/Dockerfile b/config/Dockerfile new file mode 100644 index 0000000..a17a355 --- /dev/null +++ b/config/Dockerfile @@ -0,0 +1,49 @@ +ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1 +ARG BACKEND_IMAGE=repo.micord.ru/alt/alt-tomcat:c10f1-9.0.59-20240903 +ARG FRONTEND_IMAGE=docker.angie.software/angie:latest + +FROM $BUILDER_IMAGE AS builder + +ARG MVN_FLAGS="-Pprod" + +RUN apt-get update \ + && apt-get -y install git glibc-locales java-17-openjdk-devel maven node \ + && apt-get clean + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG=ru_RU.UTF-8 +ENV LANGUAGE=ru_RU.UTF-8 +ENV LC_ALL=ru_RU.UTF-8 + +WORKDIR /app +COPY . . +RUN mkdir -p $HOME/.m2 \ +# && cp -f config/pgs-settings.xml $HOME/.m2/settings.xml \ +# && cp -f config/pgs-npmrc frontend/.npmrc \ + && mvn clean \ + && mvn package -T4C ${MVN_FLAGS} + + +FROM $BACKEND_IMAGE AS backend +ARG ADMIN_PASSWORD=Secr3t + +USER root + +COPY config/tomcat / + +RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ + && sed -i -r "s//$ADMIN_PASSWORD/g" /etc/tomcat/tomcat-users.xml \ + && chown root:tomcat /var/lib/tomcat/webapps \ + && chmod g+rw /var/lib/tomcat/webapps + +USER tomcat + +COPY --from=builder /app/backend/target/dashboard.war /var/lib/tomcat/webapps/dashboard.war + +FROM backend AS combo +COPY --from=builder /app/frontend/target/frontend*.war /var/lib/tomcat/webapps/ROOT.war + +FROM $FRONTEND_IMAGE AS frontend + +COPY config/angie.conf /etc/angie/angie.conf +COPY --from=builder /app/frontend/dist /frontend diff --git a/config/Dockerfile.TC b/config/Dockerfile.TC new file mode 100644 index 0000000..4ffefa4 --- /dev/null +++ b/config/Dockerfile.TC @@ -0,0 +1,22 @@ +#Dockerfile for TeamCity build "run in docker" + +FROM repo.micord.ru/alt/alt-tomcat:c10f1-9.0.59-20240903 +ARG ADMIN_PASSWORD=Secr3t + +USER root + +COPY tomcat / + +RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ + && sed -i -r "s//$ADMIN_PASSWORD/g" /etc/tomcat/tomcat-users.xml \ + && chown root:tomcat /var/lib/tomcat/webapps \ + && chmod g+rw /var/lib/tomcat/webapps + +COPY frontend.war /var/lib/tomcat/webapps/ROOT.war +COPY dashboard.war /var/lib/tomcat/webapps/dashboard.war + +USER tomcat + +EXPOSE 8080 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/config/Dockerfile.alt b/config/Dockerfile.alt new file mode 100644 index 0000000..3993ca0 --- /dev/null +++ b/config/Dockerfile.alt @@ -0,0 +1,49 @@ +ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1 +ARG RUNTIME_IMAGE=registry.altlinux.org/basealt/altsp:c10f1 + +FROM $BUILDER_IMAGE AS builder + +ARG MVN_FLAGS="-Pprod" + +RUN apt-get update \ + && apt-get -y install git glibc-locales java-17-openjdk-devel maven node \ + && apt-get clean + +WORKDIR /app + +COPY . . + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG ru_RU.UTF-8 +ENV LANGUAGE ru_RU.UTF-8 +ENV LC_ALL ru_RU.UTF-8 + +RUN mvn clean \ + && mvn package -T4C ${MVN_FLAGS} + +FROM $RUNTIME_IMAGE +ARG ADMIN_PASSWORD=Secr3t + +COPY config/entrypoint.sh /entrypoint.sh + +RUN apt-get update \ + && apt-get -y install glibc-locales java-17-openjdk-headless mc \ + tomcat tomcat-admin-webapps \ + && apt-get clean \ + && chmod +x /entrypoint.sh + +COPY config/tomcat / + +RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ + && sed -i -r "s//$ADMIN_PASSWORD/g" /etc/tomcat/tomcat-users.xml \ + && chown root:tomcat /var/lib/tomcat/webapps \ + && chmod g+rw /var/lib/tomcat/webapps + +COPY --from=builder /app/frontend/target/frontend*.war /var/lib/tomcat/webapps/ROOT.war +COPY --from=builder /app/backend/target/dashboard*.war /var/lib/tomcat/webapps/dashboard.war + +USER tomcat + +EXPOSE 8080 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/config/Dockerfile.backend b/config/Dockerfile.backend new file mode 100644 index 0000000..0156cd6 --- /dev/null +++ b/config/Dockerfile.backend @@ -0,0 +1,40 @@ +ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1 +ARG RUNTIME_IMAGE=repo.micord.ru/alt/alt-tomcat:c10f1-9.0.59-20240903 + +FROM $BUILDER_IMAGE AS builder + +ARG MVN_FLAGS="-Pprod" + +RUN apt-get update \ + && apt-get -y install git glibc-locales java-17-openjdk-devel maven node \ + && apt-get clean + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG=ru_RU.UTF-8 +ENV LANGUAGE=ru_RU.UTF-8 +ENV LC_ALL=ru_RU.UTF-8 + +WORKDIR /app +COPY . . +RUN mkdir -p $HOME/.m2 \ +# && cp -f config/pgs-settings.xml $HOME/.m2/settings.xml \ +# && cp -f config/pgs-npmrc frontend/.npmrc \ + && mvn clean \ + && mvn package -T4C ${MVN_FLAGS} + + +FROM $RUNTIME_IMAGE +ARG ADMIN_PASSWORD=Secr3t + +USER root + +COPY config/tomcat / + +RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ + && sed -i -r "s//$ADMIN_PASSWORD/g" /etc/tomcat/tomcat-users.xml \ + && chown root:tomcat /var/lib/tomcat/webapps \ + && chmod g+rw /var/lib/tomcat/webapps + +USER tomcat + +COPY --from=builder /app/backend/target/dashboard*.war /var/lib/tomcat/webapps/dashboard.war diff --git a/config/Dockerfile.frontend b/config/Dockerfile.frontend new file mode 100644 index 0000000..3c84d78 --- /dev/null +++ b/config/Dockerfile.frontend @@ -0,0 +1,29 @@ +ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1 +ARG RUNTIME_IMAGE=docker.angie.software/angie:latest + +FROM $BUILDER_IMAGE AS builder + +ARG MVN_FLAGS="-Pprod" + +RUN apt-get update \ + && apt-get -y install git glibc-locales java-17-openjdk-devel maven node \ + && apt-get clean + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG=ru_RU.UTF-8 +ENV LANGUAGE=ru_RU.UTF-8 +ENV LC_ALL=ru_RU.UTF-8 + +WORKDIR /app +COPY . . +RUN mkdir -p $HOME/.m2 \ +# && cp config/pgs-settings.xml $HOME/.m2/settings.xml \ +# && cp -f config/pgs-npmrc frontend/.npmrc \ + && mvn clean \ + && mvn package -T4C ${MVN_FLAGS} + + +FROM $RUNTIME_IMAGE + +COPY config/angie.conf /etc/angie/angie.conf +COPY --from=builder /app/frontend/dist /frontend diff --git a/config/docker-compose.yaml b/config/docker-compose.yaml new file mode 100644 index 0000000..ba88f57 --- /dev/null +++ b/config/docker-compose.yaml @@ -0,0 +1,10 @@ +version: "3" +services: + webbpm-app: + build: + context: . + dockerfile: Dockerfile.TC + ports: + - 8080 + env_file: + - micord.env diff --git a/config/entrypoint.sh b/config/entrypoint.sh new file mode 100644 index 0000000..3021636 --- /dev/null +++ b/config/entrypoint.sh @@ -0,0 +1,6 @@ +#! /bin/bash + +. /etc/tomcat/tomcat.conf +. /etc/sysconfig/tomcat + +/usr/libexec/tomcat/server start diff --git a/config/micord.env b/config/micord.env new file mode 100644 index 0000000..757a80c --- /dev/null +++ b/config/micord.env @@ -0,0 +1,7 @@ +TZ=Europe/Moscow +# App datasource +DB_APP_USERNAME=ervu-dashboard +DB_APP_PASSWORD=ervu-dashboard +DB_APP_HOST=10.10.31.119 +DB_APP_PORT=5432 +DB_APP_NAME=ervu-dashboard diff --git a/config/pgs-npmrc b/config/pgs-npmrc deleted file mode 100644 index 1157413..0000000 --- a/config/pgs-npmrc +++ /dev/null @@ -1 +0,0 @@ -registry=https://nexus-dev.pgs.rtlabs.ru/content/groups/group-npm/ diff --git a/config/pgs-settings.xml b/config/pgs-settings.xml deleted file mode 100644 index d3f050b..0000000 --- a/config/pgs-settings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - mirror-micord - micord - mirror-micord - https://nexus-dev.pgs.rtlabs.ru/repository/maven-micord - - - mirror-micord-public - micord-public - mirror-micord-public - https://nexus-dev.pgs.rtlabs.ru/repository/maven-public - - - diff --git a/config/tomcat/etc/tomcat/conf.d/db.conf b/config/tomcat/etc/tomcat/conf.d/db.conf new file mode 100644 index 0000000..8d7facd --- /dev/null +++ b/config/tomcat/etc/tomcat/conf.d/db.conf @@ -0,0 +1,8 @@ +JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS \ + -Ddb.app.host=${DB_APP_HOST:-db} \ + -Ddb.app.port=${DB_APP_PORT:-5432} \ + -Ddb.app.name=${DB_APP_NAME:-app} \ + -Ddb.app.username=${DB_APP_USERNAME:-app_user} \ + -Ddb.app.password=${DB_APP_PASSWORD:-apppassword} \ +" +export JDK_JAVA_OPTIONS \ No newline at end of file diff --git a/config/tomcat/tomee/conf/context.xml b/config/tomcat/etc/tomcat/context.xml similarity index 96% rename from config/tomcat/tomee/conf/context.xml rename to config/tomcat/etc/tomcat/context.xml index 92d999c..9b2a765 100644 --- a/config/tomcat/tomee/conf/context.xml +++ b/config/tomcat/etc/tomcat/context.xml @@ -29,7 +29,7 @@ --> - diff --git a/config/tomcat/tomee/conf/tomcat-users.xml b/config/tomcat/etc/tomcat/tomcat-users.xml similarity index 100% rename from config/tomcat/tomee/conf/tomcat-users.xml rename to config/tomcat/etc/tomcat/tomcat-users.xml diff --git a/config/tomcat/etc/tomcat/tomcat.conf b/config/tomcat/etc/tomcat/tomcat.conf new file mode 100644 index 0000000..c4090b2 --- /dev/null +++ b/config/tomcat/etc/tomcat/tomcat.conf @@ -0,0 +1,52 @@ +# System-wide configuration file for tomcat services +# This will be loaded by systemd as an environment file, +# so please keep the syntax. For shell expansion support +# place your custom files as /etc/tomcat/conf.d/*.conf +# +# There are 2 "classes" of startup behavior in this package. +# The old one, the default service named tomcat.service. +# The new named instances are called tomcat@instance.service. +# +# Use this file to change default values for all services. +# Change the service specific ones to affect only one service. +# For tomcat.service it's /etc/sysconfig/tomcat, for +# tomcat@instance it's /etc/sysconfig/tomcat@instance. + +# This variable is used to figure out if config is loaded or not. +TOMCAT_CFG_LOADED="1" + +# In new-style instances, if CATALINA_BASE isn't specified, it will +# be constructed by joining TOMCATS_BASE and NAME. +TOMCATS_BASE="/var/lib/tomcats/" + +# Where your java installation lives +JAVA_HOME="/usr/lib/jvm/jre" + +# Where your tomcat installation lives +CATALINA_HOME="/usr/share/tomcat" + +# System-wide tmp +CATALINA_TMPDIR="/var/cache/tomcat/temp" + +# You can pass some parameters to java here if you wish to +#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3" + +# Use JAVA_OPTS to set java.library.path for libtcnative.so +#JAVA_OPTS="-Djava.library.path=/usr/lib" + +# Set default javax.sql.DataSource factory to apache commons one. See rhbz#1214381 +#JAVA_OPTS="-Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory" +JAVA_OPTS="-Djavax.sql.DataSource.Factory=org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory" + +# You can change your tomcat locale here +#LANG="en_US" + +# Run tomcat under the Java Security Manager +SECURITY_MANAGER="false" + +# SHUTDOWN_WAIT has been deprecated. To change the shutdown wait time, set +# TimeoutStopSec in tomcat.service. + +# If you wish to further customize your tomcat environment, +# put your own definitions here +# (i.e. LD_LIBRARY_PATH for some jdbc drivers) diff --git a/config/tomcat/tomee/conf/webbpm.properties b/config/tomcat/etc/tomcat/webbpm.properties similarity index 92% rename from config/tomcat/tomee/conf/webbpm.properties rename to config/tomcat/etc/tomcat/webbpm.properties index 0fe1d60..7224ec5 100644 --- a/config/tomcat/tomee/conf/webbpm.properties +++ b/config/tomcat/etc/tomcat/webbpm.properties @@ -1,4 +1,7 @@ + +# # WebBPM properties +# authentication.method=form @@ -6,6 +9,8 @@ bpmn.enable=false fias.enable=false gar.enable=false +mail.jndi.resource.name= + reset_password.mail.template.path=mail/reset_password.html security.password.regex=^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$ diff --git a/config/tomcat/tomee/bin/setenv.sh b/config/tomcat/tomee/bin/setenv.sh deleted file mode 100644 index 67d6c63..0000000 --- a/config/tomcat/tomee/bin/setenv.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -#export JAVA_OPTS="$JAVA_OPTS \ -# -Ddb.app.host=${DB_APP_HOST:-10.10.31.119} \ -# -Ddb.app.port=${DB_APP_PORT:-5432} \ -# -Ddb.app.name=${DB_APP_NAME:-ervu-dashboard} \ -# -Ddb.app.username=${DB_APP_USERNAME:-ervu-dashboard} \ -# -Ddb.app.password=${DB_APP_PASSWORD:-ervu-dashboard} \ -#" - -export JAVA_OPTS="$JAVA_OPTS \ - -Ddb.app.host=${DB_APP_HOST:-db} \ - -Ddb.app.port=${DB_APP_PORT:-5432} \ - -Ddb.app.name=${DB_APP_NAME:-app} \ - -Ddb.app.username=${DB_APP_USERNAME:-app_user} \ - -Ddb.app.password=${DB_APP_PASSWORD:-apppassword} \ -" diff --git a/config/tomcat/tomee/webapps/manager/META-INF/context.xml b/config/tomcat/var/lib/tomcat/webapps/manager/META-INF/context.xml similarity index 100% rename from config/tomcat/tomee/webapps/manager/META-INF/context.xml rename to config/tomcat/var/lib/tomcat/webapps/manager/META-INF/context.xml diff --git a/distribution/pom.xml b/distribution/pom.xml index 997e23c..2f2915d 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -4,7 +4,7 @@ ru.micord.ervu dashboard - 1.0.0-SNAPSHOT + 1.5.0-SNAPSHOT ru.micord.ervu.dashboard diff --git a/frontend/.env b/frontend/.env new file mode 100644 index 0000000..4f932ef --- /dev/null +++ b/frontend/.env @@ -0,0 +1 @@ +MFE_BASE_URL=/mfe/dashboard \ No newline at end of file diff --git a/frontend/angular.json b/frontend/angular.json index 965697d..3993721 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -67,5 +67,5 @@ } } }, - "defaultProject": "webbpm-frontend" + "defaultProject": "ervu-dashboard" } diff --git a/frontend/normalize-css-path.js b/frontend/normalize-css-path.js new file mode 100644 index 0000000..705e04e --- /dev/null +++ b/frontend/normalize-css-path.js @@ -0,0 +1,32 @@ +"use strict"; +exports.__esModule = true; +var fs = require('fs'); +var mfeBaseUrlKey = 'MFE_BASE_URL'; +var srcUrlRegex = /url\((\\?["'])?(?!data:)\S+(\\?["'])?\)/g; +function normalizeCssPaths(params) { + params.paths = params.paths ? params.paths : []; + params.paths.forEach(function (path) { return normalizeCssPath(path, params.outDir); }); +} +exports.normalizeCssPaths = normalizeCssPaths; +function normalizeCssPath(path, outputDirectory) { + console.log("Start processing " + path); + var css = fs.readFileSync(path, 'utf8'); + var counter = 0; + var processedCss = css.replace(srcUrlRegex, function (srcUrl) { + if (srcUrl.search(outputDirectory) != -1) + return srcUrl; + var fileName = getFileName(srcUrl); + var processedUrl = "url('" + outputDirectory + "/" + fileName + "')"; + counter++; + console.log("Replaced " + srcUrl + " -> " + processedUrl); + return processedUrl; + }); + console.log("Replaced " + counter + " urls"); + fs.writeFileSync(path, processedCss); +} +function getFileName(srcUrl) { + var url = srcUrl.substring(4, srcUrl.length - 1); // unbox 'url(...)' + url = url.replace(/(\\?["'])/g, ''); + var urlPaths = url.split('/'); + return urlPaths[urlPaths.length - 1].split('?')[0]; +} diff --git a/frontend/normalize-css-path.ts b/frontend/normalize-css-path.ts new file mode 100644 index 0000000..0fa39a3 --- /dev/null +++ b/frontend/normalize-css-path.ts @@ -0,0 +1,33 @@ +const fs = require('fs'); + +const srcUrlRegex = /url\((\\?["'])?(?!data:)\S+(\\?["'])?\)/g; + +export function normalizeCssPaths(params: {paths: string[], outDir: string}) { + params.paths = params.paths ? params.paths : []; + params.paths.forEach(path => normalizeCssPath(path, params.outDir)); +} + +function normalizeCssPath(path: string, outputDirectory: string) { + console.log(`Start processing ${path}`); + const css: string = fs.readFileSync(path, 'utf8'); + let counter = 0; + + const processedCss = css.replace(srcUrlRegex, (srcUrl: string) => { + if (srcUrl.search(outputDirectory) != -1) return srcUrl; + + let fileName = getFileName(srcUrl); + let processedUrl = `url('${outputDirectory}/${fileName}')`; + counter++; + console.log(`Replaced ${srcUrl} -> ${processedUrl}`); + return processedUrl; + }); + console.log(`Replaced ${counter} urls`); + fs.writeFileSync(path, processedCss); +} + +function getFileName(srcUrl: string): string { + let url = srcUrl.substring(4, srcUrl.length - 1); // unbox 'url(...)' + url = url.replace(/(\\?["'])/g, ''); + let urlPaths = url.split('/'); + return urlPaths[urlPaths.length - 1].split('?')[0]; +} \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index a50097f..bae8d6c 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,9 +1,19 @@ { - "name": "webbpm-frontend", + "name": "ervu-dashboard", "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, "@angular-devkit/architect": { "version": "0.13.9", "resolved": "https://repo.micord.ru/repository/npm-all/@angular-devkit/architect/-/architect-0.13.9.tgz", @@ -262,39 +272,38 @@ } }, "@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "version": "7.25.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", "dev": true }, "@babel/core": { - "version": "7.9.6", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "version": "7.18.10", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.6", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, "requires": { "ms": "2.1.2" @@ -311,16 +320,22 @@ "resolved": "https://repo.micord.ru/repository/npm-all/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true } } }, "@babel/generator": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.25.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/generator/-/generator-7.25.5.tgz", + "integrity": "sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==", "dev": true, "requires": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.25.4", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -346,14 +361,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "version": "7.25.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, "requires": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -366,10 +381,33 @@ } } }, + "@babel/helper-create-class-features-plugin": { + "version": "7.25.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", - "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "version": "7.25.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.24.7", @@ -385,6 +423,43 @@ } } }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.6", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, "@babel/helper-environment-visitor": { "version": "7.24.7", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", @@ -394,33 +469,14 @@ "@babel/types": "^7.24.7" } }, - "@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, "@babel/helper-member-expression-to-functions": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", - "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" } }, "@babel/helper-module-imports": { @@ -434,16 +490,15 @@ } }, "@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "version": "7.25.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" } }, "@babel/helper-optimise-call-expression": { @@ -456,31 +511,31 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", - "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-wrap-function": "^7.24.7" + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" } }, "@babel/helper-replace-supers": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", - "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", - "@babel/helper-optimise-call-expression": "^7.24.7" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" } }, "@babel/helper-simple-access": { @@ -503,19 +558,10 @@ "@babel/types": "^7.24.7" } }, - "@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true }, "@babel/helper-validator-identifier": { @@ -525,31 +571,30 @@ "dev": true }, "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", - "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" } }, "@babel/helpers": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" } }, "@babel/highlight": { @@ -565,10 +610,33 @@ } }, "@babel/parser": { + "version": "7.25.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/parser/-/parser-7.25.4.tgz", + "integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==", + "dev": true, + "requires": { + "@babel/types": "^7.25.4" + } + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.8" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + } }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", @@ -582,6 +650,27 @@ "@babel/plugin-syntax-async-generators": "^7.8.4" } }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, "@babel/plugin-proposal-dynamic-import": { "version": "7.18.6", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", @@ -592,6 +681,16 @@ "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, "@babel/plugin-proposal-json-strings": { "version": "7.18.6", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", @@ -602,6 +701,16 @@ "@babel/plugin-syntax-json-strings": "^7.8.3" } }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -656,6 +765,28 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", @@ -675,6 +806,24 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -684,6 +833,24 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -693,6 +860,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", @@ -738,6 +914,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", @@ -777,27 +962,25 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", - "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" } }, "@babel/plugin-transform-classes": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", - "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "version": "7.25.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", + "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.4", "globals": "^11.1.0" } }, @@ -812,12 +995,12 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", - "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" } }, "@babel/plugin-transform-dotall-regex": { @@ -860,23 +1043,23 @@ } }, "@babel/plugin-transform-function-name": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", - "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "version": "7.25.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" } }, "@babel/plugin-transform-literals": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", - "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "version": "7.25.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" } }, "@babel/plugin-transform-member-expression-literals": { @@ -899,26 +1082,26 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", - "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", - "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" } }, "@babel/plugin-transform-modules-umd": { @@ -960,6 +1143,17 @@ "@babel/helper-replace-supers": "^7.24.7" } }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, "@babel/plugin-transform-parameters": { "version": "7.24.7", "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", @@ -1035,9 +1229,18 @@ } }, "@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.8" + } + }, + "@babel/plugin-transform-unicode-escapes": { "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", - "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.24.7" @@ -1054,71 +1257,94 @@ } }, "@babel/preset-env": { - "version": "7.9.6", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/preset-env/-/preset-env-7.9.6.tgz", - "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", + "version": "7.18.10", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", "dev": true, "requires": { - "@babel/compat-data": "^7.9.6", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.5", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.9.5", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.6", - "@babel/plugin-transform-modules-commonjs": "^7.9.6", - "@babel/plugin-transform-modules-systemjs": "^7.9.6", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.9.5", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.6", - "browserslist": "^4.11.1", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/preset-modules": { @@ -1141,47 +1367,44 @@ "dev": true }, "@babel/runtime": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.25.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/runtime/-/runtime-7.25.4.tgz", + "integrity": "sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==", "dev": true, "requires": { "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, "requires": { "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" } }, "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "version": "7.25.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/traverse/-/traverse-7.25.4.tgz", + "integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==", "dev": true, "requires": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.4", + "@babel/parser": "^7.25.4", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.4", "debug": "^4.3.1", "globals": "^11.1.0" }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.6", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1196,16 +1419,22 @@ } }, "@babel/types": { - "version": "7.24.7", - "resolved": "https://repo.micord.ru/repository/npm-all/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.25.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/types/-/types-7.25.4.tgz", + "integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" } }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, "@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -1229,6 +1458,16 @@ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true }, + "@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -1251,13 +1490,19 @@ "integrity": "sha512-YbrUWREPGEjE/FU6foXcAT1YbVwqD/jkYnY1dFb0o4AxtP3s4xKBthlELjndZih8uwsDWgQZx1eNskRNe2BgZQ==" }, "@ng-bootstrap/ng-bootstrap": { - "version": "4.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-4.1.1.tgz", - "integrity": "sha512-OgbmPVhbDdNpIwogEXsycUJG0caNtb2+wCABfLUClgi9YcfNXhZ9Phu2GQq7Pk/LO66okth6s77RBQnbTJuysg==", + "version": "4.2.2-micord.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-4.2.2-micord.1.tgz", + "integrity": "sha512-SIj+Qbz8TtXldrxEJgjwuGTpm9Guhu9lwyJKlUxYeAzcG6KUmncHNg/4sdle3hCJzNvoQLd+07p0Bu5VHrZRyQ==", "requires": { "tslib": "^1.9.0" } }, + "@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://repo.micord.ru/repository/npm-all/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "dev": true + }, "@scarf/scarf": { "version": "1.3.0", "resolved": "https://repo.micord.ru/repository/npm-all/@scarf/scarf/-/scarf-1.3.0.tgz", @@ -1331,10 +1576,36 @@ "@types/node": "*" } }, + "@types/eslint": { + "version": "7.2.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/eslint/-/eslint-7.2.5.tgz", + "integrity": "sha512-Dc6ar9x16BdaR3NSxSF7T4IjL9gxxViJq8RmFd+2UAyA+K6ck2W+gUwfgpG/y9TPyUuBL35109bbULpEynvltA==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "version": "6.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, "@types/jquery": { @@ -1361,276 +1632,178 @@ "integrity": "sha512-SANEtwCJIPLX9cz5eI6/bOjALsZEIdL1YoTX7t+Syqxt6l8iOKwmTMUvjiOLtnatcJjK+lyIBRPSwgYDOYuQ2Q==", "dev": true }, - "@types/source-list-map": { - "version": "0.1.6", - "resolved": "https://repo.micord.ru/repository/npm-all/@types/source-list-map/-/source-list-map-0.1.6.tgz", - "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", - "dev": true - }, - "@types/tapable": { - "version": "1.0.12", - "resolved": "https://repo.micord.ru/repository/npm-all/@types/tapable/-/tapable-1.0.12.tgz", - "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", - "dev": true - }, - "@types/uglify-js": { - "version": "3.17.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@types/uglify-js/-/uglify-js-3.17.5.tgz", - "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/webpack": { - "version": "4.41.38", - "resolved": "https://repo.micord.ru/repository/npm-all/@types/webpack/-/webpack-4.41.38.tgz", - "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.3", - "resolved": "https://repo.micord.ru/repository/npm-all/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/webpack-sources": { - "version": "3.2.3", - "resolved": "https://repo.micord.ru/repository/npm-all/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } - } - }, "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" } }, "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, "@webbpm/base-package": { - "version": "3.177.2", - "resolved": "https://repo.micord.ru/repository/npm-all/@webbpm/base-package/-/base-package-3.177.2.tgz", - "integrity": "sha512-QESKy3/27XGO94xw1o+d++audZ8phbZU0m0fTX9w/FiaiEtsWOCzoIjHhHTf+CbuXwFxurEedzx9C+lN275SAg==", + "version": "3.178.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@webbpm/base-package/-/base-package-3.178.2.tgz", + "integrity": "sha512-ShqAmiaGCvrg7ffrhntshwcZJVW8cK10JsMy/OT36p7iK6B/IR0YCJZZ+GIhakLo0CZsEokhcpKBdORvfOI55g==", "requires": { "tslib": "^1.9.0" } }, + "@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true + }, + "@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true + }, + "@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://repo.micord.ru/repository/npm-all/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -1670,22 +1843,25 @@ } }, "acorn": { - "version": "6.4.2", - "resolved": "https://repo.micord.ru/repository/npm-all/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "version": "8.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://repo.micord.ru/repository/npm-all/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true }, "acorn-walk": { - "version": "6.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true + "version": "8.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "requires": { + "acorn": "^8.11.0" + } }, "ag-grid-angular": { "version": "29.0.0-micord.4", @@ -1743,6 +1919,41 @@ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://repo.micord.ru/repository/npm-all/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -1929,22 +2140,6 @@ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true }, - "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, "array-union": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/array-union/-/array-union-1.0.2.tgz", @@ -1966,89 +2161,12 @@ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true }, - "array.prototype.reduce": { - "version": "1.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", - "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-array-method-boxes-properly": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - } - }, "arrify": { "version": "1.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://repo.micord.ru/repository/npm-all/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://repo.micord.ru/repository/npm-all/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.1", - "resolved": "https://repo.micord.ru/repository/npm-all/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "requires": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "util": { - "version": "0.10.4", - "resolved": "https://repo.micord.ru/repository/npm-all/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - } - } - }, "assign-symbols": { "version": "1.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -2081,12 +2199,6 @@ "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", "dev": true }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, "atob": { "version": "2.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/atob/-/atob-2.1.2.tgz", @@ -2098,15 +2210,6 @@ "resolved": "https://repo.micord.ru/repository/npm-all/autonumeric/-/autonumeric-4.5.10-cg.tgz", "integrity": "sha512-oh1+nRny25cIApfA4/NuNwi05CTDofSuQ/cH+qHQU9tVo77oMjRgeO78LWHTNxPOkKxdNxaGby6NV/BnFo1Vnw==" }, - "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, "axios": { "version": "0.21.4", "resolved": "https://repo.micord.ru/repository/npm-all/axios/-/axios-0.21.4.tgz", @@ -2185,58 +2288,139 @@ } }, "babel-loader": { - "version": "8.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "version": "9.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-loader/-/babel-loader-9.1.2.tgz", + "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", "dev": true, "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" }, "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://repo.micord.ru/repository/npm-all/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://repo.micord.ru/repository/npm-all/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "minimist": { - "version": "1.2.8", - "resolved": "https://repo.micord.ru/repository/npm-all/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://repo.micord.ru/repository/npm-all/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "find-up": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "minimist": "^1.2.6" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "pify": { - "version": "4.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "locate-path": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2279,12 +2463,6 @@ } } }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://repo.micord.ru/repository/npm-all/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, "base64id": { "version": "2.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/base64id/-/base64id-2.0.0.tgz", @@ -2297,18 +2475,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "bfj": { - "version": "6.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/bfj/-/bfj-6.1.2.tgz", - "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, "big.js": { "version": "5.2.2", "resolved": "https://repo.micord.ru/repository/npm-all/big.js/-/big.js-5.2.2.tgz", @@ -2337,67 +2503,6 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "body-parser": { - "version": "1.20.2", - "resolved": "https://repo.micord.ru/repository/npm-all/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "destroy": { - "version": "1.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://repo.micord.ru/repository/npm-all/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://repo.micord.ru/repository/npm-all/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "qs": { - "version": "6.11.0", - "resolved": "https://repo.micord.ru/repository/npm-all/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - } - } - }, "boolbase": { "version": "1.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/boolbase/-/boolbase-1.0.0.tgz", @@ -2453,12 +2558,6 @@ } } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, "browser-sync": { "version": "2.29.3", "resolved": "https://repo.micord.ru/repository/npm-all/browser-sync/-/browser-sync-2.29.3.tgz", @@ -2826,98 +2925,6 @@ } } }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.3", - "resolved": "https://repo.micord.ru/repository/npm-all/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, "browserslist": { "version": "4.23.1", "resolved": "https://repo.micord.ru/repository/npm-all/browserslist/-/browserslist-4.23.1.tgz", @@ -2936,41 +2943,18 @@ "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, - "buffer": { - "version": "4.9.2", - "resolved": "https://repo.micord.ru/repository/npm-all/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, "buffer-from": { "version": "1.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://repo.micord.ru/repository/npm-all/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, "builtins": { "version": "1.0.3", "resolved": "https://repo.micord.ru/repository/npm-all/builtins/-/builtins-1.0.3.tgz", @@ -3032,19 +3016,6 @@ "resolved": "https://repo.micord.ru/repository/npm-all/calendar-utils/-/calendar-utils-0.8.5.tgz", "integrity": "sha512-mgn7dqZfDEqY/obyPO9ib8FSk28vAIOIOXyrjffT9jw1vAmxLguhvohM6JehDA6dY+ddkWBlPCDLCcRv0PncKw==" }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, "camel-case": { "version": "4.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/camel-case/-/camel-case-4.1.2.tgz", @@ -3056,9 +3027,9 @@ }, "dependencies": { "tslib": { - "version": "2.6.3", - "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true } } @@ -3117,12 +3088,6 @@ "resolved": "https://repo.micord.ru/repository/npm-all/chartjs-adapter-moment/-/chartjs-adapter-moment-1.0.0.tgz", "integrity": "sha512-PqlerEvQcc5hZLQ/NQWgBxgVQ4TRdvkW3c/t+SUEQSj78ia3hgLkf2VZ2yGJtltNbEEFyYGm+cA6XXevodYvWA==" }, - "check-types": { - "version": "8.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/check-types/-/check-types-8.0.3.tgz", - "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", - "dev": true - }, "chokidar": { "version": "2.0.4", "resolved": "https://repo.micord.ru/repository/npm-all/chokidar/-/chokidar-2.0.4.tgz", @@ -3156,16 +3121,6 @@ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "class-utils": { "version": "0.3.6", "resolved": "https://repo.micord.ru/repository/npm-all/class-utils/-/class-utils-0.3.6.tgz", @@ -3190,9 +3145,9 @@ } }, "clean-css": { - "version": "4.2.4", - "resolved": "https://repo.micord.ru/repository/npm-all/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "version": "5.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -3269,6 +3224,17 @@ } } }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://repo.micord.ru/repository/npm-all/code-point-at/-/code-point-at-1.1.0.tgz", @@ -3325,6 +3291,12 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "colorette": { + "version": "2.0.20", + "resolved": "https://repo.micord.ru/repository/npm-all/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, "commander": { "version": "2.20.3", "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-2.20.3.tgz", @@ -3388,41 +3360,6 @@ "moment": "*" } }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://repo.micord.ru/repository/npm-all/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://repo.micord.ru/repository/npm-all/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, "convert-source-map": { "version": "1.9.0", "resolved": "https://repo.micord.ru/repository/npm-all/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -3435,12 +3372,6 @@ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://repo.micord.ru/repository/npm-all/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, "copy-concurrently": { "version": "1.0.5", "resolved": "https://repo.micord.ru/repository/npm-all/copy-concurrently/-/copy-concurrently-1.0.5.tgz", @@ -3521,12 +3452,54 @@ "integrity": "sha512-W4Zkayb9VI4zr+s7ReDSgTTaV9KWB4L997i8/mkOV2kY1c7QGNj91k8X0zcr8Tl24oYF6kiBomCDSYO4BvQQdQ==" }, "core-js-compat": { - "version": "3.37.1", - "resolved": "https://repo.micord.ru/repository/npm-all/core-js-compat/-/core-js-compat-3.37.1.tgz", - "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "version": "3.38.1", + "resolved": "https://repo.micord.ru/repository/npm-all/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", "dev": true, "requires": { - "browserslist": "^4.23.0" + "browserslist": "^4.23.3" + }, + "dependencies": { + "browserslist": { + "version": "4.23.3", + "resolved": "https://repo.micord.ru/repository/npm-all/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001653", + "resolved": "https://repo.micord.ru/repository/npm-all/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", + "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.5.13", + "resolved": "https://repo.micord.ru/repository/npm-all/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "dev": true + }, + "node-releases": { + "version": "2.0.18", + "resolved": "https://repo.micord.ru/repository/npm-all/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + } } }, "core-util-is": { @@ -3545,51 +3518,6 @@ "vary": "^1" } }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://repo.micord.ru/repository/npm-all/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://repo.micord.ru/repository/npm-all/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "cross-env": { "version": "5.2.1", "resolved": "https://repo.micord.ru/repository/npm-all/cross-env/-/cross-env-5.2.1.tgz", @@ -3643,53 +3571,27 @@ } } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://repo.micord.ru/repository/npm-all/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, "css-loader": { - "version": "2.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/css-loader/-/css-loader-2.1.0.tgz", - "integrity": "sha512-MoOu+CStsGrSt5K2OeZ89q3Snf+IkxRfAIt9aAKg4piioTrhtP1iEFPu+OVn3Ohz24FO6L+rw9UJxBILiSBw5Q==", + "version": "6.11.0", + "resolved": "https://repo.micord.ru/repository/npm-all/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", "dev": true, "requires": { - "icss-utils": "^4.0.0", - "loader-utils": "^1.2.1", - "lodash": "^4.17.11", - "postcss": "^7.0.6", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^2.0.3", - "postcss-modules-scope": "^2.0.0", - "postcss-modules-values": "^2.0.0", - "postcss-value-parser": "^3.3.0", - "schema-utils": "^1.0.0" + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } + "semver": { + "version": "7.6.3", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true } } }, @@ -3754,44 +3656,17 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "data-view-buffer": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, "date-fns": { "version": "2.29.3", "resolved": "https://repo.micord.ru/repository/npm-all/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" }, + "debounce": { + "version": "1.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, "debug": { "version": "2.6.9", "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-2.6.9.tgz", @@ -3813,28 +3688,6 @@ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://repo.micord.ru/repository/npm-all/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, "define-property": { "version": "2.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-2.0.2.tgz", @@ -3900,28 +3753,12 @@ "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", "dev": true }, - "des.js": { - "version": "1.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "destroy": { "version": "1.0.4", "resolved": "https://repo.micord.ru/repository/npm-all/destroy/-/destroy-1.0.4.tgz", "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true - }, "dev-ip": { "version": "1.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/dev-ip/-/dev-ip-1.0.1.tgz", @@ -3934,25 +3771,6 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://repo.micord.ru/repository/npm-all/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "dir-glob": { "version": "2.2.2", "resolved": "https://repo.micord.ru/repository/npm-all/dir-glob/-/dir-glob-2.2.2.tgz", @@ -3999,12 +3817,6 @@ "entities": "^2.0.0" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, "domelementtype": { "version": "2.3.0", "resolved": "https://repo.micord.ru/repository/npm-all/domelementtype/-/domelementtype-2.3.0.tgz", @@ -4048,13 +3860,45 @@ }, "dependencies": { "tslib": { - "version": "2.6.3", - "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true } } }, + "dotenv": { + "version": "16.4.5", + "resolved": "https://repo.micord.ru/repository/npm-all/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true + }, + "dotenv-defaults": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz", + "integrity": "sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==", + "dev": true, + "requires": { + "dotenv": "^8.2.0" + }, + "dependencies": { + "dotenv": { + "version": "8.6.0", + "resolved": "https://repo.micord.ru/repository/npm-all/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true + } + } + }, + "dotenv-webpack": { + "version": "8.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/dotenv-webpack/-/dotenv-webpack-8.1.0.tgz", + "integrity": "sha512-owK1JcsPkIobeqjVrk6h7jPED/W6ZpdFsMPR+5ursB7/SdgDyO+VzAU+szK8C8u3qUhtENyYnj8eyXMR5kkGag==", + "dev": true, + "requires": { + "dotenv-defaults": "^2.0.2" + } + }, "downloadjs": { "version": "1.4.8", "resolved": "https://repo.micord.ru/repository/npm-all/downloadjs/-/downloadjs-1.4.8.tgz", @@ -4153,41 +3997,12 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "ejs": { - "version": "2.7.4", - "resolved": "https://repo.micord.ru/repository/npm-all/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true - }, "electron-to-chromium": { "version": "1.4.810", "resolved": "https://repo.micord.ru/repository/npm-all/electron-to-chromium/-/electron-to-chromium-1.4.810.tgz", "integrity": "sha512-Kaxhu4T7SJGpRQx99tq216gCq2nMxJo+uuT6uzz9l8TVN2stL7M06MIIXAtr9jsrLs2Glflgf2vMQRepxawOdQ==", "dev": true }, - "elliptic": { - "version": "6.5.5", - "resolved": "https://repo.micord.ru/repository/npm-all/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://repo.micord.ru/repository/npm-all/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4304,35 +4119,18 @@ "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "dev": true }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://repo.micord.ru/repository/npm-all/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://repo.micord.ru/repository/npm-all/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, "entities": { "version": "2.2.0", "resolved": "https://repo.micord.ru/repository/npm-all/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, + "envinfo": { + "version": "7.13.0", + "resolved": "https://repo.micord.ru/repository/npm-all/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true + }, "eonasdan-bootstrap-datetimepicker": { "version": "4.17.47-micord.4", "resolved": "https://repo.micord.ru/repository/npm-all/eonasdan-bootstrap-datetimepicker/-/eonasdan-bootstrap-datetimepicker-4.17.47-micord.4.tgz", @@ -4365,15 +4163,6 @@ "integrity": "sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==", "dev": true }, - "errno": { - "version": "0.1.8", - "resolved": "https://repo.micord.ru/repository/npm-all/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, "error-ex": { "version": "1.3.2", "resolved": "https://repo.micord.ru/repository/npm-all/error-ex/-/error-ex-1.3.2.tgz", @@ -4383,112 +4172,12 @@ "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.23.3", - "resolved": "https://repo.micord.ru/repository/npm-all/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "es-module-lexer": { + "version": "1.5.4", + "resolved": "https://repo.micord.ru/repository/npm-all/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://repo.micord.ru/repository/npm-all/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true - }, - "es-object-atoms": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "requires": { - "es-errors": "^1.3.0" - } - }, - "es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, "es6-promise": { "version": "4.2.8", "resolved": "https://repo.micord.ru/repository/npm-all/es6-promise/-/es6-promise-4.2.8.tgz", @@ -4523,12 +4212,12 @@ "dev": true }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, @@ -4589,16 +4278,6 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { "version": "0.7.0", "resolved": "https://repo.micord.ru/repository/npm-all/execa/-/execa-0.7.0.tgz", @@ -4657,158 +4336,6 @@ } } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "express": { - "version": "4.19.2", - "resolved": "https://repo.micord.ru/repository/npm-all/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "cookie": { - "version": "0.6.0", - "resolved": "https://repo.micord.ru/repository/npm-all/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "dev": true - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://repo.micord.ru/repository/npm-all/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://repo.micord.ru/repository/npm-all/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://repo.micord.ru/repository/npm-all/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "qs": { - "version": "6.11.0", - "resolved": "https://repo.micord.ru/repository/npm-all/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "send": { - "version": "0.18.0", - "resolved": "https://repo.micord.ru/repository/npm-all/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://repo.micord.ru/repository/npm-all/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - } - } - }, "extend-shallow": { "version": "3.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -4910,6 +4437,18 @@ "integrity": "sha512-eIgZvM9C3P05kg0qxfqaVU6Tma4QedCPIByQOcemV0vju8ot3cS2DpHi4m2G2JvbSMI152rjfLX0p1pkSdyPlQ==", "dev": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://repo.micord.ru/repository/npm-all/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, "fastparse": { "version": "1.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/fastparse/-/fastparse-1.1.2.tgz", @@ -4932,24 +4471,65 @@ } }, "file-loader": { - "version": "3.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "version": "6.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "ajv": { + "version": "6.12.6", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } } } @@ -4961,12 +4541,6 @@ "dev": true, "optional": true }, - "filesize": { - "version": "3.6.1", - "resolved": "https://repo.micord.ru/repository/npm-all/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", - "dev": true - }, "fill-range": { "version": "4.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/fill-range/-/fill-range-4.0.0.tgz", @@ -5025,28 +4599,11 @@ "locate-path": "^2.0.0" } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } + "flat": { + "version": "5.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true }, "flush-write-stream": { "version": "1.1.1", @@ -5069,27 +4626,12 @@ "resolved": "https://repo.micord.ru/repository/npm-all/font-awesome/-/font-awesome-4.7.0.tgz", "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==" }, - "for-each": { - "version": "0.3.3", - "resolved": "https://repo.micord.ru/repository/npm-all/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, "for-in": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/for-in/-/for-in-1.0.2.tgz", "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://repo.micord.ru/repository/npm-all/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -5170,24 +4712,6 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://repo.micord.ru/repository/npm-all/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://repo.micord.ru/repository/npm-all/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, "genfun": { "version": "5.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/genfun/-/genfun-5.0.0.tgz", @@ -5206,19 +4730,6 @@ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://repo.micord.ru/repository/npm-all/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, "get-stream": { "version": "4.1.0", "resolved": "https://repo.micord.ru/repository/npm-all/get-stream/-/get-stream-4.1.0.tgz", @@ -5228,17 +4739,6 @@ "pump": "^3.0.0" } }, - "get-symbol-description": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - } - }, "get-value": { "version": "2.0.6", "resolved": "https://repo.micord.ru/repository/npm-all/get-value/-/get-value-2.0.6.tgz", @@ -5280,29 +4780,11 @@ } } }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "globals": { "version": "11.12.0", @@ -5310,16 +4792,6 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, - "globalthis": { - "version": "1.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "requires": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - } - }, "globby": { "version": "7.1.1", "resolved": "https://repo.micord.ru/repository/npm-all/globby/-/globby-7.1.1.tgz", @@ -5347,15 +4819,6 @@ "resolved": "https://repo.micord.ru/repository/npm-all/google-libphonenumber/-/google-libphonenumber-3.0.9.tgz", "integrity": "sha512-sXrkMbVvS7lgCBFm2ndNrkUJbXXvRlO4xmjIxM6/ljE2Ue1D611aler51vPvvm2bL1faTqkOV7R28tS5c/vDyA==" }, - "gopd": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, "graceful-fs": { "version": "4.2.11", "resolved": "https://repo.micord.ru/repository/npm-all/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5363,21 +4826,12 @@ "dev": true }, "gzip-size": { - "version": "5.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "version": "6.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "duplexer": "^0.1.2" } }, "has-ansi": { @@ -5397,48 +4851,12 @@ } } }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.3" - } - }, "has-value": { "version": "1.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/has-value/-/has-value-1.0.0.tgz", @@ -5471,46 +4889,6 @@ } } }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://repo.micord.ru/repository/npm-all/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://repo.micord.ru/repository/npm-all/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "hasown": { "version": "2.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/hasown/-/hasown-2.0.2.tgz", @@ -5526,76 +4904,52 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://repo.micord.ru/repository/npm-all/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "dev": true - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://repo.micord.ru/repository/npm-all/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "version": "6.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", "he": "^1.2.0", - "param-case": "^3.0.3", + "param-case": "^3.0.4", "relateurl": "^0.2.7", - "terser": "^4.6.3" + "terser": "^5.10.0" }, "dependencies": { "commander": { - "version": "4.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "version": "8.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true } } }, "html-webpack-plugin": { - "version": "4.5.2", - "resolved": "https://repo.micord.ru/repository/npm-all/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", - "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "version": "5.6.0", + "resolved": "https://repo.micord.ru/repository/npm-all/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", "dev": true, "requires": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.20", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" } }, "htmlparser2": { @@ -5669,12 +5023,6 @@ } } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, "https-proxy-agent": { "version": "2.2.4", "resolved": "https://repo.micord.ru/repository/npm-all/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", @@ -5725,25 +5073,10 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", - "dev": true - }, "icss-utils": { - "version": "4.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "version": "5.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true }, "iferr": { @@ -5774,13 +5107,73 @@ "dev": true }, "import-local": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "version": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } } }, "imurmurhash": { @@ -5837,32 +5230,12 @@ "through": "^2.3.6" } }, - "internal-slot": { - "version": "1.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, "interpret": { "version": "1.4.0", "resolved": "https://repo.micord.ru/repository/npm-all/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, - "invariant": { - "version": "2.2.4", - "resolved": "https://repo.micord.ru/repository/npm-all/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, "invert-kv": { "version": "1.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/invert-kv/-/invert-kv-1.0.0.tgz", @@ -5875,12 +5248,6 @@ "integrity": "sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==", "dev": true }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://repo.micord.ru/repository/npm-all/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, "is-accessor-descriptor": { "version": "1.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", @@ -5890,31 +5257,12 @@ "hasown": "^2.0.0" } }, - "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://repo.micord.ru/repository/npm-all/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, "is-binary-path": { "version": "1.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -5924,28 +5272,12 @@ "binary-extensions": "^1.0.0" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-buffer": { "version": "1.1.6", "resolved": "https://repo.micord.ru/repository/npm-all/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://repo.micord.ru/repository/npm-all/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, "is-core-module": { "version": "2.14.0", "resolved": "https://repo.micord.ru/repository/npm-all/is-core-module/-/is-core-module-2.14.0.tgz", @@ -5964,24 +5296,6 @@ "hasown": "^2.0.0" } }, - "is-data-view": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dev": true, - "requires": { - "is-typed-array": "^1.1.13" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://repo.micord.ru/repository/npm-all/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-descriptor": { "version": "0.1.7", "resolved": "https://repo.micord.ru/repository/npm-all/is-descriptor/-/is-descriptor-0.1.7.tgz", @@ -6019,12 +5333,6 @@ "is-extglob": "^2.1.1" } }, - "is-negative-zero": { - "version": "2.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/is-number/-/is-number-3.0.0.tgz", @@ -6054,15 +5362,6 @@ "lodash.isfinite": "^3.3.2" } }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -6087,12 +5386,6 @@ "path-is-inside": "^1.0.1" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://repo.micord.ru/repository/npm-all/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -6102,67 +5395,12 @@ "isobject": "^3.0.1" } }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://repo.micord.ru/repository/npm-all/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "requires": { - "call-bind": "^1.0.7" - } - }, "is-stream": { "version": "1.1.0", "resolved": "https://repo.micord.ru/repository/npm-all/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true }, - "is-string": { - "version": "1.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.13", - "resolved": "https://repo.micord.ru/repository/npm-all/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "requires": { - "which-typed-array": "^1.1.14" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, "is-windows": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/is-windows/-/is-windows-1.0.2.tgz", @@ -6193,6 +5431,34 @@ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://repo.micord.ru/repository/npm-all/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "jquery": { "version": "3.3.1", "resolved": "https://repo.micord.ru/repository/npm-all/jquery/-/jquery-3.3.1.tgz", @@ -6244,6 +5510,12 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://repo.micord.ru/repository/npm-all/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6297,21 +5569,6 @@ "invert-kv": "^1.0.0" } }, - "leven": { - "version": "3.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, "limiter": { "version": "1.1.5", "resolved": "https://repo.micord.ru/repository/npm-all/limiter/-/limiter-1.1.5.tgz", @@ -6352,9 +5609,9 @@ } }, "loader-runner": { - "version": "2.4.0", - "resolved": "https://repo.micord.ru/repository/npm-all/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, "loader-utils": { @@ -6541,15 +5798,6 @@ "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", "dev": true }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://repo.micord.ru/repository/npm-all/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, "lower-case": { "version": "2.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/lower-case/-/lower-case-2.0.2.tgz", @@ -6560,9 +5808,9 @@ }, "dependencies": { "tslib": { - "version": "2.6.3", - "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true } } @@ -6622,21 +5870,6 @@ "ssri": "^6.0.0" } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://repo.micord.ru/repository/npm-all/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, "map-cache": { "version": "0.2.2", "resolved": "https://repo.micord.ru/repository/npm-all/map-cache/-/map-cache-0.2.2.tgz", @@ -6652,23 +5885,6 @@ "object-visit": "^1.0.0" } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://repo.micord.ru/repository/npm-all/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://repo.micord.ru/repository/npm-all/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, "mem": { "version": "1.1.0", "resolved": "https://repo.micord.ru/repository/npm-all/mem/-/mem-1.1.0.tgz", @@ -6678,26 +5894,10 @@ "mimic-fn": "^1.0.0" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://repo.micord.ru/repository/npm-all/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "merge-stream": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "micromatch": { @@ -6726,24 +5926,6 @@ "resolved": "https://repo.micord.ru/repository/npm-all/microplugin/-/microplugin-0.0.3.tgz", "integrity": "sha512-3wKXex4/iyALV0GX2juow66J9dabkEMgHeZAihdLTaRTzm0N+RubXioNPpfIQDPuBRxr3JbjNt7B0Lr/3yE9yQ==" }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://repo.micord.ru/repository/npm-all/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "mime": { "version": "1.4.1", "resolved": "https://repo.micord.ru/repository/npm-all/mime/-/mime-1.4.1.tgz", @@ -6772,42 +5954,68 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "0.6.0", - "resolved": "https://repo.micord.ru/repository/npm-all/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", - "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", + "version": "2.9.1", + "resolved": "https://repo.micord.ru/repository/npm-all/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz", + "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "^2.0.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "ajv": { + "version": "8.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true } } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, "minimatch": { "version": "3.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/minimatch/-/minimatch-3.1.2.tgz", @@ -6930,6 +6138,12 @@ "run-queue": "^1.0.3" } }, + "mrmime": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/ms/-/ms-2.0.0.tgz", @@ -6949,6 +6163,12 @@ "dev": true, "optional": true }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://repo.micord.ru/repository/npm-all/nanomatch/-/nanomatch-1.2.13.tgz", @@ -7015,9 +6235,9 @@ }, "dependencies": { "tslib": { - "version": "2.6.3", - "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true } } @@ -7033,45 +6253,6 @@ "safe-buffer": "^5.1.1" } }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://repo.micord.ru/repository/npm-all/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - } - } - }, "node-releases": { "version": "2.0.14", "resolved": "https://repo.micord.ru/repository/npm-all/node-releases/-/node-releases-2.0.14.tgz", @@ -7099,17 +6280,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, "npm-bundled": { "version": "1.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/npm-bundled/-/npm-bundled-1.1.2.tgz", @@ -7234,18 +6404,6 @@ } } }, - "object-inspect": { - "version": "1.13.2", - "resolved": "https://repo.micord.ru/repository/npm-all/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, "object-visit": { "version": "1.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/object-visit/-/object-visit-1.0.1.tgz", @@ -7255,33 +6413,6 @@ "isobject": "^3.0.0" } }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://repo.micord.ru/repository/npm-all/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.8", - "resolved": "https://repo.micord.ru/repository/npm-all/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", - "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", - "dev": true, - "requires": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "gopd": "^1.0.1", - "safe-array-concat": "^1.1.2" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://repo.micord.ru/repository/npm-all/object.pick/-/object.pick-1.3.0.tgz", @@ -7357,12 +6488,6 @@ "wordwrap": "~0.0.2" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://repo.micord.ru/repository/npm-all/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, "os-homedir": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/os-homedir/-/os-homedir-1.0.2.tgz", @@ -7396,24 +6521,12 @@ "os-tmpdir": "^1.0.0" } }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://repo.micord.ru/repository/npm-all/p-limit/-/p-limit-1.3.0.tgz", @@ -7473,12 +6586,6 @@ "which": "^1.3.1" } }, - "pako": { - "version": "1.0.11", - "resolved": "https://repo.micord.ru/repository/npm-all/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "parallel-transform": { "version": "1.2.0", "resolved": "https://repo.micord.ru/repository/npm-all/parallel-transform/-/parallel-transform-1.2.0.tgz", @@ -7501,41 +6608,9 @@ }, "dependencies": { "tslib": { - "version": "2.6.3", - "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true - } - } - }, - "parse-asn1": { - "version": "5.1.7", - "resolved": "https://repo.micord.ru/repository/npm-all/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "dev": true, - "requires": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true } } @@ -7549,12 +6624,6 @@ "error-ex": "^1.2.0" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true - }, "parseurl": { "version": "1.3.3", "resolved": "https://repo.micord.ru/repository/npm-all/parseurl/-/parseurl-1.3.3.tgz", @@ -7572,9 +6641,9 @@ }, "dependencies": { "tslib": { - "version": "2.6.3", - "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true } } @@ -7585,12 +6654,6 @@ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, "path-dirname": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/path-dirname/-/path-dirname-1.0.2.tgz", @@ -7627,12 +6690,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://repo.micord.ru/repository/npm-all/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, "path-type": { "version": "2.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/path-type/-/path-type-2.0.0.tgz", @@ -7642,19 +6699,6 @@ "pify": "^2.0.0" } }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "picocolors": { "version": "1.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/picocolors/-/picocolors-1.0.1.tgz", @@ -7768,80 +6812,56 @@ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true }, - "possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true - }, "postcss": { - "version": "7.0.39", - "resolved": "https://repo.micord.ru/repository/npm-all/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "version": "8.4.41", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" } }, "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - } + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true }, "postcss-modules-local-by-default": { - "version": "2.0.6", - "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", - "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", + "version": "4.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0", - "postcss-value-parser": "^3.3.1" + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" } }, "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "version": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" + "postcss-selector-parser": "^6.0.4" } }, "postcss-modules-values": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", - "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^7.0.6" + "icss-utils": "^5.0.0" } }, "postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "version": "6.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -7849,33 +6869,21 @@ } }, "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://repo.micord.ru/repository/npm-all/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "version": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "pretty-error": { - "version": "2.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, "requires": { "lodash": "^4.17.20", - "renderkid": "^2.0.4" + "renderkid": "^3.0.0" } }, - "process": { - "version": "0.11.10", - "resolved": "https://repo.micord.ru/repository/npm-all/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -7907,50 +6915,12 @@ "genfun": "^5.0.0" } }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, "pseudomap": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://repo.micord.ru/repository/npm-all/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "pump": { "version": "3.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/pump/-/pump-3.0.0.tgz", @@ -7990,32 +6960,6 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, - "qs": { - "version": "6.12.1", - "resolved": "https://repo.micord.ru/repository/npm-all/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.6" - } - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://repo.micord.ru/repository/npm-all/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://repo.micord.ru/repository/npm-all/randombytes/-/randombytes-2.1.0.tgz", @@ -8025,16 +6969,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://repo.micord.ru/repository/npm-all/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://repo.micord.ru/repository/npm-all/range-parser/-/range-parser-1.2.1.tgz", @@ -8065,24 +6999,65 @@ } }, "raw-loader": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/raw-loader/-/raw-loader-1.0.0.tgz", - "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==", + "version": "4.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "ajv": { + "version": "6.12.6", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } } } @@ -8196,18 +7171,6 @@ "safe-regex": "^1.1.0" } }, - "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://repo.micord.ru/repository/npm-all/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, "regexpu-core": { "version": "5.3.2", "resolved": "https://repo.micord.ru/repository/npm-all/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -8252,31 +7215,31 @@ "dev": true }, "renderkid": { - "version": "2.0.7", - "resolved": "https://repo.micord.ru/repository/npm-all/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, "requires": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" + "strip-ansi": "^6.0.1" }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "version": "5.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "version": "6.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" } } } @@ -8299,6 +7262,12 @@ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "1.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/require-main-filename/-/require-main-filename-1.0.1.tgz", @@ -8323,28 +7292,18 @@ } }, "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" + "resolve-from": "^5.0.0" } }, "resolve-from": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "resolve-url": { @@ -8394,16 +7353,6 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "run-async": { "version": "2.4.1", "resolved": "https://repo.micord.ru/repository/npm-all/run-async/-/run-async-2.4.1.tgz", @@ -8438,26 +7387,6 @@ "resolved": "https://repo.micord.ru/repository/npm-all/rxjs-compat/-/rxjs-compat-6.4.0.tgz", "integrity": "sha512-eo/O8RS83hJdJukCtA+IF6qnqa8FPOuVo+OPCzgVi+dbTle9KCdNv97IcQO0WwNVik7DJLKmf0F8uwzc0q40vw==" }, - "safe-array-concat": { - "version": "1.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://repo.micord.ru/repository/npm-all/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -8473,17 +7402,6 @@ "ret": "~0.1.10" } }, - "safe-regex-test": { - "version": "1.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - } - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://repo.micord.ru/repository/npm-all/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -8491,26 +7409,36 @@ "dev": true }, "schema-utils": { - "version": "2.7.1", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "version": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "dependencies": { "ajv": { - "version": "6.12.6", - "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" } }, "fast-deep-equal": { @@ -8518,6 +7446,12 @@ "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true } } }, @@ -8696,32 +7630,6 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://repo.micord.ru/repository/npm-all/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "set-function-name": { - "version": "2.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, "set-value": { "version": "2.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/set-value/-/set-value-2.0.1.tgz", @@ -8745,26 +7653,19 @@ } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://repo.micord.ru/repository/npm-all/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, "setprototypeof": { "version": "1.2.0", "resolved": "https://repo.micord.ru/repository/npm-all/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://repo.micord.ru/repository/npm-all/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "kind-of": "^6.0.2" } }, "shebang-command": { @@ -8793,18 +7694,6 @@ "rechoir": "^0.6.2" } }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://repo.micord.ru/repository/npm-all/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, "sifter": { "version": "0.5.4", "resolved": "https://repo.micord.ru/repository/npm-all/sifter/-/sifter-0.5.4.tgz", @@ -8823,6 +7712,17 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "sirv": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + } + }, "slash": { "version": "1.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/slash/-/slash-1.0.0.tgz", @@ -9069,15 +7969,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/source-list-map/-/source-list-map-2.0.1.tgz", @@ -9090,6 +7981,12 @@ "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", "dev": true }, + "source-map-js": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://repo.micord.ru/repository/npm-all/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -9216,16 +8113,6 @@ "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", "dev": true }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, "stream-each": { "version": "1.2.3", "resolved": "https://repo.micord.ru/repository/npm-all/stream-each/-/stream-each-1.2.3.tgz", @@ -9236,19 +8123,6 @@ "stream-shift": "^1.0.0" } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://repo.micord.ru/repository/npm-all/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, "stream-shift": { "version": "1.0.3", "resolved": "https://repo.micord.ru/repository/npm-all/stream-shift/-/stream-shift-1.0.3.tgz", @@ -9265,12 +8139,6 @@ "limiter": "^1.0.5" } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "dev": true - }, "string-width": { "version": "2.1.1", "resolved": "https://repo.micord.ru/repository/npm-all/string-width/-/string-width-2.1.1.tgz", @@ -9292,40 +8160,6 @@ } } }, - "string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://repo.micord.ru/repository/npm-all/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://repo.micord.ru/repository/npm-all/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://repo.micord.ru/repository/npm-all/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, "string_decoder": { "version": "1.1.1", "resolved": "https://repo.micord.ru/repository/npm-all/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9365,27 +8199,10 @@ "dev": true }, "style-loader": { - "version": "0.23.1", - "resolved": "https://repo.micord.ru/repository/npm-all/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } + "version": "3.3.4", + "resolved": "https://repo.micord.ru/repository/npm-all/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "dev": true }, "supports-color": { "version": "5.5.0", @@ -9419,9 +8236,9 @@ "integrity": "sha512-RMKSizWWlw4+IpDB385ugxn7Owd9W+HEtjYDQ6yO1FpsnER/vk6FbXRweUF+mvRi6EHgk8vDdUdtui7ReDwX3w==" }, "tapable": { - "version": "1.1.3", - "resolved": "https://repo.micord.ru/repository/npm-all/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { @@ -9463,67 +8280,78 @@ } }, "terser": { - "version": "4.8.1", - "resolved": "https://repo.micord.ru/repository/npm-all/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "version": "5.31.6", + "resolved": "https://repo.micord.ru/repository/npm-all/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "source-map-support": "~0.5.20" } }, "terser-webpack-plugin": { - "version": "1.2.4", - "resolved": "https://repo.micord.ru/repository/npm-all/terser-webpack-plugin/-/terser-webpack-plugin-1.2.4.tgz", - "integrity": "sha512-64IiILNQlACWZLzFlpzNaG0bpQ4ytaB7fwOsbpsdIV70AfLUmIGGeuKL0YV2WmtcrURjE2aOvHD4/lrFV3Rg+Q==", + "version": "5.3.10", + "resolved": "https://repo.micord.ru/repository/npm-all/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, "requires": { - "cacache": "^11.3.2", - "find-cache-dir": "^2.0.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "source-map": "^0.6.1", - "terser": "^3.17.0", - "webpack-sources": "^1.3.0", - "worker-farm": "^1.7.0" + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "ajv": { + "version": "6.12.6", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "terser": { - "version": "3.17.0", - "resolved": "https://repo.micord.ru/repository/npm-all/terser/-/terser-3.17.0.tgz", - "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { - "commander": "^2.19.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "serialize-javascript": { + "version": "6.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "terser": { + "version": "5.31.6", + "resolved": "https://repo.micord.ru/repository/npm-all/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" } } } @@ -9544,15 +8372,6 @@ "xtend": "~4.0.1" } }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://repo.micord.ru/repository/npm-all/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, "tmp": { "version": "0.0.33", "resolved": "https://repo.micord.ru/repository/npm-all/tmp/-/tmp-0.0.33.tgz", @@ -9562,12 +8381,6 @@ "os-tmpdir": "~1.0.2" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "dev": true - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://repo.micord.ru/repository/npm-all/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -9622,10 +8435,10 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, - "tryer": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "totalist": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true }, "tslib": { @@ -9663,74 +8476,6 @@ "tslib": "^1.8.1" } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://repo.micord.ru/repository/npm-all/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-length": { - "version": "1.0.6", - "resolved": "https://repo.micord.ru/repository/npm-all/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - } - }, "typedarray": { "version": "0.0.6", "resolved": "https://repo.micord.ru/repository/npm-all/typedarray/-/typedarray-0.0.6.tgz", @@ -9744,9 +8489,9 @@ "dev": true }, "typescript-parser": { - "version": "2.6.1-cg-fork", - "resolved": "https://repo.micord.ru/repository/npm-all/typescript-parser/-/typescript-parser-2.6.1-cg-fork.tgz", - "integrity": "sha1-Ia5YavQLprglaFhMGtwsgcehjlw=", + "version": "2.6.1-cg.2", + "resolved": "https://repo.micord.ru/repository/npm-all/typescript-parser/-/typescript-parser-2.6.1-cg.2.tgz", + "integrity": "sha512-z6EfolY6pcXEKLiwPQv+UXSpyinU4JhtsuokLY6j6iuU9564n4GPu7iqyzpJ2rKrqOIoDVTHCh0V+c344sxE1Q==", "dev": true, "requires": { "lodash": "^4.17.10", @@ -9761,18 +8506,6 @@ "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==", "dev": true }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, "undici-types": { "version": "5.26.5", "resolved": "https://repo.micord.ru/repository/npm-all/undici-types/-/undici-types-5.26.5.tgz", @@ -9920,63 +8653,18 @@ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "dev": true }, - "url": { - "version": "0.11.3", - "resolved": "https://repo.micord.ru/repository/npm-all/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "requires": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://repo.micord.ru/repository/npm-all/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - } - } - }, "use": { "version": "3.1.1", "resolved": "https://repo.micord.ru/repository/npm-all/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "util": { - "version": "0.11.1", - "resolved": "https://repo.micord.ru/repository/npm-all/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://repo.micord.ru/repository/npm-all/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, "utila": { "version": "0.4.0", "resolved": "https://repo.micord.ru/repository/npm-all/utila/-/utila-0.4.0.tgz", @@ -9995,12 +8683,6 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, - "v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://repo.micord.ru/repository/npm-all/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://repo.micord.ru/repository/npm-all/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -10026,446 +8708,263 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "watchpack": { - "version": "1.7.5", - "resolved": "https://repo.micord.ru/repository/npm-all/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "version": "2.4.2", + "resolved": "https://repo.micord.ru/repository/npm-all/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - }, - "dependencies": { - "anymatch": { - "version": "3.1.3", - "resolved": "https://repo.micord.ru/repository/npm-all/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.3.0", - "resolved": "https://repo.micord.ru/repository/npm-all/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.3", - "resolved": "https://repo.micord.ru/repository/npm-all/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "chokidar": { - "version": "3.6.0", - "resolved": "https://repo.micord.ru/repository/npm-all/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://repo.micord.ru/repository/npm-all/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://repo.micord.ru/repository/npm-all/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://repo.micord.ru/repository/npm-all/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://repo.micord.ru/repository/npm-all/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://repo.micord.ru/repository/npm-all/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - } + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, "webpack": { - "version": "4.32.2", - "resolved": "https://repo.micord.ru/repository/npm-all/webpack/-/webpack-4.32.2.tgz", - "integrity": "sha512-F+H2Aa1TprTQrpodRAWUMJn7A8MgDx82yQiNvYMaj3d1nv3HetKU0oqEulL9huj8enirKi8KvEXQ3QtuHF89Zg==", + "version": "5.90.1", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack/-/webpack-5.90.1.tgz", + "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "ajv": { + "version": "6.12.6", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } + }, + "enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "serialize-javascript": { + "version": "6.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.31.6", + "resolved": "https://repo.micord.ru/repository/npm-all/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://repo.micord.ru/repository/npm-all/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true } } }, "webpack-bundle-analyzer": { - "version": "3.3.2", - "resolved": "https://repo.micord.ru/repository/npm-all/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz", - "integrity": "sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA==", + "version": "4.10.1", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-walk": "^6.1.1", - "bfj": "^6.1.1", - "chalk": "^2.4.1", - "commander": "^2.18.0", - "ejs": "^2.6.1", - "express": "^4.16.3", - "filesize": "^3.6.1", - "gzip-size": "^5.0.0", - "lodash": "^4.17.10", - "mkdirp": "^0.5.1", - "opener": "^1.5.1", - "ws": "^6.0.0" + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "is-plain-object": "^5.0.0", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" }, "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, "ws": { - "version": "6.2.3", - "resolved": "https://repo.micord.ru/repository/npm-all/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "version": "7.5.10", + "resolved": "https://repo.micord.ru/repository/npm-all/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true } } }, "webpack-cli": { - "version": "3.3.2", - "resolved": "https://repo.micord.ru/repository/npm-all/webpack-cli/-/webpack-cli-3.3.2.tgz", - "integrity": "sha512-FLkobnaJJ+03j5eplxlI0TUxhGCOdfewspIGuvDVtpOlrAuKMFC57K42Ukxqs1tn8947/PM6tP95gQc0DCzRYA==", + "version": "5.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-cli/-/webpack-cli-5.0.2.tgz", + "integrity": "sha512-4y3W5Dawri5+8dXm3+diW6Mn1Ya+Dei6eEVAdIduAmYNLzv1koKVAqsfgrrc9P2mhrYHQphx5htnGkcNwtubyQ==", "dev": true, "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.5" + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.2", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://repo.micord.ru/repository/npm-all/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "commander": { + "version": "10.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true }, - "cliui": { - "version": "4.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://repo.micord.ru/repository/npm-all/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "interpret": { + "version": "3.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://repo.micord.ru/repository/npm-all/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "resolve": "^1.20.0" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "invert-kv": { + "shebang-command": { "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "resolved": "https://repo.micord.ru/repository/npm-all/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "shebang-regex": "^3.0.0" } }, - "locate-path": { + "shebang-regex": { "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://repo.micord.ru/repository/npm-all/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "resolved": "https://repo.micord.ru/repository/npm-all/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://repo.micord.ru/repository/npm-all/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "which": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://repo.micord.ru/repository/npm-all/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://repo.micord.ru/repository/npm-all/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://repo.micord.ru/repository/npm-all/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://repo.micord.ru/repository/npm-all/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://repo.micord.ru/repository/npm-all/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "isexe": "^2.0.0" } } } @@ -10480,6 +8979,17 @@ "uuid": "^3.3.2" } }, + "webpack-merge": { + "version": "5.10.0", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + } + }, "webpack-sources": { "version": "1.3.0", "resolved": "https://repo.micord.ru/repository/npm-all/webpack-sources/-/webpack-sources-1.3.0.tgz", @@ -10507,52 +9017,23 @@ "isexe": "^2.0.0" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://repo.micord.ru/repository/npm-all/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, "which-module": { "version": "2.0.1", "resolved": "https://repo.micord.ru/repository/npm-all/which-module/-/which-module-2.0.1.tgz", "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, - "which-typed-array": { - "version": "1.1.15", - "resolved": "https://repo.micord.ru/repository/npm-all/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - } + "wildcard": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true }, "wordwrap": { "version": "0.0.3", "resolved": "https://repo.micord.ru/repository/npm-all/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==" }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://repo.micord.ru/repository/npm-all/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://repo.micord.ru/repository/npm-all/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -10681,9 +9162,19 @@ } }, "zone.js": { - "version": "0.8.29", - "resolved": "https://repo.micord.ru/repository/npm-all/zone.js/-/zone.js-0.8.29.tgz", - "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==" + "version": "0.11.8", + "resolved": "https://repo.micord.ru/repository/npm-all/zone.js/-/zone.js-0.11.8.tgz", + "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } } } } diff --git a/frontend/package.json b/frontend/package.json index c3ac1ab..4479bde 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,5 +1,5 @@ { - "name": "webbpm-frontend", + "name": "ervu-dashboard", "version": "1.0.0", "scripts": { "lite": "node ./node_modules/lite-server/bin/lite-server", @@ -26,8 +26,8 @@ "@angular/platform-browser": "7.2.15", "@angular/platform-browser-dynamic": "7.2.15", "@angular/router": "7.2.15", - "@ng-bootstrap/ng-bootstrap": "4.1.1", - "@webbpm/base-package": "3.177.2", + "@webbpm/base-package": "3.178.2", + "@ng-bootstrap/ng-bootstrap": "4.2.2-micord.1", "ag-grid-angular": "29.0.0-micord.4", "ag-grid-community": "29.0.0-micord.4", "angular-calendar": "0.28.28", @@ -61,7 +61,7 @@ "systemjs": "0.21.4", "systemjs-plugin-babel": "0.0.25", "tslib": "1.9.3", - "zone.js": "0.8.29" + "zone.js": "0.11.8" }, "devDependencies": { "@angular-devkit/build-optimizer": "0.13.9", @@ -69,33 +69,36 @@ "@angular/cli": "7.3.9", "@angular/compiler-cli": "7.2.15", "@angular/platform-server": "7.2.15", - "@babel/core": "7.9.6", - "@babel/preset-env": "7.9.6", + "@babel/core": "7.18.10", + "@babel/preset-env": "7.18.10", "@types/bootstrap": "3.3.39", + "@types/eslint": "7.2.5", "@types/jquery": "2.0.49", "@types/node": "7.0.5", "@types/selectize": "0.12.33", "angular-router-loader": "0.8.5", "angular2-template-loader": "0.6.2", - "babel-loader": "8.1.0", + "babel-loader": "9.1.2", "codelyzer": "5.2.1", "copy-webpack-plugin": "5.0.3", "cross-env": "5.2.1", - "css-loader": "2.1.0", + "css-loader": "6.11.0", "del": "2.2.2", - "file-loader": "3.0.1", - "html-webpack-plugin": "4.5.2", + "dotenv": "^16.4.5", + "dotenv-webpack": "^8.1.0", + "file-loader": "6.2.0", + "html-webpack-plugin": "5.6.0", "lite-server": "2.3.0", - "mini-css-extract-plugin": "0.6.0", + "mini-css-extract-plugin": "2.9.1", "mkdirp": "0.5.1", - "raw-loader": "1.0.0", - "style-loader": "0.23.1", - "terser-webpack-plugin": "1.2.4", + "raw-loader": "4.0.2", + "style-loader": "3.3.4", + "terser-webpack-plugin": "5.3.10", "tslint": "5.13.1", "typescript": "3.2.4", - "typescript-parser": "2.6.1-cg-fork", - "webpack": "4.32.2", - "webpack-bundle-analyzer": "3.3.2", - "webpack-cli": "3.3.2" + "typescript-parser": "2.6.1-cg.2", + "webpack": "5.90.1", + "webpack-bundle-analyzer": "4.10.1", + "webpack-cli": "5.0.2" } } diff --git a/frontend/pom.xml b/frontend/pom.xml index e805c67..6967141 100644 --- a/frontend/pom.xml +++ b/frontend/pom.xml @@ -4,7 +4,7 @@ ru.micord.ervu dashboard - 1.0.0-SNAPSHOT + 1.5.0-SNAPSHOT ru.micord.ervu.dashboard diff --git a/frontend/src/resources/css/components-dashboard.css b/frontend/src/resources/css/components-dashboard.css index 0bb3f7a..6dabc87 100644 --- a/frontend/src/resources/css/components-dashboard.css +++ b/frontend/src/resources/css/components-dashboard.css @@ -4,114 +4,116 @@ padding-right: var(--indent-mini); } -.webbpm.ervu_dashboard .bread-crumb { - .form-group { - margin-bottom: 0; - } - label { - margin-right: 0; - } - .btn { - font-size: var(--size-text-primary); - padding: 0; - margin: 0; - border: 0; - background-color: transparent; - box-shadow: none !important; - } +.webbpm.ervu_dashboard .bread-crumb .form-group { + margin-bottom: 0; +} +.webbpm.ervu_dashboard .bread-crumb label { + margin-right: 0; +} +.webbpm.ervu_dashboard .bread-crumb .btn, +.webbpm.ervu_dashboard .top-btn-block .bread-crumb :is(button-component, static-route-navigation-button) .btn { + font-size: var(--size-text-primary); + padding: 0; + margin: 0; + border: 0; + background-color: transparent; + box-shadow: none !important; +} +.webbpm.ervu_dashboard .top-btn-block .bread-crumb :is(button-component, static-route-navigation-button) .btn::after { + display: none; +} +.webbpm.ervu_dashboard .top-btn-block .bread-crumb :is(button-component, static-route-navigation-button) { + padding-right: var(--indent-mini); } .webbpm.ervu_dashboard .top-btn-block { margin: var(--indent-small) 0 var(--indent-mini) 0; - - .form-group { - margin-bottom: 0; - } - .component-float { - display: block; - } - :is(button-component, static-route-navigation-button) { - padding-right: 0; - border-radius: 20px; - - & + :is(button-component, static-route-navigation-button) { - margin-left: var(--indent-base); - } - .btn { - position: relative; - font-size: var(--size-text-primary); - line-height: 1.3; - padding: var(--indent-mini) var(--indent-xlarge) var(--indent-mini) var(--indent-xbase); - margin-bottom: 0; - border-radius: 100px; - border: 0; - background-color: var(--color-dark-20); - - &::after { - position: absolute; - content: "\f285"; - position: absolute; - font-family: bootstrap-icons !important; - font-weight: 800 !important; - font-size: var(--size-text-secondary); - top: 50%; - transform: translateY(-50%); - margin-left: var(--indent-small); - } - } - } - .selectize-control { - font-size: inherit; - background-color: transparent; - - .selectize-input { - display: flex; - min-height: max-content; - padding: var(--indent-mini) var(--indent-xlarge) var(--indent-mini) var(--indent-xbase); - border-radius: 100px; - border: 0; - background: var(--color-dark-20); - - &::after { - position: absolute; - content: "\f282"; - color: var(--color-text-primary); - font-family: bootstrap-icons !important; - font-weight: 800 !important; - font-size: var(--size-text-secondary); - top: calc((50% - var(--size-text-secondary)/ 2)); - right: var(--indent-base); - height: auto; - width: auto; - border: 0; - } - - &.dropdown-active { - background-color: var(--color-success); - - &::after { - transform: rotate(180deg); - } - } - .item, input { - color: var(--color-text-primary); - font-size: var(--size-text-primary); - line-height: 1.3 !important; - } - .item { - display: block; - } - input::-webkit-input-placeholder, input::placeholder { - color: var(--color-text-primary); - } - } - .selectize-dropdown-content { - background: var(--color-dark-20); - } - } } -.webbpm.ervu_dashboard .arrow-btn .btn { +.webbpm.ervu_dashboard .top-btn-block .form-group { + margin-bottom: 0; +} +.webbpm.ervu_dashboard .top-btn-block .component-float { + display: block; +} +.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) { + padding-right: 0; + border-radius: 20px; +} +.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) + :is(button-component, static-route-navigation-button) { + margin-left: var(--indent-base); +} +.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) .btn { + position: relative; + font-size: var(--size-text-primary); + line-height: 1.3; + padding: var(--indent-mini) var(--indent-xlarge) var(--indent-mini) var(--indent-xbase); + margin-bottom: 0; + border-radius: 100px; + border: 0; + background-color: var(--color-dark-20); +} +.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) .btn::after { + position: absolute; + content: "\f285"; + position: absolute; + font-family: bootstrap-icons !important; + font-weight: 800 !important; + font-size: var(--size-text-secondary); + top: 50%; + transform: translateY(-50%); + margin-left: var(--indent-small); +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control { + font-size: inherit; + background-color: transparent; +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input { + display: flex; + min-height: max-content; + padding: var(--indent-mini) var(--indent-xlarge) var(--indent-mini) var(--indent-xbase); + border-radius: 100px; + border: 0; + background: var(--color-dark-20); +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input::after { + position: absolute; + content: "\f282"; + color: var(--color-text-primary); + font-family: bootstrap-icons !important; + font-weight: 800 !important; + font-size: var(--size-text-secondary); + top: calc((50% - var(--size-text-secondary)/ 2)); + right: var(--indent-base); + height: auto; + width: auto; + border: 0; +} + +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input.dropdown-active { + background-color: var(--color-success); +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input.dropdown-active::after { + transform: rotate(180deg); +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input .item, +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input input { + color: var(--color-text-primary); + font-size: var(--size-text-primary); + line-height: 1.3 !important; +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input .item { + display: block; +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input input::-webkit-input-placeholder, +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input input::placeholder { + color: var(--color-text-primary); +} +.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input .selectize-dropdown-content { + background: var(--color-dark-20); +} + +.webbpm.ervu_dashboard :is(.arrow-btn, .delete-btn) .btn { position: relative; display: grid; place-items: center; @@ -122,19 +124,22 @@ border-radius: 100px; border: 0; background-color: var(--color-text-secondary); - - &::before { - position: absolute; - content: "\f285"; - position: absolute; - color: var(--color-dark); - font-family: bootstrap-icons !important; - font-weight: 800 !important; - font-size: var(--size-text-secondary); - top: 50%; - transform: translateY(-50%); - -webkit-text-stroke-width: thin; - } +} +.webbpm.ervu_dashboard :is(.arrow-btn, .delete-btn) .btn::before { + position: absolute; + color: var(--color-dark); + font-family: bootstrap-icons !important; + font-weight: 800 !important; + font-size: var(--size-text-secondary); + top: 50%; + transform: translateY(-50%); + -webkit-text-stroke-width: thin; +} +.webbpm.ervu_dashboard .arrow-btn .btn::before { + content: "\f285"; +} +.webbpm.ervu_dashboard .delete-btn .btn::before { + content: "\f659"; } .webbpm.ervu_dashboard :is(.title, .subtitle) { @@ -142,10 +147,9 @@ font-family: 'GilroyM'; line-height: 1.1; padding: 0; - - .form-group { - margin-bottom: 0; - } +} +.webbpm.ervu_dashboard :is(.title, .subtitle) .form-group { + margin-bottom: 0; } .webbpm.ervu_dashboard .title { font-size: var(--size-text-title); @@ -179,24 +183,21 @@ border-top: 1px solid var(--color-primary-20); } -.webbpm.ervu_dashboard .text-invert { - &.mute > div > div:last-of-type { - line-height: inherit !important; - font-size: inherit !important; - } - & > div { - flex-direction: row-reverse; - - label { - width: auto; - padding-left: 2px; - margin-right: 0; - } - & > div:last-of-type { - font-family: 'GilroyM'; - overflow: visible; - } - } +.webbpm.ervu_dashboard .text-invert.mute > div > div:last-of-type { + line-height: inherit !important; + font-size: inherit !important; +} +.webbpm.ervu_dashboard .text-invert > div { + flex-direction: row-reverse; +} +.webbpm.ervu_dashboard .text-invert > div label { + width: auto; + padding-left: 2px; + margin-right: 0; +} +.webbpm.ervu_dashboard .text-invert > div > div:last-of-type { + font-family: 'GilroyM'; + overflow: visible; } .webbpm.ervu_dashboard [class*="btn-text-"] .btn { @@ -210,18 +211,17 @@ border: 0; border-radius: 100px; background-color: var(--color-text-secondary); - - &::after { - content: ""; - position: absolute; - font-family: bootstrap-icons !important; - font-weight: 800 !important; - font-size: var(--size-text-secondary); - top: 50%; - transform: translateY(-50%); - margin-left: var(--indent-small); - -webkit-text-stroke-width: thin; - } +} +.webbpm.ervu_dashboard [class*="btn-text-"] .btn::after { + content: ""; + position: absolute; + font-family: bootstrap-icons !important; + font-weight: 800 !important; + font-size: var(--size-text-secondary); + top: 50%; + transform: translateY(-50%); + margin-left: var(--indent-small); + -webkit-text-stroke-width: thin; } .webbpm.ervu_dashboard .btn-text-arrow-r .btn::after { content: "\f285"; @@ -230,74 +230,118 @@ content: "\f659"; } -.webbpm.ervu_dashboard text { - &.num-addtitle { - & > div > div:first-child { - color: var(--color-text-secondary); - align-items: center; - } - & > div > div:last-child { - font-family: 'GilroySB'; - font-size: var(--size-num-primary); - line-height: normal; - } - } +.webbpm.ervu_dashboard text label { + width: min(7.5vw, 9.375rem) ; /*150px*/ +} +.webbpm.ervu_dashboard text.num-addtitle > div > div:first-child { + color: var(--color-text-secondary); + align-items: center; +} +.webbpm.ervu_dashboard text.num-addtitle > div > div:last-child { + font-family: 'GilroySB'; + font-size: var(--size-num-primary); + line-height: normal; } .webbpm.ervu_dashboard .selectize-dropdown { background-color: transparent; - - .selectize-dropdown-content { - max-height: min-content; - border-radius: 24px; - border: 1px solid var(--color-text-secondary); - background: - linear-gradient(180deg, rgba(19, 46, 55, 0.5) 0%, rgba(19, 46, 55, 0.7) 100%), - linear-gradient(180deg, rgba(8, 131, 198, 0.5) 0%, rgba(8, 131, 198, 0.7) 100%); - backdrop-filter: var(--bg-blur-40); - box-shadow: var(--bg-shadow); - - .option { - color: var(--color-text-primary); - font-size: var(--size-text-primary); - padding: var(--indent-base) var(--indent-xbase); - - &.active { - background-color: transparent; - } - & + .option { - border-top: 1px solid rgba(244, 252, 255, 0.05); - } - } - } +} +.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content { + max-height: min-content; + border-radius: 24px; + border: 1px solid var(--color-text-secondary); + background: + linear-gradient(180deg, rgba(19, 46, 55, 0.5) 0%, rgba(19, 46, 55, 0.7) 100%), + linear-gradient(180deg, rgba(8, 131, 198, 0.5) 0%, rgba(8, 131, 198, 0.7) 100%); + backdrop-filter: var(--bg-blur-40); + box-shadow: var(--bg-shadow); +} +.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content .option { + color: var(--color-text-primary); + font-size: var(--size-text-primary); + padding: var(--indent-base) var(--indent-xbase); +} +.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content .option.active { + background-color: transparent; +} +.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content .option + .option { + border-top: 1px solid rgba(244, 252, 255, 0.05); } -.webbpm.ervu_dashboard tab-container { - .nav-tabs { - border: 0; +.webbpm.ervu_dashboard tab-container .nav-tabs { + border: 0; +} +.webbpm.ervu_dashboard tab-container .nav-tabs .nav-item + .nav-item { + margin-left: var(--indent-small); +} +.webbpm.ervu_dashboard tab-container .nav-tabs .nav-link { + color: var(--color-text-mute); + padding: 0; + border: 0; + background-color: transparent; +} +.webbpm.ervu_dashboard tab-container .nav-tabs .active .nav-link { + color: var(--color-success); + padding-bottom: var(--indent-xmini); + border-bottom: 2px solid var(--color-success); + background-color: transparent; +} +.webbpm.ervu_dashboard tab-container .nav-tabs ~ .tab-active > .active { + padding: 0; + margin: var(--indent-base) 0 0; + border: 0; + background-color: transparent; +} - .nav-item + .nav-item { - margin-left: var(--indent-small); - } - .nav-link { - color: var(--color-text-mute); - padding: 0; - border: 0; - background-color: transparent; - } - .active .nav-link { - color: var(--color-success); - padding-bottom: var(--indent-xmini); - border-bottom: 2px solid var(--color-success); - background-color: transparent; - } - & ~ .tab-active > .active { - padding: 0; - margin: var(--indent-base) 0 0; - border: 0; - background-color: transparent; - } - } +.webbpm.ervu_dashboard .tab-vertical > div { + flex-direction: row; +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs { + flex-direction: column; + flex-wrap: nowrap; + width: min(20vw, 23.75rem); /*380*/ + padding-right: var(--indent-large); + margin-right: var(--indent-large); +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs ~ .tab-active { + width: calc(100% - min(20vw, 23.75rem) - var(--indent-large)); +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs ~ .tab-active > .active { + margin: 0; +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs .nav-item { + position: relative; + padding: var(--indent-small) var(--indent-xlarge) var(--indent-small) var(--indent-base); + border-radius: 8px; +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs .nav-item.active { + background-color: var(--color-success); +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs .nav-item.active::before { + position: absolute; + content: "\f285"; + font-family: bootstrap-icons !important; + font-weight: 800 !important; + font-size: var(--size-text-secondary); + top: 50%; + right: var(--indent-small); + transform: translateY(-50%); + -webkit-text-stroke-width: thin; +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs .nav-item + .nav-item { + margin-left: 0; +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs .nav-link { + color: var(--color-text-secondary); +} +.webbpm.ervu_dashboard .tab-vertical .nav-tabs .nav-link.disabled { + color: var(--color-text-mute); +} + +.webbpm.ervu_dashboard .tab-vertical .nav-tabs .active .nav-link { + color: var(--color-text-primary); + padding-bottom: 0; + border: 0; } .webbpm.ervu_dashboard .brick-group { @@ -307,26 +351,24 @@ border-radius: 8px; border: 1px solid var(--color-primary-20); background-color: var(--bg-brick); - - text { - display: flex; - align-items: center; - - &:first-child { - flex: 1; - } - .form-group { - margin-bottom: 0; - & > div { - align-items: center; - white-space: nowrap; - } - } - &.text-invert .form-group > div:last-child { - color: var(--color-text-primary); - font-size: var(--size-text-subtitle); - } - } +} +.webbpm.ervu_dashboard .brick-group text { + display: flex; + align-items: center; +} +.webbpm.ervu_dashboard .brick-group text:first-child { + flex: 1; +} +.webbpm.ervu_dashboard .brick-group text .form-group { + margin-bottom: 0; +} +.webbpm.ervu_dashboard .brick-group text .form-group > div { + align-items: center; + white-space: nowrap; +} +.webbpm.ervu_dashboard .brick-group text.text-invert .form-group > div:last-child { + color: var(--color-text-primary); + font-size: var(--size-text-subtitle); } .webbpm.ervu_dashboard .vertical-container > .brick-group + .brick-group { margin-top: var(--indent-mini); @@ -340,98 +382,86 @@ border-radius: 8px; border: 0; background-color: var(--color-dark-20); - - & + .list-group { - margin-top: var(--indent-base); - } - & > div > * + text { - margin: var(--indent-base) 0 var(--indent-mini); - } - .list-group + .list-group { - margin-top: var(--indent-mini); - } - .horizontal-container { - align-items: center; - } - vbox:first-child { - flex: 1; - } - text .form-group { - align-items: baseline; - margin-bottom: 0; - } - .mute { - white-space: nowrap; - } +} +.webbpm.ervu_dashboard .list-group + .list-group { + margin-top: var(--indent-base); +} +.webbpm.ervu_dashboard .list-group > div > * + text { + margin: var(--indent-base) 0 var(--indent-mini); +} +.webbpm.ervu_dashboard .list-group .list-group + .list-group { + margin-top: var(--indent-mini); +} +.webbpm.ervu_dashboard .list-group .horizontal-container { + align-items: center; +} +.webbpm.ervu_dashboard .list-group vbox:first-child { + flex: 1; +} +.webbpm.ervu_dashboard .list-group text .form-group { + align-items: baseline; + margin-bottom: 0; +} +.webbpm.ervu_dashboard .list-group .mute { + white-space: nowrap; } -.webbpm.ervu_dashboard .list-plain { - & > .vertical-container > hbox + hbox { - margin-top: var(--indent-xbase); - } - .horizontal-container > text { - flex: 1; - color: var(--color-text-secondary); - font-family: 'GilroyM'; - font-size: var(--size-text-subtitle); - line-height: normal; - - & + * { - flex: 1; - } - } - label { - width: auto; - margin-right: 0; - } - .form-group { - align-items: baseline; - margin-bottom: 0; - } - .text-invert:not(.mute) > div > div:first-of-type { - color: var(--color-text-secondary); - } - .text-invert > div > div:last-of-type { - font-family: 'GilroySB'; - font-size: var(--size-num-subtitle); - line-height: 1; - } - .mute { - white-space: nowrap; - } - &.list-plan-small { - .horizontal-container { - align-items: center; - - & > text { - color: var(--color-text-primary); - font-family: 'Gilroy'; - font-size: var(--size-text-primary); - padding-top: 0; - - & + * { - flex: 0 1 auto; - } - } - } - .text-invert > div > div:last-of-type { - font-size: var(--size-num-primary); - line-height: normal; - } - } +.webbpm.ervu_dashboard .list-plain > .vertical-container > hbox + hbox { + margin-top: var(--indent-xbase); } -.webbpm.ervu_dashboard .list-common { - text { - label { - color: var(--color-text-secondary); - width: auto; - } - & > div > div:last-of-type { - flex: 1; - justify-content: end; - overflow: visible; - } - } +.webbpm.ervu_dashboard .list-plain .horizontal-container > text { + flex: 1; + color: var(--color-text-secondary); + font-family: 'GilroyM'; + font-size: var(--size-text-subtitle); + line-height: normal; +} +.webbpm.ervu_dashboard .list-plain .horizontal-container > text + * { + flex: 1; +} +.webbpm.ervu_dashboard .list-plain label { + width: auto; + margin-right: 0; +} +.webbpm.ervu_dashboard .list-plain .form-group { + align-items: baseline; + margin-bottom: 0; +} +.webbpm.ervu_dashboard .list-plain .text-invert:not(.mute) > div > div:first-of-type { + color: var(--color-text-secondary); +} +.webbpm.ervu_dashboard .list-plain .text-invert > div > div:last-of-type { + font-family: 'GilroySB'; + font-size: var(--size-num-subtitle); + line-height: 1; +} +.webbpm.ervu_dashboard .list-plain .mute { + white-space: nowrap; +} +.webbpm.ervu_dashboard .list-plain.list-plan-small .horizontal-container { + align-items: center; +} +.webbpm.ervu_dashboard .list-plain.list-plan-small .horizontal-container > text { + color: var(--color-text-primary); + font-family: 'Gilroy'; + font-size: var(--size-text-primary); + padding-top: 0; +} +.webbpm.ervu_dashboard .list-plain.list-plan-small .horizontal-container > text + * { + flex: 0 1 auto; +} +.webbpm.ervu_dashboard .list-plain.list-plan-small .text-invert > div > div:last-of-type { + font-size: var(--size-num-primary); + line-height: normal; +} +.webbpm.ervu_dashboard .list-common text label { + color: var(--color-text-secondary); + width: auto; +} +.webbpm.ervu_dashboard .list-common text > div > div:last-of-type { + flex: 1; + justify-content: end; + overflow: visible; } .webbpm.ervu_dashboard .graph-chart .chart-content { @@ -454,183 +484,155 @@ width: min(14vw, 18.5rem); height: min(14vw, 18.5rem); } -.webbpm.ervu_dashboard .graph-legend { - .horizontal-container { - align-items: center; - - & > text { - flex: 1; - - &.text-invert:not(.mute) > div > div:last-of-type { - font-size: var(--size-num-primary); - } - } - } - .mute { - margin-top: var(--indent-small); - } - .lined { - padding-top: var(--indent-small); - margin-top: var(--indent-small); - } +.webbpm.ervu_dashboard .graph-legend .horizontal-container { + align-items: center; } -.webbpm.ervu_dashboard .graph-legend-column { - & > .vertical-container { - & > * + * { - padding-top: var(--indent-small); - margin-top: var(--indent-small); - border-top: 1px solid var(--color-primary-20); - } - & > hbox { - [class*="legend-col"] { - margin-top: var(--indent-xmini); - } - } - & > vbox { - } - .text-invert { - &:not(.mute) { - font-size: var(--size-num-primary); - margin-top: var(--indent-xmini); - - label { - font-size: var(--size-text-primary); - color: var(--color-text-secondary); - } - } - & > div { - justify-content: flex-end; - } - } - } +.webbpm.ervu_dashboard .graph-legend .horizontal-container > text { + flex: 1; } -.webbpm.ervu_dashboard .graph-legend-row { - & > .horizontal-container > vbox { - padding-right: 0; - - & + vbox { - padding-left: var(--indent-base); - margin-left: var(--indent-base); - border-left: 1px solid var(--color-primary-20); - } - & > .vertical-container { - height: 100%; - - [class*="legend-col"] { - padding-bottom: var(--indent-base); - margin-bottom: auto; - } - .text-invert:not(.mute) { - font-size: var(--size-num-primary); - label { - font-size: var(--size-text-primary); - color: var(--color-text-secondary); - } - } - } - } +.webbpm.ervu_dashboard .graph-legend .horizontal-container > text.text-invert:not(.mute) > div > div:last-of-type { + font-size: var(--size-num-primary); +} +.webbpm.ervu_dashboard .graph-legend .mute { + margin-top: var(--indent-small); +} +.webbpm.ervu_dashboard .graph-legend .lined { + padding-top: var(--indent-small); + margin-top: var(--indent-small); +} +.webbpm.ervu_dashboard .graph-legend-column > .vertical-container > * + * { + padding-top: var(--indent-small); + margin-top: var(--indent-small); + border-top: 1px solid var(--color-primary-20); +} +.webbpm.ervu_dashboard .graph-legend-column > .vertical-container > hbox [class*="legend-col"] { + margin-top: var(--indent-xmini); +} +.webbpm.ervu_dashboard .graph-legend-column > .vertical-container .text-invert:not(.mute) { + font-size: var(--size-num-primary); + margin-top: var(--indent-xmini); +} +.webbpm.ervu_dashboard .graph-legend-column > .vertical-container .text-invert:not(.mute) label { + font-size: var(--size-text-primary); + color: var(--color-text-secondary); +} +.webbpm.ervu_dashboard .graph-legend-column > .vertical-container .text-invert > div { + justify-content: flex-end; +} +.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox { + padding-right: 0; +} +.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox + vbox { + padding-left: var(--indent-base); + margin-left: var(--indent-base); + border-left: 1px solid var(--color-primary-20); +} +.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container { + height: 100%; +} +.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container [class*="legend-col"] { + padding-bottom: var(--indent-base); + margin-bottom: auto; +} +.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container .text-invert:not(.mute) { + font-size: var(--size-num-primary); +} +.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container .text-invert:not(.mute) label { + font-size: var(--size-text-primary); + color: var(--color-text-secondary); } .webbpm.ervu_dashboard .graph-legend-right { color: var(--color-text-secondary); - - text > div { - justify-content: flex-end; - } - .text-invert > div > div:last-of-type { - color: var(--color-text-primary); - font-size: var(--size-num-primary); - } } -.webbpm.ervu_dashboard [class*="graph-legend"] { - ervu-chart-v2 ~ hbox, - & > div > hbox { - margin-top: var(--indent-mini); - } - .form-group { - align-items: baseline; - line-height: normal; - margin-bottom: 0; - } - .mute { - white-space: nowrap; - } - [class*="legend-col"] { - position: relative; - padding-left: var(--indent-large); - - &::before { - content: ""; - position: absolute; - width: var(--indent-base); - height: var(--indent-base); - top: var(--indent-xmini); - left: 0; - border-radius: var(--indent-base); - } - } - .legend-col-green::before { - background-color: var(--color-success); - } - .legend-col-red::before { - background-color: var(--color-error); - } - .legend-col-yellow::before { - background-color: #ffc737; - } - .legend-col-blue-lt::before { - background-color: #00f0ff; - } - .legend-col-blue::before { - background-color: #17a8fa; - } - .legend-col-lila::before { - background-color: #e24fd4; - } - .legend-col-coral::before { - background-color: #ff4f5e; - } - .legend-col-orange::before { - background-color: #d98200; - } - .legend-col-orange-dk::before { - background-color: #d9af19; - } +.webbpm.ervu_dashboard .graph-legend-right .text-invert > div { + justify-content: flex-end; +} +.webbpm.ervu_dashboard .graph-legend-right .text-invert > div > div:last-of-type { + color: var(--color-text-primary); + font-size: var(--size-num-primary); +} +.webbpm.ervu_dashboard [class*="graph-legend"] ervu-chart-v2 ~ hbox, +.webbpm.ervu_dashboard [class*="graph-legend"] > div > hbox { + margin-top: var(--indent-mini); +} +.webbpm.ervu_dashboard [class*="graph-legend"] .form-group { + align-items: baseline; + line-height: normal; + margin-bottom: 0; +} +.webbpm.ervu_dashboard [class*="graph-legend"] .mute { + white-space: nowrap; +} +.webbpm.ervu_dashboard [class*="graph-legend"] [class*="legend-col"] { + position: relative; + padding-left: var(--indent-large); +} +.webbpm.ervu_dashboard [class*="graph-legend"] [class*="legend-col"]::before { + content: ""; + position: absolute; + width: var(--indent-base); + height: var(--indent-base); + top: var(--indent-xmini); + left: 0; + border-radius: var(--indent-base); +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-green::before { + background-color: var(--color-success); +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-red::before { + background-color: var(--color-error); +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-yellow::before { + background-color: #ffc737; +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-blue-lt::before { + background-color: #00f0ff; +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-blue::before { + background-color: #17a8fa; +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-lila::before { + background-color: #e24fd4; +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-coral::before { + background-color: #ff4f5e; +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-orange::before { + background-color: #d98200; +} +.webbpm.ervu_dashboard [class*="graph-legend"] .legend-col-orange-dk::before { + background-color: #db5c00; } -.webbpm.ervu_dashboard .pers-group .vertical-container { - & > text:first-child { - color: var(--color-text-secondary); - } - & > text:nth-child(2) { - font-family: 'GilroySB'; - font-size: var(--size-num-subtitle); - line-height: 1; - margin-top: var(--indent-mini); - } - .form-group { - margin-bottom: 0; - } +.webbpm.ervu_dashboard .pers-group .vertical-container > text:first-child { + color: var(--color-text-secondary); +} +.webbpm.ervu_dashboard .pers-group .vertical-container > text:nth-child(2) { + font-family: 'GilroySB'; + font-size: var(--size-num-subtitle); + line-height: 1; + margin-top: var(--indent-mini); +} +.webbpm.ervu_dashboard .pers-group .vertical-container .form-group { + margin-bottom: 0; } -.webbpm.ervu_dashboard .main-num-group > div { - &.horizontal-container { - align-items: flex-end; - } - text.title { - font-family: 'GilroySB'; - font-size: var(--size-num-title); - line-height: 1; - margin-bottom: 0; - - & + text.text-invert:not(.mute) { - color: var(--color-text-secondary); - font-size: var(--size-num-primary); - margin: 0 0 var(--indent-xmini) var(--indent-base); - } - } - .form-group { - margin-bottom: 0; - } +.webbpm.ervu_dashboard .main-num-group > div.horizontal-container { + align-items: flex-end; +} +.webbpm.ervu_dashboard .main-num-group > div text.title { + font-family: 'GilroySB'; + font-size: var(--size-num-title); + line-height: 1; + margin-bottom: 0; +} +.webbpm.ervu_dashboard .main-num-group > div text.title + text.text-invert:not(.mute) { + color: var(--color-text-secondary); + font-size: var(--size-num-primary); + margin: 0 0 var(--indent-xmini) var(--indent-base); +} +.webbpm.ervu_dashboard .main-num-group > div .form-group { + margin-bottom: 0; } .webbpm.ervu_dashboard .parent-block { @@ -639,31 +641,35 @@ border: 1px solid var(--border-dark); background: var(--bg-block); backdrop-filter: var(--bg-blur-40); - - & > .horizontal-container > * { - flex: 1; - &:not(.child-block) { - padding-right: 0; - } - } - & > .horizontal-container > * + *, - .horizontal-container > .child-block + .child-block { - margin-left: var(--indent-base); - } - .vertical-container > .child-block + *, - .vertical-container > .child-block + .child-block { - margin-top: var(--indent-base); - } - .child-block, - .child-block + * { - flex: 1; - } +} +.webbpm.ervu_dashboard .parent-block > .horizontal-container > * { + flex: 1; +} +.webbpm.ervu_dashboard .parent-block > .horizontal-container > *:not(.child-block) { + padding-right: 0; +} +.webbpm.ervu_dashboard .parent-block > .horizontal-container > * + *, +.horizontal-container > .child-block + .child-block { + margin-left: var(--indent-base); +} +.webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + *, +.webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + .child-block { + margin-top: var(--indent-base); +} +.webbpm.ervu_dashboard .parent-block .child-block, +.webbpm.ervu_dashboard .parent-block .child-block + * { + flex: 1; } .webbpm.ervu_dashboard .bg-diamond { - background-image: url(../img/svg/bg-diamond.svg); + background-image: url(../img/svg/bg-diamond.svg); background-position: 100% 0; - background-repeat: no-repeat; + background-repeat: no-repeat; +} +.webbpm.ervu_dashboard .bg-diamond-people { + background-image: url(../img/svg/bg-diamond.svg), url(../img/svg/bg-people.svg); + background-position: 100% 0, 50% min(16vw, 20rem); /*320*/ + background-repeat: no-repeat; } .webbpm.ervu_dashboard .child-block { @@ -674,295 +680,372 @@ backdrop-filter: var(--bg-blur-20); } -.webbpm.ervu_dashboard .search-block { - .child-block { - padding: var(--indent-large) var(--indent-medium) var(--indent-medium); - - &:first-child { - min-width: min(20vw, 25rem); /*400*/ - flex: 0; - } - label { - display: flex; - color: var(--color-text-secondary); - font-family: 'GilroyM'; - width: auto; - padding: 0; - margin: 0 0 var(--indent-mini) var(--indent-small); - } - check-box { - label { - width: min-content; - span { - content: ""; - position: absolute; - top: 0; - left: 0; - width: min(1.4vw, 1.75rem); /*28*/ - height: min(1.4vw, 1.75rem); /*28*/ - padding: 2px; - margin: 0; - border-radius: 4px; - background-color: var(--color-dark-20); - } - input { - position: absolute; - z-index: -1; - opacity: 0; - } - } - &.wb-valid.wb-not-empty { - label span { - content: url('../img/svg/mark.svg'); - border: 1px solid var(--color-success); - background-color: var(--color-primary-5); - } - } - & + text { - color: var(--color-text-secondary); - margin-left: var(--indent-base) !important; - } - } - :is(.title, .nav-tabs, text) { - margin-left: var(--indent-small); - } - .filter-group { - .form-group, .component-float { - width: 100%; - } - } - } - .search-main-block { - width: 100%; - padding: 0; - - & > div { - height: 100%; - } - } - &.search-add-params { - .child-block:first-child { - min-width: 100%; - } - .search-main-block, .search-main-block ~ vbox { - width: 25%; - padding-right: var(--indent-large); - } - .search-main-block ~ vbox { - padding-left: var(--indent-large); - border-left: 1px solid var(--color-primary-20); - - &:last-child { - padding-right: 0; - } - } - } - .search-btn { - margin-top: auto; - - .btn { - color: var(--white); - font-size: var(--size-text-subtitle); - width: 100%; - min-height: min(3.6vw, 4.5rem); /*72*/ - margin: var(--indent-xbase) 0 0; - border-radius: 20px; - border: 1px solid var(--btn-border); - background: var(--btn-bg); - box-shadow: var(--btn-shadow); - } - } - .selectize-control { - height: 100%; - background-color: transparent; - } - :is(.selectize-input, input) { - color: var(--color-text-primary); - font-size: var(--size-text-primary); - min-height: max-content; - padding: var(--indent-small) var(--indent-xlarge) var(--indent-small) var(--indent-medium); - margin-bottom: 0; - border-radius: 100px; - border: 0; - background-color: var(--color-dark-20); - } - .selectize-input { - display: flex; - - &::after { - position: absolute; - content: "\f282"; - position: absolute; - font-family: bootstrap-icons !important; - font-weight: 800 !important; - font-size: var(--size-text-secondary); - top: calc((50% - var(--size-text-secondary)/ 2)); - right: var(--indent-base); - height: auto; - width: auto; - border: 0; - } - &::before { - display: none; - } - } - check-box label > span { - width: auto; - } +.webbpm.ervu_dashboard .search-block .child-block { + padding: var(--indent-large) var(--indent-medium) var(--indent-medium); +} +.webbpm.ervu_dashboard .search-block .child-block:first-child { + min-width: min(20vw, 25rem); /*400*/ + flex: 0; + z-index: 1; +} +.webbpm.ervu_dashboard .search-block .child-block label { + display: flex; + color: var(--color-text-secondary); + font-family: 'GilroyM'; + width: auto; + padding: 0; + margin: 0 0 var(--indent-mini) var(--indent-small); +} +.webbpm.ervu_dashboard .search-block .child-block check-box label { + width: min-content; +} +.webbpm.ervu_dashboard .search-block .child-block check-box label span { + content: ""; + position: absolute; + top: 0; + left: 0; + width: min(1.4vw, 1.75rem); /*28*/ + height: min(1.4vw, 1.75rem); /*28*/ + padding: 2px; + margin: 0; + border-radius: 4px; + background-color: var(--color-dark-20); +} +.webbpm.ervu_dashboard .search-block .child-block check-box label input { + position: absolute; + z-index: -1; + opacity: 0; +} +.webbpm.ervu_dashboard .search-block .child-block check-box.wb-valid.wb-not-empty label span { + content: url('../img/svg/mark.svg'); + border: 1px solid var(--color-success); + background-color: var(--color-primary-5); +} +.webbpm.ervu_dashboard .search-block .child-block check-box + text { + color: var(--color-text-secondary); + margin-left: var(--indent-base) !important; +} +.webbpm.ervu_dashboard .search-block .child-block :is(.title, .nav-tabs, text) { + margin-left: var(--indent-small); +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group .form-group, +.webbpm.ervu_dashboard .search-block .child-block .filter-group .component-float { + width: 100%; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker input { + padding-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker input ~ .input-group-addon { + display: flex; + align-items: center; + color: var(--color-text-primary); + padding-right: var(--indent-small); + border: 0; + border-top-right-radius: 100px; + border-bottom-right-radius: 100px; + background-color: var(--color-dark-20); +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu { + color: var(--color-text-primary); + border-radius: 24px; + border: 1px solid var(--color-text-secondary); + background: + linear-gradient(180deg, rgba(19, 46, 55, 0.5) 0%, rgba(19, 46, 55, 0.7) 100%), + linear-gradient(180deg, rgba(8, 131, 198, 0.5) 0%, rgba(8, 131, 198, 0.7) 100%); + backdrop-filter: var(--bg-blur-40); + box-shadow: var(--bg-shadow); +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu::after, +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu::before { + display: none; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu th { + font-weight: normal; + font-family: GilroySB; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu th:not(.dow):hover { + color: var(--color-success); + background-color: transparent; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu td span { + width: 54px; + height: 32px; + line-height: 32px; + margin: 0; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu :is(.old, .new) { + color: var(--color-text-mute); +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu :is(.day, .month, .year, .decade).active, +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu :is(.day, .month, .year, .decade):hover { + color: var(--color-success); + background-color: transparent; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu .today, +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu .today:hover { + color: var(--color-text-primary); + background: var(--color-success); + text-shadow: none; +} +.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu .today::before { + display: none; +} +.webbpm.ervu_dashboard .search-block .child-block .search-date .date > div { + width: auto; + min-width: min(7.5vw, 9.375rem); /*150*/ +} +.webbpm.ervu_dashboard .search-block .child-block .search-date date-time-picker + text { + margin-left: 0; +} +.webbpm.ervu_dashboard .search-block .child-block .search-date text { + color: var(--color-text-secondary); +} +.webbpm.ervu_dashboard .search-block .child-block .search-date text .form-group { + margin-bottom: var(--indent-mini); +} +.webbpm.ervu_dashboard .search-block .search-main-block { + width: 100%; + padding: 0; +} +.webbpm.ervu_dashboard .search-block .search-main-block > div { + height: 100%; +} +.webbpm.ervu_dashboard .search-block.search-add-params .child-block:first-child { + min-width: 100%; } -.webbpm.ervu_dashboard .pers-block { - .child-block { - padding: var(--indent-large); +.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block, +.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block ~ vbox { + width: 25%; + padding-right: var(--indent-large); +} +.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block ~ vbox { + padding-left: var(--indent-large); + border-left: 1px solid var(--color-primary-20); +} +.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block ~ vbox:last-child { + padding-right: 0; +} +.webbpm.ervu_dashboard .search-block.search-add-params .title + button-component.pull-right { + margin-left: 16%; +} - &:first-child { - min-width: 400px; - flex: 0; - background-image: url(../img/svg/bg-pers.svg); - background-position: -40px 100%; - background-repeat: no-repeat; - } - text > div { - display: flex; - flex-direction: column; +.webbpm.ervu_dashboard .search-block .search-btn { + margin-top: auto; +} +.webbpm.ervu_dashboard .search-block .search-btn .btn { + color: var(--white); + font-size: var(--size-text-subtitle); + width: 100%; + min-height: min(3.6vw, 4.5rem); /*72*/ + margin: var(--indent-xbase) 0 0; + border-radius: 20px; + border: 1px solid var(--btn-border); + background: var(--btn-bg); + box-shadow: var(--btn-shadow); +} +.webbpm.ervu_dashboard .search-block .selectize-control { + height: 100%; + background-color: transparent; +} +.webbpm.ervu_dashboard .search-block :is(.selectize-input, input) { + color: var(--color-text-primary); + font-size: var(--size-text-primary); + min-height: max-content; + padding: var(--indent-small) var(--indent-xlarge) var(--indent-small) var(--indent-medium); + margin-bottom: 0; + border-radius: 100px; + border: 0; + background-color: var(--color-dark-20); +} +.webbpm.ervu_dashboard .search-block .selectize-input { + display: flex; +} +.webbpm.ervu_dashboard .search-block .selectize-input::after { + position: absolute; + content: "\f282"; + position: absolute; + font-family: bootstrap-icons !important; + font-weight: 800 !important; + font-size: var(--size-text-secondary); + top: calc((50% - var(--size-text-secondary)/ 2)); + right: var(--indent-base); + height: auto; + width: auto; + border: 0; +} +.webbpm.ervu_dashboard .search-block .selectize-input::before { + display: none; +} +.webbpm.ervu_dashboard .search-block check-box label > span { + width: auto; +} +.webbpm.ervu_dashboard .search-block .grid { + flex-direction: column; + flex: 1 1 auto; + height: 100px; +} +.webbpm.ervu_dashboard .search-block .grid .ag-body-horizontal-scroll-viewport { + overflow-x: auto; +} - label { - color: var(--color-text-secondary); - width: auto; - } - } - .title ~ .title { - margin-top: var(--indent-huge); - } - } +.webbpm.ervu_dashboard .pers-block .child-block text > div { + display: flex; + flex-direction: column; +} +.webbpm.ervu_dashboard .pers-block .child-block text > div label { + color: var(--color-text-secondary); + width: auto; +} +.webbpm.ervu_dashboard .pers-block .child-block .title ~ .title { + margin-top: var(--indent-huge); +} +.webbpm.ervu_dashboard .pers-block .pers-info > .horizontal-container > * { + flex-grow: 1; + margin-right: var(--indent-large); +} +.webbpm.ervu_dashboard .pers-block .pers-info > .horizontal-container > *:last-child { + margin-right: 0; +} +.webbpm.ervu_dashboard .pers-block .pers-info .form-group { + margin-bottom: 0; } .webbpm.ervu_dashboard grid-v2 { flex: 1; height: auto; } +.webbpm.ervu_dashboard .grid { + min-height: 100px; +} +.webbpm.ervu_dashboard ag-grid-angular, +.webbpm.ervu_dashboard ag-grid-angular .ag-root-wrapper, +.webbpm.ervu_dashboard ag-grid-angular .ag-root-wrapper-body.ag-layout-normal, +.webbpm.ervu_dashboard ag-grid-angular .ag-root { + min-height: inherit; +} .webbpm.ervu_dashboard ag-grid-angular :is(.ag-root-wrapper, .ag-header-viewport, .ag-header-container, .ag-header) { background-color: transparent; } .webbpm.ervu_dashboard ag-grid-angular .ag-header { margin-bottom: var(--indent-mini); border: 0; - - .ag-header-row { - border-bottom: 1px solid var(--color-primary-5); - } - .ag-header-cell { - color: var(--color-text-secondary); - font-size: var(--size-text-primary); - font-family: 'Gilroy'; - font-weight: 400; - padding-left: var(--indent-small); - padding-right: var(--indent-small); - - &::after { - background-color: var(--color-primary-5); - } - &:first-child { - padding-left: var(--indent-base); - } - &:last-child { - padding-right: var(--indent-base); - } - } +} +.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-row { + border-bottom: 1px solid var(--color-primary-5); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell { + color: var(--color-text-secondary); + font-size: var(--size-text-primary); + font-family: 'Gilroy'; + font-weight: 400; + padding-left: var(--indent-small); + padding-right: var(--indent-small); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell::after { + background-color: var(--color-primary-5); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell:first-child { + padding-left: var(--indent-base); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell:last-child { + padding-right: var(--indent-base); } .webbpm.ervu_dashboard ag-grid-angular .ag-root { border: 0; - - .ag-row { - color: var(--color-text-primary); - font-size: var(--size-text-addprimary); - font-family: 'GilroyM'; - border-radius: 8px; - border: 1px solid var(--color-primary-20); - background-color: var(--bg-brick); - - &.ag-row-selected, &.ag-row-hover { - background-color: var(--bg-brick) !important; - - &:before { - border-radius: 8px; - background-color: var(--bg-brick) !important; - } - } - } - .ag-cell { - display: flex; - - &.ag-cell-not-inline-editing { - padding-left: 12px; - padding-right: 12px; - - &:first-child { - padding-left: var(--indent-base); - } - &:last-child { - padding-right: var(--indent-base); - } - } - &.ag-cell-focus { - border-color: transparent; - } - &.cell-font-big { - font-size: var(--size-text-subtitle); - } - &[class*="cell-font-narrow"] { - color: var(--color-text-secondary); - font-family: 'Gilroy'; - - } - &.cell-font-narrow-small { - font-size: var(--size-text-primary); - } - &[class*="cell-score"] { - justify-content: end; - font-size: var(--size-num-subtitle); - - .ag-cell-value { - overflow: visible; - } - } - &.cell-score-success { - color: var(--color-success); - } - &.cell-score-alarm { - color: var(--color-error); - } - .ag-cell-wrapper { - overflow: hidden; - } - } } -.webbpm.ervu_dashboard grid-v2.grid-rating ag-grid-angular { - .ag-row { - font-size: var(--size-text-subtitle); - border: 0; - background-color: var(--color-dark-20); - - &.ag-row-selected, &.ag-row-hover { - background-color: var(--color-dark-20) !important; - - &:before { - background-color: var(--color-dark-20) !important; - } - } - } +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-row { + color: var(--color-text-primary); + font-size: var(--size-text-addprimary); + font-family: 'GilroyM'; + border-radius: 8px; + border: 1px solid var(--color-primary-20); + background-color: var(--bg-brick); } -.webbpm.ervu_dashboard grid-v2.grid-rating-small ag-grid-angular { - .ag-cell[class*="cell-score"] { - font-size: var(--size-num-primary); - } +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-row:is(.ag-row-selected, .ag-row-hover) { + background-color: var(--bg-brick) !important; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-row:is(.ag-row-selected, .ag-row-hover):before { + border-radius: 8px; + background-color: var(--bg-brick) !important; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell { + display: flex; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-not-inline-editing { + padding-left: 12px; + padding-right: 12px; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-not-inline-editing:first-child { + padding-left: var(--indent-base); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-not-inline-editing:last-child { + padding-right: var(--indent-base); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-focus { + border-color: transparent; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-font-big { + font-size: var(--size-text-subtitle); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell[class*="cell-font-narrow"] { + color: var(--color-text-secondary); + font-family: 'Gilroy'; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-font-narrow-small { + font-size: var(--size-text-primary); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell[class*="cell-score"] { + justify-content: end; + font-size: var(--size-num-subtitle); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell[class*="cell-score"] .ag-cell-value { + overflow: visible; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-score-success { + color: var(--color-success); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-score-alarm { + color: var(--color-error); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell .ag-cell-wrapper { + overflow: hidden; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-overlay-loading-center { + margin-top: 40px; +} +.webbpm.ervu_dashboard :is(.ag-overlay-loading-center, .tooltip-default, .tooltip.show .tooltip-inner) { + color: var(--color-text-primary); + font-size: var(--size-text-secondary); + padding: var(--indent-small) var(--indent-base); + border: 0; + border-radius:var(--indent-xbase); + background-color: var(--color-tooltip); + backdrop-filter: var(--bg-blur-40); +} +.webbpm.ervu_dashboard .tooltip .arrow { + display: none; +} + +.webbpm.ervu_dashboard grid-v2.grid-rating ag-grid-angular .ag-row { + font-size: var(--size-text-subtitle); + border: 0; + background-color: var(--color-dark-20); +} +.webbpm.ervu_dashboard grid-v2.grid-rating ag-grid-angular .ag-row:is(.ag-row-selected, .ag-row-hover), +.webbpm.ervu_dashboard grid-v2.grid-rating ag-grid-angular .ag-row:is(.ag-row-selected, .ag-row-hover):before { + background-color: var(--color-dark-20) !important; +} +.webbpm.ervu_dashboard grid-v2.grid-rating-small ag-grid-angular .ag-cell[class*="cell-score"] { + font-size: var(--size-num-primary); } .webbpm.ervu_dashboard grid-v2.grid-header-free { margin-top: var(--indent-xlarge); - - .ag-header { - display: none; - } +} +.webbpm.ervu_dashboard grid-v2.grid-header-free.ag-header { + display: none; } .webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel { color: var(--color-text-primary); @@ -971,43 +1054,39 @@ min-height: 60px; margin-top: var(--indent-medium); border: 0; - - .ag-paging-row-summary-panel { - margin-right: var(--indent-xlarge); - } - .ag-paging-page-summary-panel { - margin: 0; - - .ag-paging-description { - margin: 0 64px; - } - } - .ag-paging-button { - display: flex; - align-items: center; - justify-content: center; - width: min(2.9vw, 3.625rem); /*58*/ - height: min(2.9vw, 3.625rem); /*58*/ - margin: 0; - border: 1px solid var(--color-primary-20); - border-radius: 4px; - background-color: var(--color-dark-20); - - & + .ag-paging-button { - margin-left: var(--indent-xmini); - } - .ag-icon { - color: var(--color-text-primary); - font-size: var(--size-text-subtitle); - } - &.ag-disabled { - border-color: transparent; - - .ag-icon { - color: var(--color-text-secondary); - } - } - } +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-row-summary-panel { + margin-right: var(--indent-xlarge); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-page-summary-panel { + margin: 0; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-page-summary-panel .ag-paging-description { + margin: 0 64px; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button { + display: flex; + align-items: center; + justify-content: center; + width: min(2.9vw, 3.625rem); /*58*/ + height: min(2.9vw, 3.625rem); /*58*/ + margin: 0; + border: 1px solid var(--color-primary-20); + border-radius: 4px; + background-color: var(--color-dark-20); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button + .ag-paging-button { + margin-left: var(--indent-xmini); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button .ag-icon { + color: var(--color-text-primary); + font-size: var(--size-text-subtitle); +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button.ag-disabled { + border-color: transparent; +} +.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button.ag-disabled .ag-icon { + color: var(--color-text-secondary); } .webbpm.ervu_dashboard ag-grid-angular .grid-setting-icon, .webbpm.ervu_dashboard ag-grid-angular .ag-header-cell.ag-header-active .ag-header-cell-menu-button, @@ -1019,94 +1098,124 @@ } /* Special pages */ -.webbpm.ervu_dashboard #total_registered_second { - .child-block:nth-child(1) { - flex: 0; - } - .child-block:nth-child(2) { - flex: 1.4; - } - .child-block:nth-child(3) { - flex: 1.2; - } - .child-block:nth-child(4) { - flex: 1.4; - } +.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(1) { + flex: 0; } -.webbpm.ervu_dashboard #milregistration .parent-block { - & > div > vbox:nth-child(1) { - flex: 0; - } - .donut-absolute-row { - ervu-chart-v2 { - justify-content: flex-end; - margin-top: -70px; - z-index: -1; - } - .graph-legend-row { - margin-top: var(--indent-base); - } - } +.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(2) { + flex: 1.4; } -.webbpm.ervu_dashboard #appeals .parent-block > div { - & > vbox:nth-child(1) { - flex: 2; - } - & > vbox:nth-child(2) { - flex: 3; - } - & > vbox:nth-child(3) { - flex: 2; - } +.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(3) { + flex: 1.2; } +.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(4) { + flex: 1.4; +} +.webbpm.ervu_dashboard #milregistration .parent-block > div > vbox:nth-child(1) { + flex: 0; +} +.webbpm.ervu_dashboard #milregistration .parent-block .donut-absolute-row ervu-chart-v2 { + justify-content: flex-end; + margin-top: -70px; + z-index: -1; +} +.webbpm.ervu_dashboard #milregistration .parent-block .donut-absolute-row .graph-legend-row { + margin-top: var(--indent-base); +} +.webbpm.ervu_dashboard #appeals .parent-block > div > vbox:nth-child(1) { + flex: 2; +} +.webbpm.ervu_dashboard #appeals .parent-block > div > vbox:nth-child(2) { + flex: 3; +} +.webbpm.ervu_dashboard #appeals .parent-block > div > vbox:nth-child(3) { + flex: 2; +} + +.webbpm.ervu_dashboard [page-citizen], +.webbpm.ervu_dashboard #citizen { + height: 100%; +} +.webbpm.ervu_dashboard #citizen { + display: flex; + flex-direction: column; +} +.webbpm.ervu_dashboard #citizen > vbox:first-child, +.webbpm.ervu_dashboard #citizen .search-block { + flex: 1; +} + +.webbpm.ervu_dashboard.citizencard .container-inside { + overflow: hidden; +} +.webbpm.ervu_dashboard.citizencard [page-citizencard], +.webbpm.ervu_dashboard.citizencard #citizencard, +.webbpm.ervu_dashboard.citizencard #citizencard > vbox, +.webbpm.ervu_dashboard.citizencard vbox > .vertical-container, +.webbpm.ervu_dashboard.citizencard hbox > .horizontal-container { + height: 100%; +} +.webbpm.ervu_dashboard.citizencard .pers-block { + flex: 1; +} +.webbpm.ervu_dashboard.citizencard .pers-block .child-block:first-child { + flex: 0; +} +.webbpm.ervu_dashboard.citizencard .pers-block .child-block:last-child { + flex: 1; +} +.webbpm.ervu_dashboard.citizencard .pers-block .nav-tabs, +.webbpm.ervu_dashboard.citizencard .pers-block .nav-tabs ~ .tab-active { + position: absolute; + top: 0; + bottom: 0; + overflow-y: auto; +} +.webbpm.ervu_dashboard.citizencard .pers-block .nav-tabs ~ .tab-active { + left: calc(min(20vw, 23.75rem) + var(--indent-large)); +} +/* end - Special pages */ @media ((max-width: 780px) or (orientation: portrait)) { .webbpm.ervu_dashboard .header-logo .logo-title, .webbpm.ervu_dashboard .header-menu .update-data { display: none; } - .webbpm.ervu_dashboard .top-btn-block { - & > .horizontal-container { - flex-direction: column; - } - .component-float { - width: auto; - } - .pull-right { - margin-left: 0; - - & > div { - justify-content: flex-start; - } - } + .webbpm.ervu_dashboard .top-btn-block > .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard .top-btn-block .component-float { + width: auto; + } + .webbpm.ervu_dashboard .top-btn-block .pull-right { + margin-left: 0; + } + .webbpm.ervu_dashboard .top-btn-block .pull-right > div { + justify-content: flex-start; } - .webbpm.ervu_dashboard .parent-block { - & > .horizontal-container { - flex-direction: column; - } - .horizontal-container > .child-block + .child-block { - margin-left: var(--indent-mini); - } - & > .horizontal-container > * + * { - margin-left: 0; - margin-top: var(--indent-mini); - } - .vertical-container > .child-block + *, - .vertical-container > .child-block + .child-block { - margin-top: var(--indent-mini); - } - .child-block ~ hbox > .horizontal-container { - flex-direction: column; - - & > .child-block + .child-block { - margin-left: 0; - margin-top: var(--indent-mini); - } - } + .webbpm.ervu_dashboard .parent-block > .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard .parent-block .horizontal-container > .child-block + .child-block { + margin-left: var(--indent-mini); + } + .webbpm.ervu_dashboard .parent-block > .horizontal-container > * + * { + margin-left: 0; + margin-top: var(--indent-mini); + } + .webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + *, + .webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + .child-block { + margin-top: var(--indent-mini); + } + .webbpm.ervu_dashboard .parent-block .child-block ~ hbox > .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard .parent-block .child-block ~ hbox > .horizontal-container > .child-block + .child-block { + margin-left: 0; + margin-top: var(--indent-mini); } - .webbpm.ervu_dashboard .arrow-btn .btn { + .webbpm.ervu_dashboard :is(.arrow-btn, .delete-btn) .btn { position: relative; display: grid; place-items: center; @@ -1133,23 +1242,18 @@ } @media (max-width: 480px) { - .webbpm.ervu_dashboard .top-btn-block { - .horizontal-container { - flex-direction: column; - - combo-box { - padding-right: 0; - } - } - :is(button-component, static-route-navigation-button) { - & + :is(button-component, static-route-navigation-button) { - margin-left: 0; - margin-top: var(--indent-xmini); - } - button { - width: 100%; - } - } + .webbpm.ervu_dashboard .top-btn-block .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard .top-btn-block .horizontal-container combo-box { + padding-right: 0; + } + .webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) + :is(button-component, static-route-navigation-button) { + margin-left: 0; + margin-top: var(--indent-xmini); + } + .webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) button { + width: 100%; } .webbpm.ervu_dashboard .child-block { @@ -1161,41 +1265,35 @@ .webbpm.ervu_dashboard .graph-legend-row { margin-top: 0 !important; - - & > .horizontal-container { - flex-direction: column; - - & > vbox + vbox { - padding-left: 0; - padding-top: var(--indent-small); - margin-left: 0; - margin-top: var(--indent-small); - border-left: 0; - border-top: 1px solid var(--color-primary-20); - } - .text-invert > div { - justify-content: flex-end; - } - } } - .webbpm.ervu_dashboard .graph-legend-column { - .horizontal-container { - flex-direction: column; - - .pull-right { - justify-content: flex-start; - margin-left: 0; - } - } + .webbpm.ervu_dashboard .graph-legend-row > .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox + vbox { + padding-left: 0; + padding-top: var(--indent-small); + margin-left: 0; + margin-top: var(--indent-small); + border-left: 0; + border-top: 1px solid var(--color-primary-20); + } + .webbpm.ervu_dashboard .graph-legend-row > .horizontal-container .text-invert > div { + justify-content: flex-end; + } + .webbpm.ervu_dashboard .graph-legend-column .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard .graph-legend-column .horizontal-container .pull-right { + justify-content: flex-start; + margin-left: 0; } .webbpm.ervu_dashboard .donut-absolute-row .active > vbox > .vertical-container { flex-direction: row; - - ervu-chart-v2 { - justify-content: flex-start !important; - margin-top: 0 !important; - z-index: 1 !important; - } + } + .webbpm.ervu_dashboard .donut-absolute-row .active > vbox > .vertical-container ervu-chart-v2 { + justify-content: flex-start !important; + margin-top: 0 !important; + z-index: 1 !important; } .webbpm.ervu_dashboard .graph-donut .chart-content, .webbpm.ervu_dashboard .graph-donut-medium .chart-content { @@ -1209,54 +1307,58 @@ .webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel { flex-direction: column; - - .ag-paging-button { - width: 3rem; - height: 3rem; - } - .ag-paging-page-summary-panel .ag-paging-description { - margin: 0 var(--indent-small); - } + } + .webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button { + width: 3rem; + height: 3rem; + } + .webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-page-summary-panel .ag-paging-description { + margin: 0 var(--indent-small); } - .webbpm.ervu_dashboard .search-add-params { - .filter-group > div > hbox > .horizontal-container { - flex-direction: column; - } - .search-main-block, .search-main-block ~ vbox { - width: 100% !important; - } - .search-main-block ~ vbox { - padding: 0 !important; - padding-top: var(--indent-base) !important; - border: 0 !important; - border-bottom: 1px solid var(--color-primary-20) !important; - } - .child-block check-box { - label > span { - width: 1.75rem; /*28*/ - height: 1.75rem; /*28*/ - } - & + text { - margin-left: 1.75rem !important; - } - } + .webbpm.ervu_dashboard .search-add-params .filter-group > div > hbox > .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard .search-add-params .search-main-block, + .webbpm.ervu_dashboard .search-add-params .search-main-block ~ vbox { + width: 100% !important; + } + .webbpm.ervu_dashboard .search-add-params .search-main-block ~ vbox { + padding: 0 !important; + padding-top: var(--indent-base) !important; + border: 0 !important; + border-bottom: 1px solid var(--color-primary-20) !important; + } + .webbpm.ervu_dashboard .search-add-params .child-block check-box label > span { + width: 1.75rem; /*28*/ + height: 1.75rem; /*28*/ + } + .webbpm.ervu_dashboard .search-add-params .child-block check-box + text { + margin-left: 1.75rem !important; } - .webbpm.ervu_dashboard .pers-block { - .child-block { - padding: var(--indent-xbase); - - &:first-child { - min-width: auto; - } - &:nth-child(2) .horizontal-container { - flex-direction: column; - - vbox, text { - width: 100% !important; - } - } - } + .webbpm.ervu_dashboard.citizencard .container-inside { + overflow: auto; } -} \ No newline at end of file + .webbpm.ervu_dashboard .tab-vertical > div, + .webbpm.ervu_dashboard .pers-block .horizontal-container { + flex-direction: column; + } + .webbpm.ervu_dashboard.citizencard .pers-block .nav-tabs, + .webbpm.ervu_dashboard.citizencard .pers-block .nav-tabs ~ .tab-active { + position: relative; + width: 100%; + overflow: visible; + } + .webbpm.ervu_dashboard.citizencard .pers-block .nav-tabs { + padding-right: 0; + margin-right: 0; + } + .webbpm.ervu_dashboard.citizencard .pers-block .nav-tabs ~ .tab-active { + left: 0; + } + .webbpm.ervu_dashboard .pers-block .child-block:nth-child(2) .horizontal-container vbox, + .webbpm.ervu_dashboard .pers-block .child-block:nth-child(2) .horizontal-container text { + width: 100% !important; + } +} diff --git a/frontend/src/resources/css/font-faces.css b/frontend/src/resources/css/font-faces.css new file mode 100644 index 0000000..bd071de --- /dev/null +++ b/frontend/src/resources/css/font-faces.css @@ -0,0 +1,45 @@ +/* + * @font-face from bootstrap-icons + */ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: url("../../../node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff2?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff2"), + url("../../../node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff"); +} + +/* + * @font-face from font-awesome + */ +@font-face { + font-family: 'FontAwesome'; + src: url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), + url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), + url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), + url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), + url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'GilroyL'; + src: url('../fonts/gilroy-light.otf'); +} +@font-face { + font-family: 'Gilroy'; + src: url('../fonts/gilroy-regular.ttf'); +} +@font-face { + font-family: 'GilroyM'; + src: url('../fonts/gilroy-medium.ttf'); +} +@font-face { + font-family: 'GilroySB'; + src: url('../fonts/gilroy-semibold.ttf'); +} +@font-face { + font-family: 'GilroyEB'; + src: url('../fonts/gilroy-extrabold.otf'); +} \ No newline at end of file diff --git a/frontend/src/resources/css/font-faces.css.shim.ngstyle.js b/frontend/src/resources/css/font-faces.css.shim.ngstyle.js new file mode 100644 index 0000000..a79d9bc --- /dev/null +++ b/frontend/src/resources/css/font-faces.css.shim.ngstyle.js @@ -0,0 +1,10 @@ +"use strict"; +/** + * @fileoverview This file was generated by the Angular template compiler. Do not edit. + * + * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes} + * tslint:disable + */ +Object.defineProperty(exports, "__esModule", { value: true }); +var styles = ["@font-face {\r\n font-display: block;\r\n font-family: \"bootstrap-icons\";\r\n src: url(\"../../../node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff2?24e3eb84d0bcaf83d77f904c78ac1f47\") format(\"woff2\"),\r\n url(\"../../../node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff?24e3eb84d0bcaf83d77f904c78ac1f47\") format(\"woff\");\r\n}\r\n\r\n\r\n@font-face {\r\n font-family: 'FontAwesome';\r\n src: url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0');\r\n src: url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'GilroyL';\r\n src: url('../fonts/gilroy-light.otf');\r\n}\r\n@font-face {\r\n font-family: 'Gilroy';\r\n src: url('../fonts/gilroy-regular.ttf');\r\n}\r\n@font-face {\r\n font-family: 'GilroyM';\r\n src: url('../fonts/gilroy-medium.ttf');\r\n}\r\n@font-face {\r\n font-family: 'GilroySB';\r\n src: url('../fonts/gilroy-semibold.ttf');\r\n}\r\n@font-face {\r\n font-family: 'GilroyEB';\r\n src: url('../fonts/gilroy-extrabold.otf');\r\n}"]; +exports.styles = styles; diff --git a/frontend/src/resources/css/inbox-dashboard.css b/frontend/src/resources/css/inbox-dashboard.css index 820beb3..6827549 100644 --- a/frontend/src/resources/css/inbox-dashboard.css +++ b/frontend/src/resources/css/inbox-dashboard.css @@ -1,24 +1,3 @@ -@font-face { - font-family: 'GilroyL'; - src: url('../fonts/gilroy-light.otf'); -} -@font-face { - font-family: 'Gilroy'; - src: url('../fonts/gilroy-regular.ttf'); -} -@font-face { - font-family: 'GilroyM'; - src: url('../fonts/gilroy-medium.ttf'); -} -@font-face { - font-family: 'GilroySB'; - src: url('../fonts/gilroy-semibold.ttf'); -} -@font-face { - font-family: 'GilroyEB'; - src: url('../fonts/gilroy-extrabold.otf'); -} - .webbpm.ervu_dashboard { --black: #070e1a; --color-text-primary: #f4fcff; @@ -30,7 +9,8 @@ --color-success: #00db5d; --color-error: #f91e11; --color-dark: #070e1a; - --color-dark-20: rgba(7, 14, 26, 0.2); + --color-dark-20: rgba(7, 14, 26, 0.2); + --color-tooltip: rgba(8, 40, 59, 0.8); --btn-border: #00f0ff; --btn-bg: linear-gradient(40deg, rgba(8, 131, 198, 1) 0%, rgba(32, 181, 219, 1) 100%); @@ -80,7 +60,7 @@ --w-screen: min(2vw, 2.5rem); /*40*/ } -body.webbpm.ervu_dashboard { +.webbpm.ervu_dashboard { display: flex; flex-direction: column; color: var(--color-text-primary); @@ -90,26 +70,27 @@ body.webbpm.ervu_dashboard { -moz-background-size: cover; -o-background-size: cover; background-size: cover; - - .wrapper { +} +.webbpm.ervu_dashboard .wrapper { background: radial-gradient(circle at 0% 0%, rgba(16, 67, 77, 0.35) 0%, rgba(8, 37, 43, 0) 37%), radial-gradient(circle at 100% 0%, rgba(16, 67, 77, 0.35) 0%, rgba(8, 37, 43, 0) 37%), radial-gradient(circle at 50% 0%, rgba(8, 37, 43, 0.8) 0%, rgba(8, 37, 43, 0.6) 30%, rgba(8, 37, 43, 0) 80%), radial-gradient(circle at 50% 0%, rgba(8, 37, 43, 0.8) 0%, rgba(8, 37, 43, 0) 73%), radial-gradient(circle at 50% 50%, rgba(8, 37, 43, 0) 47%, rgba(3, 22, 26, 1) 100%); - } } .webbpm.ervu_dashboard .container { padding: var(--h-header) 0 0; bottom: 0; - - .container-inside { - font-family: 'Gilroy'; - font-size: var(--size-text-primary); - padding: 0 var(--w-screen) var(--indent-mini) var(--w-screen); - } +} +.webbpm.ervu_dashboard .container-inside { + position: relative; + font-family: 'Gilroy'; + font-size: var(--size-text-primary); + height: 100%; + padding: 0 var(--w-screen) var(--indent-mini) var(--w-screen); + overflow: auto; } .webbpm.ervu_dashboard .header-logo { @@ -117,17 +98,16 @@ body.webbpm.ervu_dashboard { flex-direction: row; align-items: center; margin-left: var(--w-screen); - - .logo a { - width: 100px; - height: var(--h-header); - background: url('../../../src/resources/img/logo-full.svg') no-repeat 0 50%; - background-size: auto 100%; - } - .logo-title { - font-family: 'GilroySB'; - margin-left: min(6vw, 7.5rem); /*120*/ - } +} +.webbpm.ervu_dashboard .header-logo .logo a { + width: 100px; + height: var(--h-header); + background: url('../../../src/resources/img/logo-full.svg') no-repeat 0 50%; + background-size: auto 100%; +} +.webbpm.ervu_dashboard .header-logo .logo-title { + font-family: 'GilroySB'; + margin-left: min(6vw, 7.5rem); /*120*/ } .webbpm.ervu_dashboard .header-menu { @@ -135,36 +115,84 @@ body.webbpm.ervu_dashboard { flex-direction: row; margin-left: auto; margin-right: var(--w-screen); - process, process + div, admin-menu { - display: none !important; - } - - .update-data { - color: var(--color-text-primary); - opacity: 0.4; - margin-right: 16px; - } - .logout { - max-width: max-content; - - & > button { - color: var(--color-text-primary); - line-height: 1.3; - padding: var(--indent-mini) var(--indent-xbase); - border: 1px solid var(--color-success); - background-color: var(--color-dark-20); - outline: none; - } - .nav-link { - padding-right: 0; - border-radius: var(--indent-medium) 0 0 var(--indent-medium); - border-right: 0; - } - .exit { - border-radius: 0 var(--indent-medium) var(--indent-medium) 0; - border-left: 0; - } - } +} +.webbpm.ervu_dashboard .header-menu process, +.webbpm.ervu_dashboard .header-menu process + div, +.webbpm.ervu_dashboard .header-menu admin-menu { +} + +.webbpm.ervu_dashboard .header-menu .update-data { + color: var(--color-text-primary); + opacity: 0.4; + margin-right: 16px; +} + +.webbpm.ervu_dashboard .header-menu .user-data .user-data-name, +.webbpm.ervu_dashboard .header-menu .user-data .user-data-name:is(:focus, :active) { + color: var(--color-text-primary); + font-size: var(--size-text-primary); + padding: var(--indent-mini) var(--indent-huge) var(--indent-mini) var(--indent-xbase); + margin: 0; + border-radius: 100px; + border: 1px solid var(--color-success); + background: var(--color-dark-20); + box-shadow: none; + outline: transparent; +} +.webbpm.ervu_dashboard .header-menu .user-data.show .user-data-name { + background-color: var(--color-success); +} +.webbpm.ervu_dashboard .header-menu .user-data .user-data-name::after { + position: absolute; + content: "\f282"; + color: var(--color-text-primary); + font-family: bootstrap-icons; + font-weight: 800; + font-size: var(--size-text-secondary); + top: calc(50% - var(--size-text-secondary) / 2); + right: var(--indent-base); + margin: 0; + border: 0; +} +.webbpm.ervu_dashboard .header-menu .user-data.show .user-data-name::after { + top: calc(50% - (var(--size-text-secondary) + var(--indent-xmini)) / 2); + transform: rotate(180deg); +} +.webbpm.ervu_dashboard .header-menu .user-data .dropdown-menu { + width: max-content; + max-width: 600px; + padding: var(--indent-mini) 0; + border-radius: 24px; + border: 1px solid var(--color-text-secondary); + background: var(--color-dark-20); + backdrop-filter: var(--bg-blur-40); + box-shadow: var(--bg-shadow); +} +.webbpm.ervu_dashboard .header-menu .user-data .dropdown-item { + color: var(--color-text-primary); + white-space: normal; + background-color: transparent; +} + +.webbpm.ervu_dashboard .header-menu .logout { + max-width: max-content; +} +.webbpm.ervu_dashboard .header-menu .logout > button { + color: var(--color-text-primary); + line-height: 1.3; + padding: var(--indent-mini) var(--indent-xbase); + border: 1px solid var(--color-success); + background-color: var(--color-dark-20); + outline: none; +} +.webbpm.ervu_dashboard .header-menu .logout .nav-link { + padding-right: 0; + border-radius: var(--indent-medium) 0 0 var(--indent-medium); + border-right: 0; +} +.webbpm.ervu_dashboard .header-menu .logout .exit { + border-radius: 0 var(--indent-medium) var(--indent-medium) 0; + border-left: 0; } .webbpm.ervu_dashboard .header { @@ -175,59 +203,13 @@ body.webbpm.ervu_dashboard { height: auto; min-height: var(--h-header); background: transparent; - - & > div > * { - position: relative; - display: flex; - align-items: center; - } - - .dropdown-menu.show { - top: var(--h-header) !important; - right: 0px !important; - left: auto !important; - transform: none !important; - margin: 0; - border: 0; - border-radius: 0 0 10px 10px; - background-color: var(--white); - box-shadow: 0 8px 12px rgb(77 72 91 / 5%), 0 6px 10px rgb(77 72 91 / 0%); - - .dropdown-menu-inner { - max-height: calc(100vh - 140px); - overflow-y: auto; - } - } - - :is(process, admin-menu) .dropdown-menu.show { - top: 49px !important; - } - - .logout .dropdown-menu.show { - width: 300px; - } } - -.webbpm.ervu_dashboard .dropdown-menu-inner:hover { - background-color: transparent; +.webbpm.ervu_dashboard .header > div > * { + position: relative; + display: flex; + align-items: center; } -.webbpm.ervu_dashboard .dropdown-item { - padding: 4px 20px; - &:hover, - &:focus, - &:active { - color: var(--color-link); - background-color: transparent; - outline: transparent; - } -} - - - - - - /*----------------- Login ---------------- */ .webbpm.ervu_dashboard :is(.form-signin, .form-signup, .confirm) { color: var(--color-text-primary); @@ -273,21 +255,23 @@ body.webbpm.ervu_dashboard { } /*--------------- end Login -------------- */ -* { - scrollbar-width: thin; - scrollbar-color: var(--color-dark) transparent; +@supports not selector(::-webkit-scrollbar) { + * { + scrollbar-width: thin; + scrollbar-color: var(--color-text-primary) transparent; + } } -*::-webkit-scrollbar { - width: 8px; - height: 8px; +::-webkit-scrollbar { + width: 4px; + height: 4px; background-color: transparent; } -*::-webkit-scrollbar-thumb { +::-webkit-scrollbar-thumb { border-radius: 8px; - background-color: var(--color-dark); + background-color: var(--color-text-primary); } -*::-webkit-scrollbar-track { - height: 8px; +::-webkit-scrollbar-track { + height: 4px; background-color: transparent; } @@ -330,4 +314,33 @@ body.webbpm.ervu_dashboard { --size-num-addtitle: 2rem; /*32px*/ --size-num-primary: 1.75rem; /*28px*/ } -} \ No newline at end of file + + .webbpm.ervu_dashboard .header-menu .user-data .dropdown-menu { + max-width: calc(100vw - var(--w-screen) * 2); + } +} + +.webbpm.ervu_dashboard .progress { + width: 64px; + height: 64px; + border: 5px dotted var(--color-text-primary); + border-radius: 100%; + display: inline-block; + position: relative; + background: transparent; + box-sizing: border-box; + animation: rotation 2.5s linear infinite; +} +.webbpm.ervu_dashboard .loader.modal .modal-content { + border: 0; + background: transparent; + box-shadow: none; +} +@keyframes rotation { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/frontend/src/resources/css/structure.css b/frontend/src/resources/css/structure.css index b7dd9ac..b39ff74 100644 --- a/frontend/src/resources/css/structure.css +++ b/frontend/src/resources/css/structure.css @@ -23,7 +23,7 @@ box-sizing: border-box; } -body.webbpm .form-signin label { +.webbpm .form-signin label { width: 160px; margin-right: 0; } @@ -99,13 +99,13 @@ body.webbpm .form-signin label { } /*-- layout --*/ -html, body.webbpm { +html, .webbpm { width: 100%; height: 100%; display: block; } -body.webbpm { +.webbpm { background-color: #f9f9fa; font-family: Arial; font-size: var(--size-text-secondary); diff --git a/frontend/src/resources/css/style.css b/frontend/src/resources/css/style.css index 03ed56d..9f50c41 100644 --- a/frontend/src/resources/css/style.css +++ b/frontend/src/resources/css/style.css @@ -5,6 +5,7 @@ @import "../../../node_modules/bootstrap-icons/font/bootstrap-icons.css"; @import "../../../node_modules/font-awesome/css/font-awesome.css"; @import "../../../node_modules/@webbpm/base-package/css/style.css"; +@import "font-faces.css"; @import "structure.css"; @import "inbox-dashboard.css"; @import "components-dashboard.css"; \ No newline at end of file diff --git a/frontend/src/resources/css/style.css.ngstyle.js b/frontend/src/resources/css/style.css.ngstyle.js new file mode 100644 index 0000000..929249b --- /dev/null +++ b/frontend/src/resources/css/style.css.ngstyle.js @@ -0,0 +1,10 @@ +"use strict"; +/** + * @fileoverview This file was generated by the Angular template compiler. Do not edit. + * + * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes} + * tslint:disable + */ +Object.defineProperty(exports, "__esModule", { value: true }); +var styles = ["\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", ".cal-month-view .cal-header {\n text-align: center;\n font-weight: bolder; }\n\n.cal-month-view .cal-header .cal-cell {\n padding: 5px 0;\n overflow: hidden;\n -o-text-overflow: ellipsis;\n text-overflow: ellipsis;\n display: block;\n white-space: nowrap; }\n\n.cal-month-view .cal-days {\n border: 1px solid;\n border-bottom: 0; }\n\n.cal-month-view .cal-cell-top {\n min-height: 78px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1; }\n\n.cal-month-view .cal-cell-row {\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex; }\n\n.cal-month-view .cal-cell {\n float: left;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch; }\n .cal-month-view .cal-cell .cal-event {\n pointer-events: all !important; }\n\n.cal-month-view .cal-day-cell {\n min-height: 100px; }\n @media all and (-ms-high-contrast: none) {\n .cal-month-view .cal-day-cell {\n display: block; } }\n\n.cal-month-view .cal-day-cell:not(:last-child) {\n border-right: 1px solid; }\n\n.cal-month-view .cal-days .cal-cell-row {\n border-bottom: 1px solid; }\n\n.cal-month-view .cal-day-badge {\n margin-top: 18px;\n margin-left: 10px;\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n border-radius: 10px; }\n\n.cal-month-view .cal-day-number {\n font-size: 1.2em;\n font-weight: 400;\n opacity: 0.5;\n margin-top: 15px;\n margin-right: 15px;\n float: right;\n margin-bottom: 10px; }\n\n.cal-month-view .cal-events {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n margin: 3px;\n line-height: 10px;\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n\n.cal-month-view .cal-event {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n display: inline-block;\n margin: 2px; }\n\n.cal-month-view .cal-day-cell.cal-in-month.cal-has-events {\n cursor: pointer; }\n\n.cal-month-view .cal-day-cell.cal-out-month .cal-day-number {\n opacity: 0.1;\n cursor: default; }\n\n.cal-month-view .cal-day-cell.cal-today .cal-day-number {\n font-size: 1.9em; }\n\n.cal-month-view .cal-open-day-events {\n padding: 15px; }\n\n.cal-month-view .cal-open-day-events .cal-event {\n position: relative;\n top: 2px; }\n\n.cal-month-view .cal-out-month .cal-day-badge,\n.cal-month-view .cal-out-month .cal-event {\n opacity: 0.3; }\n\n.cal-month-view .cal-draggable {\n cursor: move; }\n\n.cal-month-view .cal-drag-active * {\n pointer-events: none; }\n\n.cal-month-view .cal-event-title {\n cursor: pointer; }\n .cal-month-view .cal-event-title:hover {\n text-decoration: underline; }\n\n.cal-month-view {\n background-color: #fff; }\n .cal-month-view .cal-cell-row:hover {\n background-color: #fafafa; }\n .cal-month-view .cal-cell-row .cal-cell:hover,\n .cal-month-view .cal-cell.cal-has-events.cal-open {\n background-color: #ededed; }\n .cal-month-view .cal-days {\n border-color: #e1e1e1; }\n .cal-month-view .cal-day-cell:not(:last-child) {\n border-right-color: #e1e1e1; }\n .cal-month-view .cal-days .cal-cell-row {\n border-bottom-color: #e1e1e1; }\n .cal-month-view .cal-day-badge {\n background-color: #b94a48;\n color: #fff; }\n .cal-month-view .cal-event {\n background-color: #1e90ff;\n border-color: #d1e8ff;\n color: #fff; }\n .cal-month-view .cal-day-cell.cal-weekend .cal-day-number {\n color: #8b0000; }\n .cal-month-view .cal-day-cell.cal-today {\n background-color: #e8fde7; }\n .cal-month-view .cal-day-cell.cal-drag-over {\n background-color: #e0e0e0 !important; }\n .cal-month-view .cal-open-day-events {\n color: #fff;\n background-color: #555;\n -webkit-box-shadow: inset 0 0 15px 0 rgba(0, 0, 0, 0.5);\n box-shadow: inset 0 0 15px 0 rgba(0, 0, 0, 0.5); }\n\n.cal-week-view {\n }\n .cal-week-view * {\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n .cal-week-view .cal-day-headers {\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex;\n padding-left: 70px;\n border: 1px solid; }\n .cal-week-view .cal-day-headers .cal-header {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: center;\n padding: 5px; }\n .cal-week-view .cal-day-headers .cal-header:not(:last-child) {\n border-right: 1px solid; }\n .cal-week-view .cal-day-headers .cal-header:first-child {\n border-left: 1px solid; }\n .cal-week-view .cal-day-headers span {\n font-weight: 400;\n opacity: 0.5; }\n .cal-week-view .cal-day-column {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n border-left: solid 1px; }\n .cal-week-view .cal-event {\n font-size: 12px;\n border: 1px solid; }\n .cal-week-view .cal-time-label-column {\n width: 70px;\n height: 100%; }\n .cal-week-view .cal-current-time-marker {\n position: absolute;\n width: 100%;\n height: 2px;\n z-index: 2; }\n .cal-week-view .cal-all-day-events {\n border: solid 1px;\n border-top: 0;\n border-bottom-width: 3px;\n padding-top: 3px;\n position: relative; }\n .cal-week-view .cal-all-day-events .cal-day-columns {\n height: 100%;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex;\n position: absolute;\n top: 0;\n z-index: 0; }\n .cal-week-view .cal-all-day-events .cal-events-row {\n position: relative;\n height: 31px;\n margin-left: 70px; }\n .cal-week-view .cal-all-day-events .cal-event-container {\n display: inline-block;\n position: absolute; }\n .cal-week-view .cal-all-day-events .cal-event-container.resize-active {\n z-index: 1;\n pointer-events: none; }\n .cal-week-view .cal-all-day-events .cal-event {\n padding: 0 5px;\n margin-left: 2px;\n margin-right: 2px;\n height: 28px;\n line-height: 28px; }\n .cal-week-view .cal-all-day-events .cal-starts-within-week .cal-event {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px; }\n .cal-week-view .cal-all-day-events .cal-ends-within-week .cal-event {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px; }\n .cal-week-view .cal-all-day-events .cal-time-label-column {\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n font-size: 14px; }\n .cal-week-view .cal-all-day-events .cal-resize-handle {\n width: 6px;\n height: 100%;\n cursor: col-resize;\n position: absolute;\n top: 0; }\n .cal-week-view .cal-all-day-events .cal-resize-handle.cal-resize-handle-after-end {\n right: 0; }\n .cal-week-view .cal-event,\n .cal-week-view .cal-header {\n overflow: hidden;\n -o-text-overflow: ellipsis;\n text-overflow: ellipsis;\n white-space: nowrap; }\n .cal-week-view .cal-drag-active {\n pointer-events: none;\n z-index: 1; }\n .cal-week-view .cal-drag-active * {\n pointer-events: none; }\n .cal-week-view .cal-time-events {\n position: relative;\n border: solid 1px;\n border-top: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex; }\n .cal-week-view .cal-time-events .cal-day-columns {\n display: -webkit-box;\n display: -ms-flexbox;\n -js-display: flex;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1; }\n .cal-week-view .cal-time-events .cal-day-column {\n position: relative; }\n .cal-week-view .cal-time-events .cal-events-container {\n position: relative; }\n .cal-week-view .cal-time-events .cal-event-container {\n position: absolute;\n z-index: 1; }\n .cal-week-view .cal-time-events .cal-event {\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n margin: 1px;\n padding: 0 5px;\n line-height: 25px; }\n .cal-week-view .cal-time-events .cal-resize-handle {\n width: 100%;\n height: 4px;\n cursor: row-resize;\n position: absolute; }\n .cal-week-view .cal-time-events .cal-resize-handle.cal-resize-handle-after-end {\n bottom: 0; }\n .cal-week-view .cal-hour-segment {\n position: relative; }\n .cal-week-view .cal-hour-segment::after {\n content: '\\00a0'; }\n .cal-week-view .cal-event-container:not(.cal-draggable) {\n cursor: pointer; }\n .cal-week-view .cal-draggable {\n cursor: move; }\n .cal-week-view mwl-calendar-week-view-hour-segment,\n .cal-week-view .cal-hour-segment {\n display: block; }\n .cal-week-view .cal-hour:not(:last-child) .cal-hour-segment,\n .cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment {\n border-bottom: thin dashed; }\n .cal-week-view .cal-time {\n font-weight: bold;\n padding-top: 5px;\n width: 70px;\n text-align: center; }\n .cal-week-view .cal-hour-segment.cal-after-hour-start .cal-time {\n display: none; }\n .cal-week-view .cal-starts-within-day .cal-event {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px; }\n .cal-week-view .cal-ends-within-day .cal-event {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px; }\n\n.cal-week-view {\n background-color: #fff;\n border-top: solid 1px #e1e1e1; }\n .cal-week-view .cal-day-headers {\n border-color: #e1e1e1;\n border-top: 0; }\n .cal-week-view .cal-day-headers .cal-header:not(:last-child) {\n border-right-color: #e1e1e1; }\n .cal-week-view .cal-day-headers .cal-header:first-child {\n border-left-color: #e1e1e1; }\n .cal-week-view .cal-day-headers .cal-header:hover,\n .cal-week-view .cal-day-headers .cal-drag-over {\n background-color: #ededed; }\n .cal-week-view .cal-day-column {\n border-left-color: #e1e1e1; }\n .cal-week-view .cal-event {\n background-color: #d1e8ff;\n border-color: #1e90ff;\n color: #1e90ff; }\n .cal-week-view .cal-all-day-events {\n border-color: #e1e1e1; }\n .cal-week-view .cal-header.cal-today {\n background-color: #e8fde7; }\n .cal-week-view .cal-header.cal-weekend span {\n color: #8b0000; }\n .cal-week-view .cal-time-events {\n border-color: #e1e1e1; }\n .cal-week-view .cal-time-events .cal-day-columns:not(.cal-resize-active) .cal-hour-segment:hover {\n background-color: #ededed; }\n .cal-week-view .cal-hour-odd {\n background-color: #fafafa; }\n .cal-week-view .cal-drag-over .cal-hour-segment {\n background-color: #ededed; }\n .cal-week-view .cal-hour:not(:last-child) .cal-hour-segment,\n .cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment {\n border-bottom-color: #e1e1e1; }\n .cal-week-view .cal-current-time-marker {\n background-color: #ea4334; }\n\n.cal-day-view {\n }\n .cal-day-view mwl-calendar-week-view-header {\n display: none; }\n .cal-day-view .cal-events-container {\n margin-left: 70px; }\n .cal-day-view .cal-day-column {\n border-left: 0; }\n .cal-day-view .cal-current-time-marker {\n margin-left: 70px;\n width: calc(100% - 70px); }\n\n.cal-tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.5;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n font-size: 11px;\n word-wrap: break-word;\n opacity: 0.9; }\n\n.cal-tooltip.cal-tooltip-top {\n padding: 5px 0;\n margin-top: -3px; }\n\n.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0; }\n\n.cal-tooltip.cal-tooltip-right {\n padding: 0 5px;\n margin-left: 3px; }\n\n.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0; }\n\n.cal-tooltip.cal-tooltip-bottom {\n padding: 5px 0;\n margin-top: 3px; }\n\n.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px; }\n\n.cal-tooltip.cal-tooltip-left {\n padding: 0 5px;\n margin-left: -3px; }\n\n.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px; }\n\n.cal-tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n text-align: center;\n border-radius: 0.25rem; }\n\n.cal-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid; }\n\n.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow {\n border-top-color: #000; }\n\n.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow {\n border-right-color: #000; }\n\n.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow {\n border-bottom-color: #000; }\n\n.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow {\n border-left-color: #000; }\n\n.cal-tooltip-inner {\n color: #fff;\n background-color: #000; }\n", "\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */", "\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */", "\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */", "@font-face {\n font-display: block;\n font-family: \"bootstrap-icons\";\n src: url(\"./fonts/bootstrap-icons.woff2?24e3eb84d0bcaf83d77f904c78ac1f47\") format(\"woff2\"),\nurl(\"./fonts/bootstrap-icons.woff?24e3eb84d0bcaf83d77f904c78ac1f47\") format(\"woff\");\n}\n\n.bi::before,\n[class^=\"bi-\"]::before,\n[class*=\" bi-\"]::before {\n display: inline-block;\n font-family: bootstrap-icons !important;\n font-style: normal;\n font-weight: normal !important;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n vertical-align: -.125em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.bi-123::before { content: \"\\f67f\"; }\n.bi-alarm-fill::before { content: \"\\f101\"; }\n.bi-alarm::before { content: \"\\f102\"; }\n.bi-align-bottom::before { content: \"\\f103\"; }\n.bi-align-center::before { content: \"\\f104\"; }\n.bi-align-end::before { content: \"\\f105\"; }\n.bi-align-middle::before { content: \"\\f106\"; }\n.bi-align-start::before { content: \"\\f107\"; }\n.bi-align-top::before { content: \"\\f108\"; }\n.bi-alt::before { content: \"\\f109\"; }\n.bi-app-indicator::before { content: \"\\f10a\"; }\n.bi-app::before { content: \"\\f10b\"; }\n.bi-archive-fill::before { content: \"\\f10c\"; }\n.bi-archive::before { content: \"\\f10d\"; }\n.bi-arrow-90deg-down::before { content: \"\\f10e\"; }\n.bi-arrow-90deg-left::before { content: \"\\f10f\"; }\n.bi-arrow-90deg-right::before { content: \"\\f110\"; }\n.bi-arrow-90deg-up::before { content: \"\\f111\"; }\n.bi-arrow-bar-down::before { content: \"\\f112\"; }\n.bi-arrow-bar-left::before { content: \"\\f113\"; }\n.bi-arrow-bar-right::before { content: \"\\f114\"; }\n.bi-arrow-bar-up::before { content: \"\\f115\"; }\n.bi-arrow-clockwise::before { content: \"\\f116\"; }\n.bi-arrow-counterclockwise::before { content: \"\\f117\"; }\n.bi-arrow-down-circle-fill::before { content: \"\\f118\"; }\n.bi-arrow-down-circle::before { content: \"\\f119\"; }\n.bi-arrow-down-left-circle-fill::before { content: \"\\f11a\"; }\n.bi-arrow-down-left-circle::before { content: \"\\f11b\"; }\n.bi-arrow-down-left-square-fill::before { content: \"\\f11c\"; }\n.bi-arrow-down-left-square::before { content: \"\\f11d\"; }\n.bi-arrow-down-left::before { content: \"\\f11e\"; }\n.bi-arrow-down-right-circle-fill::before { content: \"\\f11f\"; }\n.bi-arrow-down-right-circle::before { content: \"\\f120\"; }\n.bi-arrow-down-right-square-fill::before { content: \"\\f121\"; }\n.bi-arrow-down-right-square::before { content: \"\\f122\"; }\n.bi-arrow-down-right::before { content: \"\\f123\"; }\n.bi-arrow-down-short::before { content: \"\\f124\"; }\n.bi-arrow-down-square-fill::before { content: \"\\f125\"; }\n.bi-arrow-down-square::before { content: \"\\f126\"; }\n.bi-arrow-down-up::before { content: \"\\f127\"; }\n.bi-arrow-down::before { content: \"\\f128\"; }\n.bi-arrow-left-circle-fill::before { content: \"\\f129\"; }\n.bi-arrow-left-circle::before { content: \"\\f12a\"; }\n.bi-arrow-left-right::before { content: \"\\f12b\"; }\n.bi-arrow-left-short::before { content: \"\\f12c\"; }\n.bi-arrow-left-square-fill::before { content: \"\\f12d\"; }\n.bi-arrow-left-square::before { content: \"\\f12e\"; }\n.bi-arrow-left::before { content: \"\\f12f\"; }\n.bi-arrow-repeat::before { content: \"\\f130\"; }\n.bi-arrow-return-left::before { content: \"\\f131\"; }\n.bi-arrow-return-right::before { content: \"\\f132\"; }\n.bi-arrow-right-circle-fill::before { content: \"\\f133\"; }\n.bi-arrow-right-circle::before { content: \"\\f134\"; }\n.bi-arrow-right-short::before { content: \"\\f135\"; }\n.bi-arrow-right-square-fill::before { content: \"\\f136\"; }\n.bi-arrow-right-square::before { content: \"\\f137\"; }\n.bi-arrow-right::before { content: \"\\f138\"; }\n.bi-arrow-up-circle-fill::before { content: \"\\f139\"; }\n.bi-arrow-up-circle::before { content: \"\\f13a\"; }\n.bi-arrow-up-left-circle-fill::before { content: \"\\f13b\"; }\n.bi-arrow-up-left-circle::before { content: \"\\f13c\"; }\n.bi-arrow-up-left-square-fill::before { content: \"\\f13d\"; }\n.bi-arrow-up-left-square::before { content: \"\\f13e\"; }\n.bi-arrow-up-left::before { content: \"\\f13f\"; }\n.bi-arrow-up-right-circle-fill::before { content: \"\\f140\"; }\n.bi-arrow-up-right-circle::before { content: \"\\f141\"; }\n.bi-arrow-up-right-square-fill::before { content: \"\\f142\"; }\n.bi-arrow-up-right-square::before { content: \"\\f143\"; }\n.bi-arrow-up-right::before { content: \"\\f144\"; }\n.bi-arrow-up-short::before { content: \"\\f145\"; }\n.bi-arrow-up-square-fill::before { content: \"\\f146\"; }\n.bi-arrow-up-square::before { content: \"\\f147\"; }\n.bi-arrow-up::before { content: \"\\f148\"; }\n.bi-arrows-angle-contract::before { content: \"\\f149\"; }\n.bi-arrows-angle-expand::before { content: \"\\f14a\"; }\n.bi-arrows-collapse::before { content: \"\\f14b\"; }\n.bi-arrows-expand::before { content: \"\\f14c\"; }\n.bi-arrows-fullscreen::before { content: \"\\f14d\"; }\n.bi-arrows-move::before { content: \"\\f14e\"; }\n.bi-aspect-ratio-fill::before { content: \"\\f14f\"; }\n.bi-aspect-ratio::before { content: \"\\f150\"; }\n.bi-asterisk::before { content: \"\\f151\"; }\n.bi-at::before { content: \"\\f152\"; }\n.bi-award-fill::before { content: \"\\f153\"; }\n.bi-award::before { content: \"\\f154\"; }\n.bi-back::before { content: \"\\f155\"; }\n.bi-backspace-fill::before { content: \"\\f156\"; }\n.bi-backspace-reverse-fill::before { content: \"\\f157\"; }\n.bi-backspace-reverse::before { content: \"\\f158\"; }\n.bi-backspace::before { content: \"\\f159\"; }\n.bi-badge-3d-fill::before { content: \"\\f15a\"; }\n.bi-badge-3d::before { content: \"\\f15b\"; }\n.bi-badge-4k-fill::before { content: \"\\f15c\"; }\n.bi-badge-4k::before { content: \"\\f15d\"; }\n.bi-badge-8k-fill::before { content: \"\\f15e\"; }\n.bi-badge-8k::before { content: \"\\f15f\"; }\n.bi-badge-ad-fill::before { content: \"\\f160\"; }\n.bi-badge-ad::before { content: \"\\f161\"; }\n.bi-badge-ar-fill::before { content: \"\\f162\"; }\n.bi-badge-ar::before { content: \"\\f163\"; }\n.bi-badge-cc-fill::before { content: \"\\f164\"; }\n.bi-badge-cc::before { content: \"\\f165\"; }\n.bi-badge-hd-fill::before { content: \"\\f166\"; }\n.bi-badge-hd::before { content: \"\\f167\"; }\n.bi-badge-tm-fill::before { content: \"\\f168\"; }\n.bi-badge-tm::before { content: \"\\f169\"; }\n.bi-badge-vo-fill::before { content: \"\\f16a\"; }\n.bi-badge-vo::before { content: \"\\f16b\"; }\n.bi-badge-vr-fill::before { content: \"\\f16c\"; }\n.bi-badge-vr::before { content: \"\\f16d\"; }\n.bi-badge-wc-fill::before { content: \"\\f16e\"; }\n.bi-badge-wc::before { content: \"\\f16f\"; }\n.bi-bag-check-fill::before { content: \"\\f170\"; }\n.bi-bag-check::before { content: \"\\f171\"; }\n.bi-bag-dash-fill::before { content: \"\\f172\"; }\n.bi-bag-dash::before { content: \"\\f173\"; }\n.bi-bag-fill::before { content: \"\\f174\"; }\n.bi-bag-plus-fill::before { content: \"\\f175\"; }\n.bi-bag-plus::before { content: \"\\f176\"; }\n.bi-bag-x-fill::before { content: \"\\f177\"; }\n.bi-bag-x::before { content: \"\\f178\"; }\n.bi-bag::before { content: \"\\f179\"; }\n.bi-bar-chart-fill::before { content: \"\\f17a\"; }\n.bi-bar-chart-line-fill::before { content: \"\\f17b\"; }\n.bi-bar-chart-line::before { content: \"\\f17c\"; }\n.bi-bar-chart-steps::before { content: \"\\f17d\"; }\n.bi-bar-chart::before { content: \"\\f17e\"; }\n.bi-basket-fill::before { content: \"\\f17f\"; }\n.bi-basket::before { content: \"\\f180\"; }\n.bi-basket2-fill::before { content: \"\\f181\"; }\n.bi-basket2::before { content: \"\\f182\"; }\n.bi-basket3-fill::before { content: \"\\f183\"; }\n.bi-basket3::before { content: \"\\f184\"; }\n.bi-battery-charging::before { content: \"\\f185\"; }\n.bi-battery-full::before { content: \"\\f186\"; }\n.bi-battery-half::before { content: \"\\f187\"; }\n.bi-battery::before { content: \"\\f188\"; }\n.bi-bell-fill::before { content: \"\\f189\"; }\n.bi-bell::before { content: \"\\f18a\"; }\n.bi-bezier::before { content: \"\\f18b\"; }\n.bi-bezier2::before { content: \"\\f18c\"; }\n.bi-bicycle::before { content: \"\\f18d\"; }\n.bi-binoculars-fill::before { content: \"\\f18e\"; }\n.bi-binoculars::before { content: \"\\f18f\"; }\n.bi-blockquote-left::before { content: \"\\f190\"; }\n.bi-blockquote-right::before { content: \"\\f191\"; }\n.bi-book-fill::before { content: \"\\f192\"; }\n.bi-book-half::before { content: \"\\f193\"; }\n.bi-book::before { content: \"\\f194\"; }\n.bi-bookmark-check-fill::before { content: \"\\f195\"; }\n.bi-bookmark-check::before { content: \"\\f196\"; }\n.bi-bookmark-dash-fill::before { content: \"\\f197\"; }\n.bi-bookmark-dash::before { content: \"\\f198\"; }\n.bi-bookmark-fill::before { content: \"\\f199\"; }\n.bi-bookmark-heart-fill::before { content: \"\\f19a\"; }\n.bi-bookmark-heart::before { content: \"\\f19b\"; }\n.bi-bookmark-plus-fill::before { content: \"\\f19c\"; }\n.bi-bookmark-plus::before { content: \"\\f19d\"; }\n.bi-bookmark-star-fill::before { content: \"\\f19e\"; }\n.bi-bookmark-star::before { content: \"\\f19f\"; }\n.bi-bookmark-x-fill::before { content: \"\\f1a0\"; }\n.bi-bookmark-x::before { content: \"\\f1a1\"; }\n.bi-bookmark::before { content: \"\\f1a2\"; }\n.bi-bookmarks-fill::before { content: \"\\f1a3\"; }\n.bi-bookmarks::before { content: \"\\f1a4\"; }\n.bi-bookshelf::before { content: \"\\f1a5\"; }\n.bi-bootstrap-fill::before { content: \"\\f1a6\"; }\n.bi-bootstrap-reboot::before { content: \"\\f1a7\"; }\n.bi-bootstrap::before { content: \"\\f1a8\"; }\n.bi-border-all::before { content: \"\\f1a9\"; }\n.bi-border-bottom::before { content: \"\\f1aa\"; }\n.bi-border-center::before { content: \"\\f1ab\"; }\n.bi-border-inner::before { content: \"\\f1ac\"; }\n.bi-border-left::before { content: \"\\f1ad\"; }\n.bi-border-middle::before { content: \"\\f1ae\"; }\n.bi-border-outer::before { content: \"\\f1af\"; }\n.bi-border-right::before { content: \"\\f1b0\"; }\n.bi-border-style::before { content: \"\\f1b1\"; }\n.bi-border-top::before { content: \"\\f1b2\"; }\n.bi-border-width::before { content: \"\\f1b3\"; }\n.bi-border::before { content: \"\\f1b4\"; }\n.bi-bounding-box-circles::before { content: \"\\f1b5\"; }\n.bi-bounding-box::before { content: \"\\f1b6\"; }\n.bi-box-arrow-down-left::before { content: \"\\f1b7\"; }\n.bi-box-arrow-down-right::before { content: \"\\f1b8\"; }\n.bi-box-arrow-down::before { content: \"\\f1b9\"; }\n.bi-box-arrow-in-down-left::before { content: \"\\f1ba\"; }\n.bi-box-arrow-in-down-right::before { content: \"\\f1bb\"; }\n.bi-box-arrow-in-down::before { content: \"\\f1bc\"; }\n.bi-box-arrow-in-left::before { content: \"\\f1bd\"; }\n.bi-box-arrow-in-right::before { content: \"\\f1be\"; }\n.bi-box-arrow-in-up-left::before { content: \"\\f1bf\"; }\n.bi-box-arrow-in-up-right::before { content: \"\\f1c0\"; }\n.bi-box-arrow-in-up::before { content: \"\\f1c1\"; }\n.bi-box-arrow-left::before { content: \"\\f1c2\"; }\n.bi-box-arrow-right::before { content: \"\\f1c3\"; }\n.bi-box-arrow-up-left::before { content: \"\\f1c4\"; }\n.bi-box-arrow-up-right::before { content: \"\\f1c5\"; }\n.bi-box-arrow-up::before { content: \"\\f1c6\"; }\n.bi-box-seam::before { content: \"\\f1c7\"; }\n.bi-box::before { content: \"\\f1c8\"; }\n.bi-braces::before { content: \"\\f1c9\"; }\n.bi-bricks::before { content: \"\\f1ca\"; }\n.bi-briefcase-fill::before { content: \"\\f1cb\"; }\n.bi-briefcase::before { content: \"\\f1cc\"; }\n.bi-brightness-alt-high-fill::before { content: \"\\f1cd\"; }\n.bi-brightness-alt-high::before { content: \"\\f1ce\"; }\n.bi-brightness-alt-low-fill::before { content: \"\\f1cf\"; }\n.bi-brightness-alt-low::before { content: \"\\f1d0\"; }\n.bi-brightness-high-fill::before { content: \"\\f1d1\"; }\n.bi-brightness-high::before { content: \"\\f1d2\"; }\n.bi-brightness-low-fill::before { content: \"\\f1d3\"; }\n.bi-brightness-low::before { content: \"\\f1d4\"; }\n.bi-broadcast-pin::before { content: \"\\f1d5\"; }\n.bi-broadcast::before { content: \"\\f1d6\"; }\n.bi-brush-fill::before { content: \"\\f1d7\"; }\n.bi-brush::before { content: \"\\f1d8\"; }\n.bi-bucket-fill::before { content: \"\\f1d9\"; }\n.bi-bucket::before { content: \"\\f1da\"; }\n.bi-bug-fill::before { content: \"\\f1db\"; }\n.bi-bug::before { content: \"\\f1dc\"; }\n.bi-building::before { content: \"\\f1dd\"; }\n.bi-bullseye::before { content: \"\\f1de\"; }\n.bi-calculator-fill::before { content: \"\\f1df\"; }\n.bi-calculator::before { content: \"\\f1e0\"; }\n.bi-calendar-check-fill::before { content: \"\\f1e1\"; }\n.bi-calendar-check::before { content: \"\\f1e2\"; }\n.bi-calendar-date-fill::before { content: \"\\f1e3\"; }\n.bi-calendar-date::before { content: \"\\f1e4\"; }\n.bi-calendar-day-fill::before { content: \"\\f1e5\"; }\n.bi-calendar-day::before { content: \"\\f1e6\"; }\n.bi-calendar-event-fill::before { content: \"\\f1e7\"; }\n.bi-calendar-event::before { content: \"\\f1e8\"; }\n.bi-calendar-fill::before { content: \"\\f1e9\"; }\n.bi-calendar-minus-fill::before { content: \"\\f1ea\"; }\n.bi-calendar-minus::before { content: \"\\f1eb\"; }\n.bi-calendar-month-fill::before { content: \"\\f1ec\"; }\n.bi-calendar-month::before { content: \"\\f1ed\"; }\n.bi-calendar-plus-fill::before { content: \"\\f1ee\"; }\n.bi-calendar-plus::before { content: \"\\f1ef\"; }\n.bi-calendar-range-fill::before { content: \"\\f1f0\"; }\n.bi-calendar-range::before { content: \"\\f1f1\"; }\n.bi-calendar-week-fill::before { content: \"\\f1f2\"; }\n.bi-calendar-week::before { content: \"\\f1f3\"; }\n.bi-calendar-x-fill::before { content: \"\\f1f4\"; }\n.bi-calendar-x::before { content: \"\\f1f5\"; }\n.bi-calendar::before { content: \"\\f1f6\"; }\n.bi-calendar2-check-fill::before { content: \"\\f1f7\"; }\n.bi-calendar2-check::before { content: \"\\f1f8\"; }\n.bi-calendar2-date-fill::before { content: \"\\f1f9\"; }\n.bi-calendar2-date::before { content: \"\\f1fa\"; }\n.bi-calendar2-day-fill::before { content: \"\\f1fb\"; }\n.bi-calendar2-day::before { content: \"\\f1fc\"; }\n.bi-calendar2-event-fill::before { content: \"\\f1fd\"; }\n.bi-calendar2-event::before { content: \"\\f1fe\"; }\n.bi-calendar2-fill::before { content: \"\\f1ff\"; }\n.bi-calendar2-minus-fill::before { content: \"\\f200\"; }\n.bi-calendar2-minus::before { content: \"\\f201\"; }\n.bi-calendar2-month-fill::before { content: \"\\f202\"; }\n.bi-calendar2-month::before { content: \"\\f203\"; }\n.bi-calendar2-plus-fill::before { content: \"\\f204\"; }\n.bi-calendar2-plus::before { content: \"\\f205\"; }\n.bi-calendar2-range-fill::before { content: \"\\f206\"; }\n.bi-calendar2-range::before { content: \"\\f207\"; }\n.bi-calendar2-week-fill::before { content: \"\\f208\"; }\n.bi-calendar2-week::before { content: \"\\f209\"; }\n.bi-calendar2-x-fill::before { content: \"\\f20a\"; }\n.bi-calendar2-x::before { content: \"\\f20b\"; }\n.bi-calendar2::before { content: \"\\f20c\"; }\n.bi-calendar3-event-fill::before { content: \"\\f20d\"; }\n.bi-calendar3-event::before { content: \"\\f20e\"; }\n.bi-calendar3-fill::before { content: \"\\f20f\"; }\n.bi-calendar3-range-fill::before { content: \"\\f210\"; }\n.bi-calendar3-range::before { content: \"\\f211\"; }\n.bi-calendar3-week-fill::before { content: \"\\f212\"; }\n.bi-calendar3-week::before { content: \"\\f213\"; }\n.bi-calendar3::before { content: \"\\f214\"; }\n.bi-calendar4-event::before { content: \"\\f215\"; }\n.bi-calendar4-range::before { content: \"\\f216\"; }\n.bi-calendar4-week::before { content: \"\\f217\"; }\n.bi-calendar4::before { content: \"\\f218\"; }\n.bi-camera-fill::before { content: \"\\f219\"; }\n.bi-camera-reels-fill::before { content: \"\\f21a\"; }\n.bi-camera-reels::before { content: \"\\f21b\"; }\n.bi-camera-video-fill::before { content: \"\\f21c\"; }\n.bi-camera-video-off-fill::before { content: \"\\f21d\"; }\n.bi-camera-video-off::before { content: \"\\f21e\"; }\n.bi-camera-video::before { content: \"\\f21f\"; }\n.bi-camera::before { content: \"\\f220\"; }\n.bi-camera2::before { content: \"\\f221\"; }\n.bi-capslock-fill::before { content: \"\\f222\"; }\n.bi-capslock::before { content: \"\\f223\"; }\n.bi-card-checklist::before { content: \"\\f224\"; }\n.bi-card-heading::before { content: \"\\f225\"; }\n.bi-card-image::before { content: \"\\f226\"; }\n.bi-card-list::before { content: \"\\f227\"; }\n.bi-card-text::before { content: \"\\f228\"; }\n.bi-caret-down-fill::before { content: \"\\f229\"; }\n.bi-caret-down-square-fill::before { content: \"\\f22a\"; }\n.bi-caret-down-square::before { content: \"\\f22b\"; }\n.bi-caret-down::before { content: \"\\f22c\"; }\n.bi-caret-left-fill::before { content: \"\\f22d\"; }\n.bi-caret-left-square-fill::before { content: \"\\f22e\"; }\n.bi-caret-left-square::before { content: \"\\f22f\"; }\n.bi-caret-left::before { content: \"\\f230\"; }\n.bi-caret-right-fill::before { content: \"\\f231\"; }\n.bi-caret-right-square-fill::before { content: \"\\f232\"; }\n.bi-caret-right-square::before { content: \"\\f233\"; }\n.bi-caret-right::before { content: \"\\f234\"; }\n.bi-caret-up-fill::before { content: \"\\f235\"; }\n.bi-caret-up-square-fill::before { content: \"\\f236\"; }\n.bi-caret-up-square::before { content: \"\\f237\"; }\n.bi-caret-up::before { content: \"\\f238\"; }\n.bi-cart-check-fill::before { content: \"\\f239\"; }\n.bi-cart-check::before { content: \"\\f23a\"; }\n.bi-cart-dash-fill::before { content: \"\\f23b\"; }\n.bi-cart-dash::before { content: \"\\f23c\"; }\n.bi-cart-fill::before { content: \"\\f23d\"; }\n.bi-cart-plus-fill::before { content: \"\\f23e\"; }\n.bi-cart-plus::before { content: \"\\f23f\"; }\n.bi-cart-x-fill::before { content: \"\\f240\"; }\n.bi-cart-x::before { content: \"\\f241\"; }\n.bi-cart::before { content: \"\\f242\"; }\n.bi-cart2::before { content: \"\\f243\"; }\n.bi-cart3::before { content: \"\\f244\"; }\n.bi-cart4::before { content: \"\\f245\"; }\n.bi-cash-stack::before { content: \"\\f246\"; }\n.bi-cash::before { content: \"\\f247\"; }\n.bi-cast::before { content: \"\\f248\"; }\n.bi-chat-dots-fill::before { content: \"\\f249\"; }\n.bi-chat-dots::before { content: \"\\f24a\"; }\n.bi-chat-fill::before { content: \"\\f24b\"; }\n.bi-chat-left-dots-fill::before { content: \"\\f24c\"; }\n.bi-chat-left-dots::before { content: \"\\f24d\"; }\n.bi-chat-left-fill::before { content: \"\\f24e\"; }\n.bi-chat-left-quote-fill::before { content: \"\\f24f\"; }\n.bi-chat-left-quote::before { content: \"\\f250\"; }\n.bi-chat-left-text-fill::before { content: \"\\f251\"; }\n.bi-chat-left-text::before { content: \"\\f252\"; }\n.bi-chat-left::before { content: \"\\f253\"; }\n.bi-chat-quote-fill::before { content: \"\\f254\"; }\n.bi-chat-quote::before { content: \"\\f255\"; }\n.bi-chat-right-dots-fill::before { content: \"\\f256\"; }\n.bi-chat-right-dots::before { content: \"\\f257\"; }\n.bi-chat-right-fill::before { content: \"\\f258\"; }\n.bi-chat-right-quote-fill::before { content: \"\\f259\"; }\n.bi-chat-right-quote::before { content: \"\\f25a\"; }\n.bi-chat-right-text-fill::before { content: \"\\f25b\"; }\n.bi-chat-right-text::before { content: \"\\f25c\"; }\n.bi-chat-right::before { content: \"\\f25d\"; }\n.bi-chat-square-dots-fill::before { content: \"\\f25e\"; }\n.bi-chat-square-dots::before { content: \"\\f25f\"; }\n.bi-chat-square-fill::before { content: \"\\f260\"; }\n.bi-chat-square-quote-fill::before { content: \"\\f261\"; }\n.bi-chat-square-quote::before { content: \"\\f262\"; }\n.bi-chat-square-text-fill::before { content: \"\\f263\"; }\n.bi-chat-square-text::before { content: \"\\f264\"; }\n.bi-chat-square::before { content: \"\\f265\"; }\n.bi-chat-text-fill::before { content: \"\\f266\"; }\n.bi-chat-text::before { content: \"\\f267\"; }\n.bi-chat::before { content: \"\\f268\"; }\n.bi-check-all::before { content: \"\\f269\"; }\n.bi-check-circle-fill::before { content: \"\\f26a\"; }\n.bi-check-circle::before { content: \"\\f26b\"; }\n.bi-check-square-fill::before { content: \"\\f26c\"; }\n.bi-check-square::before { content: \"\\f26d\"; }\n.bi-check::before { content: \"\\f26e\"; }\n.bi-check2-all::before { content: \"\\f26f\"; }\n.bi-check2-circle::before { content: \"\\f270\"; }\n.bi-check2-square::before { content: \"\\f271\"; }\n.bi-check2::before { content: \"\\f272\"; }\n.bi-chevron-bar-contract::before { content: \"\\f273\"; }\n.bi-chevron-bar-down::before { content: \"\\f274\"; }\n.bi-chevron-bar-expand::before { content: \"\\f275\"; }\n.bi-chevron-bar-left::before { content: \"\\f276\"; }\n.bi-chevron-bar-right::before { content: \"\\f277\"; }\n.bi-chevron-bar-up::before { content: \"\\f278\"; }\n.bi-chevron-compact-down::before { content: \"\\f279\"; }\n.bi-chevron-compact-left::before { content: \"\\f27a\"; }\n.bi-chevron-compact-right::before { content: \"\\f27b\"; }\n.bi-chevron-compact-up::before { content: \"\\f27c\"; }\n.bi-chevron-contract::before { content: \"\\f27d\"; }\n.bi-chevron-double-down::before { content: \"\\f27e\"; }\n.bi-chevron-double-left::before { content: \"\\f27f\"; }\n.bi-chevron-double-right::before { content: \"\\f280\"; }\n.bi-chevron-double-up::before { content: \"\\f281\"; }\n.bi-chevron-down::before { content: \"\\f282\"; }\n.bi-chevron-expand::before { content: \"\\f283\"; }\n.bi-chevron-left::before { content: \"\\f284\"; }\n.bi-chevron-right::before { content: \"\\f285\"; }\n.bi-chevron-up::before { content: \"\\f286\"; }\n.bi-circle-fill::before { content: \"\\f287\"; }\n.bi-circle-half::before { content: \"\\f288\"; }\n.bi-circle-square::before { content: \"\\f289\"; }\n.bi-circle::before { content: \"\\f28a\"; }\n.bi-clipboard-check::before { content: \"\\f28b\"; }\n.bi-clipboard-data::before { content: \"\\f28c\"; }\n.bi-clipboard-minus::before { content: \"\\f28d\"; }\n.bi-clipboard-plus::before { content: \"\\f28e\"; }\n.bi-clipboard-x::before { content: \"\\f28f\"; }\n.bi-clipboard::before { content: \"\\f290\"; }\n.bi-clock-fill::before { content: \"\\f291\"; }\n.bi-clock-history::before { content: \"\\f292\"; }\n.bi-clock::before { content: \"\\f293\"; }\n.bi-cloud-arrow-down-fill::before { content: \"\\f294\"; }\n.bi-cloud-arrow-down::before { content: \"\\f295\"; }\n.bi-cloud-arrow-up-fill::before { content: \"\\f296\"; }\n.bi-cloud-arrow-up::before { content: \"\\f297\"; }\n.bi-cloud-check-fill::before { content: \"\\f298\"; }\n.bi-cloud-check::before { content: \"\\f299\"; }\n.bi-cloud-download-fill::before { content: \"\\f29a\"; }\n.bi-cloud-download::before { content: \"\\f29b\"; }\n.bi-cloud-drizzle-fill::before { content: \"\\f29c\"; }\n.bi-cloud-drizzle::before { content: \"\\f29d\"; }\n.bi-cloud-fill::before { content: \"\\f29e\"; }\n.bi-cloud-fog-fill::before { content: \"\\f29f\"; }\n.bi-cloud-fog::before { content: \"\\f2a0\"; }\n.bi-cloud-fog2-fill::before { content: \"\\f2a1\"; }\n.bi-cloud-fog2::before { content: \"\\f2a2\"; }\n.bi-cloud-hail-fill::before { content: \"\\f2a3\"; }\n.bi-cloud-hail::before { content: \"\\f2a4\"; }\n.bi-cloud-haze-1::before { content: \"\\f2a5\"; }\n.bi-cloud-haze-fill::before { content: \"\\f2a6\"; }\n.bi-cloud-haze::before { content: \"\\f2a7\"; }\n.bi-cloud-haze2-fill::before { content: \"\\f2a8\"; }\n.bi-cloud-lightning-fill::before { content: \"\\f2a9\"; }\n.bi-cloud-lightning-rain-fill::before { content: \"\\f2aa\"; }\n.bi-cloud-lightning-rain::before { content: \"\\f2ab\"; }\n.bi-cloud-lightning::before { content: \"\\f2ac\"; }\n.bi-cloud-minus-fill::before { content: \"\\f2ad\"; }\n.bi-cloud-minus::before { content: \"\\f2ae\"; }\n.bi-cloud-moon-fill::before { content: \"\\f2af\"; }\n.bi-cloud-moon::before { content: \"\\f2b0\"; }\n.bi-cloud-plus-fill::before { content: \"\\f2b1\"; }\n.bi-cloud-plus::before { content: \"\\f2b2\"; }\n.bi-cloud-rain-fill::before { content: \"\\f2b3\"; }\n.bi-cloud-rain-heavy-fill::before { content: \"\\f2b4\"; }\n.bi-cloud-rain-heavy::before { content: \"\\f2b5\"; }\n.bi-cloud-rain::before { content: \"\\f2b6\"; }\n.bi-cloud-slash-fill::before { content: \"\\f2b7\"; }\n.bi-cloud-slash::before { content: \"\\f2b8\"; }\n.bi-cloud-sleet-fill::before { content: \"\\f2b9\"; }\n.bi-cloud-sleet::before { content: \"\\f2ba\"; }\n.bi-cloud-snow-fill::before { content: \"\\f2bb\"; }\n.bi-cloud-snow::before { content: \"\\f2bc\"; }\n.bi-cloud-sun-fill::before { content: \"\\f2bd\"; }\n.bi-cloud-sun::before { content: \"\\f2be\"; }\n.bi-cloud-upload-fill::before { content: \"\\f2bf\"; }\n.bi-cloud-upload::before { content: \"\\f2c0\"; }\n.bi-cloud::before { content: \"\\f2c1\"; }\n.bi-clouds-fill::before { content: \"\\f2c2\"; }\n.bi-clouds::before { content: \"\\f2c3\"; }\n.bi-cloudy-fill::before { content: \"\\f2c4\"; }\n.bi-cloudy::before { content: \"\\f2c5\"; }\n.bi-code-slash::before { content: \"\\f2c6\"; }\n.bi-code-square::before { content: \"\\f2c7\"; }\n.bi-code::before { content: \"\\f2c8\"; }\n.bi-collection-fill::before { content: \"\\f2c9\"; }\n.bi-collection-play-fill::before { content: \"\\f2ca\"; }\n.bi-collection-play::before { content: \"\\f2cb\"; }\n.bi-collection::before { content: \"\\f2cc\"; }\n.bi-columns-gap::before { content: \"\\f2cd\"; }\n.bi-columns::before { content: \"\\f2ce\"; }\n.bi-command::before { content: \"\\f2cf\"; }\n.bi-compass-fill::before { content: \"\\f2d0\"; }\n.bi-compass::before { content: \"\\f2d1\"; }\n.bi-cone-striped::before { content: \"\\f2d2\"; }\n.bi-cone::before { content: \"\\f2d3\"; }\n.bi-controller::before { content: \"\\f2d4\"; }\n.bi-cpu-fill::before { content: \"\\f2d5\"; }\n.bi-cpu::before { content: \"\\f2d6\"; }\n.bi-credit-card-2-back-fill::before { content: \"\\f2d7\"; }\n.bi-credit-card-2-back::before { content: \"\\f2d8\"; }\n.bi-credit-card-2-front-fill::before { content: \"\\f2d9\"; }\n.bi-credit-card-2-front::before { content: \"\\f2da\"; }\n.bi-credit-card-fill::before { content: \"\\f2db\"; }\n.bi-credit-card::before { content: \"\\f2dc\"; }\n.bi-crop::before { content: \"\\f2dd\"; }\n.bi-cup-fill::before { content: \"\\f2de\"; }\n.bi-cup-straw::before { content: \"\\f2df\"; }\n.bi-cup::before { content: \"\\f2e0\"; }\n.bi-cursor-fill::before { content: \"\\f2e1\"; }\n.bi-cursor-text::before { content: \"\\f2e2\"; }\n.bi-cursor::before { content: \"\\f2e3\"; }\n.bi-dash-circle-dotted::before { content: \"\\f2e4\"; }\n.bi-dash-circle-fill::before { content: \"\\f2e5\"; }\n.bi-dash-circle::before { content: \"\\f2e6\"; }\n.bi-dash-square-dotted::before { content: \"\\f2e7\"; }\n.bi-dash-square-fill::before { content: \"\\f2e8\"; }\n.bi-dash-square::before { content: \"\\f2e9\"; }\n.bi-dash::before { content: \"\\f2ea\"; }\n.bi-diagram-2-fill::before { content: \"\\f2eb\"; }\n.bi-diagram-2::before { content: \"\\f2ec\"; }\n.bi-diagram-3-fill::before { content: \"\\f2ed\"; }\n.bi-diagram-3::before { content: \"\\f2ee\"; }\n.bi-diamond-fill::before { content: \"\\f2ef\"; }\n.bi-diamond-half::before { content: \"\\f2f0\"; }\n.bi-diamond::before { content: \"\\f2f1\"; }\n.bi-dice-1-fill::before { content: \"\\f2f2\"; }\n.bi-dice-1::before { content: \"\\f2f3\"; }\n.bi-dice-2-fill::before { content: \"\\f2f4\"; }\n.bi-dice-2::before { content: \"\\f2f5\"; }\n.bi-dice-3-fill::before { content: \"\\f2f6\"; }\n.bi-dice-3::before { content: \"\\f2f7\"; }\n.bi-dice-4-fill::before { content: \"\\f2f8\"; }\n.bi-dice-4::before { content: \"\\f2f9\"; }\n.bi-dice-5-fill::before { content: \"\\f2fa\"; }\n.bi-dice-5::before { content: \"\\f2fb\"; }\n.bi-dice-6-fill::before { content: \"\\f2fc\"; }\n.bi-dice-6::before { content: \"\\f2fd\"; }\n.bi-disc-fill::before { content: \"\\f2fe\"; }\n.bi-disc::before { content: \"\\f2ff\"; }\n.bi-discord::before { content: \"\\f300\"; }\n.bi-display-fill::before { content: \"\\f301\"; }\n.bi-display::before { content: \"\\f302\"; }\n.bi-distribute-horizontal::before { content: \"\\f303\"; }\n.bi-distribute-vertical::before { content: \"\\f304\"; }\n.bi-door-closed-fill::before { content: \"\\f305\"; }\n.bi-door-closed::before { content: \"\\f306\"; }\n.bi-door-open-fill::before { content: \"\\f307\"; }\n.bi-door-open::before { content: \"\\f308\"; }\n.bi-dot::before { content: \"\\f309\"; }\n.bi-download::before { content: \"\\f30a\"; }\n.bi-droplet-fill::before { content: \"\\f30b\"; }\n.bi-droplet-half::before { content: \"\\f30c\"; }\n.bi-droplet::before { content: \"\\f30d\"; }\n.bi-earbuds::before { content: \"\\f30e\"; }\n.bi-easel-fill::before { content: \"\\f30f\"; }\n.bi-easel::before { content: \"\\f310\"; }\n.bi-egg-fill::before { content: \"\\f311\"; }\n.bi-egg-fried::before { content: \"\\f312\"; }\n.bi-egg::before { content: \"\\f313\"; }\n.bi-eject-fill::before { content: \"\\f314\"; }\n.bi-eject::before { content: \"\\f315\"; }\n.bi-emoji-angry-fill::before { content: \"\\f316\"; }\n.bi-emoji-angry::before { content: \"\\f317\"; }\n.bi-emoji-dizzy-fill::before { content: \"\\f318\"; }\n.bi-emoji-dizzy::before { content: \"\\f319\"; }\n.bi-emoji-expressionless-fill::before { content: \"\\f31a\"; }\n.bi-emoji-expressionless::before { content: \"\\f31b\"; }\n.bi-emoji-frown-fill::before { content: \"\\f31c\"; }\n.bi-emoji-frown::before { content: \"\\f31d\"; }\n.bi-emoji-heart-eyes-fill::before { content: \"\\f31e\"; }\n.bi-emoji-heart-eyes::before { content: \"\\f31f\"; }\n.bi-emoji-laughing-fill::before { content: \"\\f320\"; }\n.bi-emoji-laughing::before { content: \"\\f321\"; }\n.bi-emoji-neutral-fill::before { content: \"\\f322\"; }\n.bi-emoji-neutral::before { content: \"\\f323\"; }\n.bi-emoji-smile-fill::before { content: \"\\f324\"; }\n.bi-emoji-smile-upside-down-fill::before { content: \"\\f325\"; }\n.bi-emoji-smile-upside-down::before { content: \"\\f326\"; }\n.bi-emoji-smile::before { content: \"\\f327\"; }\n.bi-emoji-sunglasses-fill::before { content: \"\\f328\"; }\n.bi-emoji-sunglasses::before { content: \"\\f329\"; }\n.bi-emoji-wink-fill::before { content: \"\\f32a\"; }\n.bi-emoji-wink::before { content: \"\\f32b\"; }\n.bi-envelope-fill::before { content: \"\\f32c\"; }\n.bi-envelope-open-fill::before { content: \"\\f32d\"; }\n.bi-envelope-open::before { content: \"\\f32e\"; }\n.bi-envelope::before { content: \"\\f32f\"; }\n.bi-eraser-fill::before { content: \"\\f330\"; }\n.bi-eraser::before { content: \"\\f331\"; }\n.bi-exclamation-circle-fill::before { content: \"\\f332\"; }\n.bi-exclamation-circle::before { content: \"\\f333\"; }\n.bi-exclamation-diamond-fill::before { content: \"\\f334\"; }\n.bi-exclamation-diamond::before { content: \"\\f335\"; }\n.bi-exclamation-octagon-fill::before { content: \"\\f336\"; }\n.bi-exclamation-octagon::before { content: \"\\f337\"; }\n.bi-exclamation-square-fill::before { content: \"\\f338\"; }\n.bi-exclamation-square::before { content: \"\\f339\"; }\n.bi-exclamation-triangle-fill::before { content: \"\\f33a\"; }\n.bi-exclamation-triangle::before { content: \"\\f33b\"; }\n.bi-exclamation::before { content: \"\\f33c\"; }\n.bi-exclude::before { content: \"\\f33d\"; }\n.bi-eye-fill::before { content: \"\\f33e\"; }\n.bi-eye-slash-fill::before { content: \"\\f33f\"; }\n.bi-eye-slash::before { content: \"\\f340\"; }\n.bi-eye::before { content: \"\\f341\"; }\n.bi-eyedropper::before { content: \"\\f342\"; }\n.bi-eyeglasses::before { content: \"\\f343\"; }\n.bi-facebook::before { content: \"\\f344\"; }\n.bi-file-arrow-down-fill::before { content: \"\\f345\"; }\n.bi-file-arrow-down::before { content: \"\\f346\"; }\n.bi-file-arrow-up-fill::before { content: \"\\f347\"; }\n.bi-file-arrow-up::before { content: \"\\f348\"; }\n.bi-file-bar-graph-fill::before { content: \"\\f349\"; }\n.bi-file-bar-graph::before { content: \"\\f34a\"; }\n.bi-file-binary-fill::before { content: \"\\f34b\"; }\n.bi-file-binary::before { content: \"\\f34c\"; }\n.bi-file-break-fill::before { content: \"\\f34d\"; }\n.bi-file-break::before { content: \"\\f34e\"; }\n.bi-file-check-fill::before { content: \"\\f34f\"; }\n.bi-file-check::before { content: \"\\f350\"; }\n.bi-file-code-fill::before { content: \"\\f351\"; }\n.bi-file-code::before { content: \"\\f352\"; }\n.bi-file-diff-fill::before { content: \"\\f353\"; }\n.bi-file-diff::before { content: \"\\f354\"; }\n.bi-file-earmark-arrow-down-fill::before { content: \"\\f355\"; }\n.bi-file-earmark-arrow-down::before { content: \"\\f356\"; }\n.bi-file-earmark-arrow-up-fill::before { content: \"\\f357\"; }\n.bi-file-earmark-arrow-up::before { content: \"\\f358\"; }\n.bi-file-earmark-bar-graph-fill::before { content: \"\\f359\"; }\n.bi-file-earmark-bar-graph::before { content: \"\\f35a\"; }\n.bi-file-earmark-binary-fill::before { content: \"\\f35b\"; }\n.bi-file-earmark-binary::before { content: \"\\f35c\"; }\n.bi-file-earmark-break-fill::before { content: \"\\f35d\"; }\n.bi-file-earmark-break::before { content: \"\\f35e\"; }\n.bi-file-earmark-check-fill::before { content: \"\\f35f\"; }\n.bi-file-earmark-check::before { content: \"\\f360\"; }\n.bi-file-earmark-code-fill::before { content: \"\\f361\"; }\n.bi-file-earmark-code::before { content: \"\\f362\"; }\n.bi-file-earmark-diff-fill::before { content: \"\\f363\"; }\n.bi-file-earmark-diff::before { content: \"\\f364\"; }\n.bi-file-earmark-easel-fill::before { content: \"\\f365\"; }\n.bi-file-earmark-easel::before { content: \"\\f366\"; }\n.bi-file-earmark-excel-fill::before { content: \"\\f367\"; }\n.bi-file-earmark-excel::before { content: \"\\f368\"; }\n.bi-file-earmark-fill::before { content: \"\\f369\"; }\n.bi-file-earmark-font-fill::before { content: \"\\f36a\"; }\n.bi-file-earmark-font::before { content: \"\\f36b\"; }\n.bi-file-earmark-image-fill::before { content: \"\\f36c\"; }\n.bi-file-earmark-image::before { content: \"\\f36d\"; }\n.bi-file-earmark-lock-fill::before { content: \"\\f36e\"; }\n.bi-file-earmark-lock::before { content: \"\\f36f\"; }\n.bi-file-earmark-lock2-fill::before { content: \"\\f370\"; }\n.bi-file-earmark-lock2::before { content: \"\\f371\"; }\n.bi-file-earmark-medical-fill::before { content: \"\\f372\"; }\n.bi-file-earmark-medical::before { content: \"\\f373\"; }\n.bi-file-earmark-minus-fill::before { content: \"\\f374\"; }\n.bi-file-earmark-minus::before { content: \"\\f375\"; }\n.bi-file-earmark-music-fill::before { content: \"\\f376\"; }\n.bi-file-earmark-music::before { content: \"\\f377\"; }\n.bi-file-earmark-person-fill::before { content: \"\\f378\"; }\n.bi-file-earmark-person::before { content: \"\\f379\"; }\n.bi-file-earmark-play-fill::before { content: \"\\f37a\"; }\n.bi-file-earmark-play::before { content: \"\\f37b\"; }\n.bi-file-earmark-plus-fill::before { content: \"\\f37c\"; }\n.bi-file-earmark-plus::before { content: \"\\f37d\"; }\n.bi-file-earmark-post-fill::before { content: \"\\f37e\"; }\n.bi-file-earmark-post::before { content: \"\\f37f\"; }\n.bi-file-earmark-ppt-fill::before { content: \"\\f380\"; }\n.bi-file-earmark-ppt::before { content: \"\\f381\"; }\n.bi-file-earmark-richtext-fill::before { content: \"\\f382\"; }\n.bi-file-earmark-richtext::before { content: \"\\f383\"; }\n.bi-file-earmark-ruled-fill::before { content: \"\\f384\"; }\n.bi-file-earmark-ruled::before { content: \"\\f385\"; }\n.bi-file-earmark-slides-fill::before { content: \"\\f386\"; }\n.bi-file-earmark-slides::before { content: \"\\f387\"; }\n.bi-file-earmark-spreadsheet-fill::before { content: \"\\f388\"; }\n.bi-file-earmark-spreadsheet::before { content: \"\\f389\"; }\n.bi-file-earmark-text-fill::before { content: \"\\f38a\"; }\n.bi-file-earmark-text::before { content: \"\\f38b\"; }\n.bi-file-earmark-word-fill::before { content: \"\\f38c\"; }\n.bi-file-earmark-word::before { content: \"\\f38d\"; }\n.bi-file-earmark-x-fill::before { content: \"\\f38e\"; }\n.bi-file-earmark-x::before { content: \"\\f38f\"; }\n.bi-file-earmark-zip-fill::before { content: \"\\f390\"; }\n.bi-file-earmark-zip::before { content: \"\\f391\"; }\n.bi-file-earmark::before { content: \"\\f392\"; }\n.bi-file-easel-fill::before { content: \"\\f393\"; }\n.bi-file-easel::before { content: \"\\f394\"; }\n.bi-file-excel-fill::before { content: \"\\f395\"; }\n.bi-file-excel::before { content: \"\\f396\"; }\n.bi-file-fill::before { content: \"\\f397\"; }\n.bi-file-font-fill::before { content: \"\\f398\"; }\n.bi-file-font::before { content: \"\\f399\"; }\n.bi-file-image-fill::before { content: \"\\f39a\"; }\n.bi-file-image::before { content: \"\\f39b\"; }\n.bi-file-lock-fill::before { content: \"\\f39c\"; }\n.bi-file-lock::before { content: \"\\f39d\"; }\n.bi-file-lock2-fill::before { content: \"\\f39e\"; }\n.bi-file-lock2::before { content: \"\\f39f\"; }\n.bi-file-medical-fill::before { content: \"\\f3a0\"; }\n.bi-file-medical::before { content: \"\\f3a1\"; }\n.bi-file-minus-fill::before { content: \"\\f3a2\"; }\n.bi-file-minus::before { content: \"\\f3a3\"; }\n.bi-file-music-fill::before { content: \"\\f3a4\"; }\n.bi-file-music::before { content: \"\\f3a5\"; }\n.bi-file-person-fill::before { content: \"\\f3a6\"; }\n.bi-file-person::before { content: \"\\f3a7\"; }\n.bi-file-play-fill::before { content: \"\\f3a8\"; }\n.bi-file-play::before { content: \"\\f3a9\"; }\n.bi-file-plus-fill::before { content: \"\\f3aa\"; }\n.bi-file-plus::before { content: \"\\f3ab\"; }\n.bi-file-post-fill::before { content: \"\\f3ac\"; }\n.bi-file-post::before { content: \"\\f3ad\"; }\n.bi-file-ppt-fill::before { content: \"\\f3ae\"; }\n.bi-file-ppt::before { content: \"\\f3af\"; }\n.bi-file-richtext-fill::before { content: \"\\f3b0\"; }\n.bi-file-richtext::before { content: \"\\f3b1\"; }\n.bi-file-ruled-fill::before { content: \"\\f3b2\"; }\n.bi-file-ruled::before { content: \"\\f3b3\"; }\n.bi-file-slides-fill::before { content: \"\\f3b4\"; }\n.bi-file-slides::before { content: \"\\f3b5\"; }\n.bi-file-spreadsheet-fill::before { content: \"\\f3b6\"; }\n.bi-file-spreadsheet::before { content: \"\\f3b7\"; }\n.bi-file-text-fill::before { content: \"\\f3b8\"; }\n.bi-file-text::before { content: \"\\f3b9\"; }\n.bi-file-word-fill::before { content: \"\\f3ba\"; }\n.bi-file-word::before { content: \"\\f3bb\"; }\n.bi-file-x-fill::before { content: \"\\f3bc\"; }\n.bi-file-x::before { content: \"\\f3bd\"; }\n.bi-file-zip-fill::before { content: \"\\f3be\"; }\n.bi-file-zip::before { content: \"\\f3bf\"; }\n.bi-file::before { content: \"\\f3c0\"; }\n.bi-files-alt::before { content: \"\\f3c1\"; }\n.bi-files::before { content: \"\\f3c2\"; }\n.bi-film::before { content: \"\\f3c3\"; }\n.bi-filter-circle-fill::before { content: \"\\f3c4\"; }\n.bi-filter-circle::before { content: \"\\f3c5\"; }\n.bi-filter-left::before { content: \"\\f3c6\"; }\n.bi-filter-right::before { content: \"\\f3c7\"; }\n.bi-filter-square-fill::before { content: \"\\f3c8\"; }\n.bi-filter-square::before { content: \"\\f3c9\"; }\n.bi-filter::before { content: \"\\f3ca\"; }\n.bi-flag-fill::before { content: \"\\f3cb\"; }\n.bi-flag::before { content: \"\\f3cc\"; }\n.bi-flower1::before { content: \"\\f3cd\"; }\n.bi-flower2::before { content: \"\\f3ce\"; }\n.bi-flower3::before { content: \"\\f3cf\"; }\n.bi-folder-check::before { content: \"\\f3d0\"; }\n.bi-folder-fill::before { content: \"\\f3d1\"; }\n.bi-folder-minus::before { content: \"\\f3d2\"; }\n.bi-folder-plus::before { content: \"\\f3d3\"; }\n.bi-folder-symlink-fill::before { content: \"\\f3d4\"; }\n.bi-folder-symlink::before { content: \"\\f3d5\"; }\n.bi-folder-x::before { content: \"\\f3d6\"; }\n.bi-folder::before { content: \"\\f3d7\"; }\n.bi-folder2-open::before { content: \"\\f3d8\"; }\n.bi-folder2::before { content: \"\\f3d9\"; }\n.bi-fonts::before { content: \"\\f3da\"; }\n.bi-forward-fill::before { content: \"\\f3db\"; }\n.bi-forward::before { content: \"\\f3dc\"; }\n.bi-front::before { content: \"\\f3dd\"; }\n.bi-fullscreen-exit::before { content: \"\\f3de\"; }\n.bi-fullscreen::before { content: \"\\f3df\"; }\n.bi-funnel-fill::before { content: \"\\f3e0\"; }\n.bi-funnel::before { content: \"\\f3e1\"; }\n.bi-gear-fill::before { content: \"\\f3e2\"; }\n.bi-gear-wide-connected::before { content: \"\\f3e3\"; }\n.bi-gear-wide::before { content: \"\\f3e4\"; }\n.bi-gear::before { content: \"\\f3e5\"; }\n.bi-gem::before { content: \"\\f3e6\"; }\n.bi-geo-alt-fill::before { content: \"\\f3e7\"; }\n.bi-geo-alt::before { content: \"\\f3e8\"; }\n.bi-geo-fill::before { content: \"\\f3e9\"; }\n.bi-geo::before { content: \"\\f3ea\"; }\n.bi-gift-fill::before { content: \"\\f3eb\"; }\n.bi-gift::before { content: \"\\f3ec\"; }\n.bi-github::before { content: \"\\f3ed\"; }\n.bi-globe::before { content: \"\\f3ee\"; }\n.bi-globe2::before { content: \"\\f3ef\"; }\n.bi-google::before { content: \"\\f3f0\"; }\n.bi-graph-down::before { content: \"\\f3f1\"; }\n.bi-graph-up::before { content: \"\\f3f2\"; }\n.bi-grid-1x2-fill::before { content: \"\\f3f3\"; }\n.bi-grid-1x2::before { content: \"\\f3f4\"; }\n.bi-grid-3x2-gap-fill::before { content: \"\\f3f5\"; }\n.bi-grid-3x2-gap::before { content: \"\\f3f6\"; }\n.bi-grid-3x2::before { content: \"\\f3f7\"; }\n.bi-grid-3x3-gap-fill::before { content: \"\\f3f8\"; }\n.bi-grid-3x3-gap::before { content: \"\\f3f9\"; }\n.bi-grid-3x3::before { content: \"\\f3fa\"; }\n.bi-grid-fill::before { content: \"\\f3fb\"; }\n.bi-grid::before { content: \"\\f3fc\"; }\n.bi-grip-horizontal::before { content: \"\\f3fd\"; }\n.bi-grip-vertical::before { content: \"\\f3fe\"; }\n.bi-hammer::before { content: \"\\f3ff\"; }\n.bi-hand-index-fill::before { content: \"\\f400\"; }\n.bi-hand-index-thumb-fill::before { content: \"\\f401\"; }\n.bi-hand-index-thumb::before { content: \"\\f402\"; }\n.bi-hand-index::before { content: \"\\f403\"; }\n.bi-hand-thumbs-down-fill::before { content: \"\\f404\"; }\n.bi-hand-thumbs-down::before { content: \"\\f405\"; }\n.bi-hand-thumbs-up-fill::before { content: \"\\f406\"; }\n.bi-hand-thumbs-up::before { content: \"\\f407\"; }\n.bi-handbag-fill::before { content: \"\\f408\"; }\n.bi-handbag::before { content: \"\\f409\"; }\n.bi-hash::before { content: \"\\f40a\"; }\n.bi-hdd-fill::before { content: \"\\f40b\"; }\n.bi-hdd-network-fill::before { content: \"\\f40c\"; }\n.bi-hdd-network::before { content: \"\\f40d\"; }\n.bi-hdd-rack-fill::before { content: \"\\f40e\"; }\n.bi-hdd-rack::before { content: \"\\f40f\"; }\n.bi-hdd-stack-fill::before { content: \"\\f410\"; }\n.bi-hdd-stack::before { content: \"\\f411\"; }\n.bi-hdd::before { content: \"\\f412\"; }\n.bi-headphones::before { content: \"\\f413\"; }\n.bi-headset::before { content: \"\\f414\"; }\n.bi-heart-fill::before { content: \"\\f415\"; }\n.bi-heart-half::before { content: \"\\f416\"; }\n.bi-heart::before { content: \"\\f417\"; }\n.bi-heptagon-fill::before { content: \"\\f418\"; }\n.bi-heptagon-half::before { content: \"\\f419\"; }\n.bi-heptagon::before { content: \"\\f41a\"; }\n.bi-hexagon-fill::before { content: \"\\f41b\"; }\n.bi-hexagon-half::before { content: \"\\f41c\"; }\n.bi-hexagon::before { content: \"\\f41d\"; }\n.bi-hourglass-bottom::before { content: \"\\f41e\"; }\n.bi-hourglass-split::before { content: \"\\f41f\"; }\n.bi-hourglass-top::before { content: \"\\f420\"; }\n.bi-hourglass::before { content: \"\\f421\"; }\n.bi-house-door-fill::before { content: \"\\f422\"; }\n.bi-house-door::before { content: \"\\f423\"; }\n.bi-house-fill::before { content: \"\\f424\"; }\n.bi-house::before { content: \"\\f425\"; }\n.bi-hr::before { content: \"\\f426\"; }\n.bi-hurricane::before { content: \"\\f427\"; }\n.bi-image-alt::before { content: \"\\f428\"; }\n.bi-image-fill::before { content: \"\\f429\"; }\n.bi-image::before { content: \"\\f42a\"; }\n.bi-images::before { content: \"\\f42b\"; }\n.bi-inbox-fill::before { content: \"\\f42c\"; }\n.bi-inbox::before { content: \"\\f42d\"; }\n.bi-inboxes-fill::before { content: \"\\f42e\"; }\n.bi-inboxes::before { content: \"\\f42f\"; }\n.bi-info-circle-fill::before { content: \"\\f430\"; }\n.bi-info-circle::before { content: \"\\f431\"; }\n.bi-info-square-fill::before { content: \"\\f432\"; }\n.bi-info-square::before { content: \"\\f433\"; }\n.bi-info::before { content: \"\\f434\"; }\n.bi-input-cursor-text::before { content: \"\\f435\"; }\n.bi-input-cursor::before { content: \"\\f436\"; }\n.bi-instagram::before { content: \"\\f437\"; }\n.bi-intersect::before { content: \"\\f438\"; }\n.bi-journal-album::before { content: \"\\f439\"; }\n.bi-journal-arrow-down::before { content: \"\\f43a\"; }\n.bi-journal-arrow-up::before { content: \"\\f43b\"; }\n.bi-journal-bookmark-fill::before { content: \"\\f43c\"; }\n.bi-journal-bookmark::before { content: \"\\f43d\"; }\n.bi-journal-check::before { content: \"\\f43e\"; }\n.bi-journal-code::before { content: \"\\f43f\"; }\n.bi-journal-medical::before { content: \"\\f440\"; }\n.bi-journal-minus::before { content: \"\\f441\"; }\n.bi-journal-plus::before { content: \"\\f442\"; }\n.bi-journal-richtext::before { content: \"\\f443\"; }\n.bi-journal-text::before { content: \"\\f444\"; }\n.bi-journal-x::before { content: \"\\f445\"; }\n.bi-journal::before { content: \"\\f446\"; }\n.bi-journals::before { content: \"\\f447\"; }\n.bi-joystick::before { content: \"\\f448\"; }\n.bi-justify-left::before { content: \"\\f449\"; }\n.bi-justify-right::before { content: \"\\f44a\"; }\n.bi-justify::before { content: \"\\f44b\"; }\n.bi-kanban-fill::before { content: \"\\f44c\"; }\n.bi-kanban::before { content: \"\\f44d\"; }\n.bi-key-fill::before { content: \"\\f44e\"; }\n.bi-key::before { content: \"\\f44f\"; }\n.bi-keyboard-fill::before { content: \"\\f450\"; }\n.bi-keyboard::before { content: \"\\f451\"; }\n.bi-ladder::before { content: \"\\f452\"; }\n.bi-lamp-fill::before { content: \"\\f453\"; }\n.bi-lamp::before { content: \"\\f454\"; }\n.bi-laptop-fill::before { content: \"\\f455\"; }\n.bi-laptop::before { content: \"\\f456\"; }\n.bi-layer-backward::before { content: \"\\f457\"; }\n.bi-layer-forward::before { content: \"\\f458\"; }\n.bi-layers-fill::before { content: \"\\f459\"; }\n.bi-layers-half::before { content: \"\\f45a\"; }\n.bi-layers::before { content: \"\\f45b\"; }\n.bi-layout-sidebar-inset-reverse::before { content: \"\\f45c\"; }\n.bi-layout-sidebar-inset::before { content: \"\\f45d\"; }\n.bi-layout-sidebar-reverse::before { content: \"\\f45e\"; }\n.bi-layout-sidebar::before { content: \"\\f45f\"; }\n.bi-layout-split::before { content: \"\\f460\"; }\n.bi-layout-text-sidebar-reverse::before { content: \"\\f461\"; }\n.bi-layout-text-sidebar::before { content: \"\\f462\"; }\n.bi-layout-text-window-reverse::before { content: \"\\f463\"; }\n.bi-layout-text-window::before { content: \"\\f464\"; }\n.bi-layout-three-columns::before { content: \"\\f465\"; }\n.bi-layout-wtf::before { content: \"\\f466\"; }\n.bi-life-preserver::before { content: \"\\f467\"; }\n.bi-lightbulb-fill::before { content: \"\\f468\"; }\n.bi-lightbulb-off-fill::before { content: \"\\f469\"; }\n.bi-lightbulb-off::before { content: \"\\f46a\"; }\n.bi-lightbulb::before { content: \"\\f46b\"; }\n.bi-lightning-charge-fill::before { content: \"\\f46c\"; }\n.bi-lightning-charge::before { content: \"\\f46d\"; }\n.bi-lightning-fill::before { content: \"\\f46e\"; }\n.bi-lightning::before { content: \"\\f46f\"; }\n.bi-link-45deg::before { content: \"\\f470\"; }\n.bi-link::before { content: \"\\f471\"; }\n.bi-linkedin::before { content: \"\\f472\"; }\n.bi-list-check::before { content: \"\\f473\"; }\n.bi-list-nested::before { content: \"\\f474\"; }\n.bi-list-ol::before { content: \"\\f475\"; }\n.bi-list-stars::before { content: \"\\f476\"; }\n.bi-list-task::before { content: \"\\f477\"; }\n.bi-list-ul::before { content: \"\\f478\"; }\n.bi-list::before { content: \"\\f479\"; }\n.bi-lock-fill::before { content: \"\\f47a\"; }\n.bi-lock::before { content: \"\\f47b\"; }\n.bi-mailbox::before { content: \"\\f47c\"; }\n.bi-mailbox2::before { content: \"\\f47d\"; }\n.bi-map-fill::before { content: \"\\f47e\"; }\n.bi-map::before { content: \"\\f47f\"; }\n.bi-markdown-fill::before { content: \"\\f480\"; }\n.bi-markdown::before { content: \"\\f481\"; }\n.bi-mask::before { content: \"\\f482\"; }\n.bi-megaphone-fill::before { content: \"\\f483\"; }\n.bi-megaphone::before { content: \"\\f484\"; }\n.bi-menu-app-fill::before { content: \"\\f485\"; }\n.bi-menu-app::before { content: \"\\f486\"; }\n.bi-menu-button-fill::before { content: \"\\f487\"; }\n.bi-menu-button-wide-fill::before { content: \"\\f488\"; }\n.bi-menu-button-wide::before { content: \"\\f489\"; }\n.bi-menu-button::before { content: \"\\f48a\"; }\n.bi-menu-down::before { content: \"\\f48b\"; }\n.bi-menu-up::before { content: \"\\f48c\"; }\n.bi-mic-fill::before { content: \"\\f48d\"; }\n.bi-mic-mute-fill::before { content: \"\\f48e\"; }\n.bi-mic-mute::before { content: \"\\f48f\"; }\n.bi-mic::before { content: \"\\f490\"; }\n.bi-minecart-loaded::before { content: \"\\f491\"; }\n.bi-minecart::before { content: \"\\f492\"; }\n.bi-moisture::before { content: \"\\f493\"; }\n.bi-moon-fill::before { content: \"\\f494\"; }\n.bi-moon-stars-fill::before { content: \"\\f495\"; }\n.bi-moon-stars::before { content: \"\\f496\"; }\n.bi-moon::before { content: \"\\f497\"; }\n.bi-mouse-fill::before { content: \"\\f498\"; }\n.bi-mouse::before { content: \"\\f499\"; }\n.bi-mouse2-fill::before { content: \"\\f49a\"; }\n.bi-mouse2::before { content: \"\\f49b\"; }\n.bi-mouse3-fill::before { content: \"\\f49c\"; }\n.bi-mouse3::before { content: \"\\f49d\"; }\n.bi-music-note-beamed::before { content: \"\\f49e\"; }\n.bi-music-note-list::before { content: \"\\f49f\"; }\n.bi-music-note::before { content: \"\\f4a0\"; }\n.bi-music-player-fill::before { content: \"\\f4a1\"; }\n.bi-music-player::before { content: \"\\f4a2\"; }\n.bi-newspaper::before { content: \"\\f4a3\"; }\n.bi-node-minus-fill::before { content: \"\\f4a4\"; }\n.bi-node-minus::before { content: \"\\f4a5\"; }\n.bi-node-plus-fill::before { content: \"\\f4a6\"; }\n.bi-node-plus::before { content: \"\\f4a7\"; }\n.bi-nut-fill::before { content: \"\\f4a8\"; }\n.bi-nut::before { content: \"\\f4a9\"; }\n.bi-octagon-fill::before { content: \"\\f4aa\"; }\n.bi-octagon-half::before { content: \"\\f4ab\"; }\n.bi-octagon::before { content: \"\\f4ac\"; }\n.bi-option::before { content: \"\\f4ad\"; }\n.bi-outlet::before { content: \"\\f4ae\"; }\n.bi-paint-bucket::before { content: \"\\f4af\"; }\n.bi-palette-fill::before { content: \"\\f4b0\"; }\n.bi-palette::before { content: \"\\f4b1\"; }\n.bi-palette2::before { content: \"\\f4b2\"; }\n.bi-paperclip::before { content: \"\\f4b3\"; }\n.bi-paragraph::before { content: \"\\f4b4\"; }\n.bi-patch-check-fill::before { content: \"\\f4b5\"; }\n.bi-patch-check::before { content: \"\\f4b6\"; }\n.bi-patch-exclamation-fill::before { content: \"\\f4b7\"; }\n.bi-patch-exclamation::before { content: \"\\f4b8\"; }\n.bi-patch-minus-fill::before { content: \"\\f4b9\"; }\n.bi-patch-minus::before { content: \"\\f4ba\"; }\n.bi-patch-plus-fill::before { content: \"\\f4bb\"; }\n.bi-patch-plus::before { content: \"\\f4bc\"; }\n.bi-patch-question-fill::before { content: \"\\f4bd\"; }\n.bi-patch-question::before { content: \"\\f4be\"; }\n.bi-pause-btn-fill::before { content: \"\\f4bf\"; }\n.bi-pause-btn::before { content: \"\\f4c0\"; }\n.bi-pause-circle-fill::before { content: \"\\f4c1\"; }\n.bi-pause-circle::before { content: \"\\f4c2\"; }\n.bi-pause-fill::before { content: \"\\f4c3\"; }\n.bi-pause::before { content: \"\\f4c4\"; }\n.bi-peace-fill::before { content: \"\\f4c5\"; }\n.bi-peace::before { content: \"\\f4c6\"; }\n.bi-pen-fill::before { content: \"\\f4c7\"; }\n.bi-pen::before { content: \"\\f4c8\"; }\n.bi-pencil-fill::before { content: \"\\f4c9\"; }\n.bi-pencil-square::before { content: \"\\f4ca\"; }\n.bi-pencil::before { content: \"\\f4cb\"; }\n.bi-pentagon-fill::before { content: \"\\f4cc\"; }\n.bi-pentagon-half::before { content: \"\\f4cd\"; }\n.bi-pentagon::before { content: \"\\f4ce\"; }\n.bi-people-fill::before { content: \"\\f4cf\"; }\n.bi-people::before { content: \"\\f4d0\"; }\n.bi-percent::before { content: \"\\f4d1\"; }\n.bi-person-badge-fill::before { content: \"\\f4d2\"; }\n.bi-person-badge::before { content: \"\\f4d3\"; }\n.bi-person-bounding-box::before { content: \"\\f4d4\"; }\n.bi-person-check-fill::before { content: \"\\f4d5\"; }\n.bi-person-check::before { content: \"\\f4d6\"; }\n.bi-person-circle::before { content: \"\\f4d7\"; }\n.bi-person-dash-fill::before { content: \"\\f4d8\"; }\n.bi-person-dash::before { content: \"\\f4d9\"; }\n.bi-person-fill::before { content: \"\\f4da\"; }\n.bi-person-lines-fill::before { content: \"\\f4db\"; }\n.bi-person-plus-fill::before { content: \"\\f4dc\"; }\n.bi-person-plus::before { content: \"\\f4dd\"; }\n.bi-person-square::before { content: \"\\f4de\"; }\n.bi-person-x-fill::before { content: \"\\f4df\"; }\n.bi-person-x::before { content: \"\\f4e0\"; }\n.bi-person::before { content: \"\\f4e1\"; }\n.bi-phone-fill::before { content: \"\\f4e2\"; }\n.bi-phone-landscape-fill::before { content: \"\\f4e3\"; }\n.bi-phone-landscape::before { content: \"\\f4e4\"; }\n.bi-phone-vibrate-fill::before { content: \"\\f4e5\"; }\n.bi-phone-vibrate::before { content: \"\\f4e6\"; }\n.bi-phone::before { content: \"\\f4e7\"; }\n.bi-pie-chart-fill::before { content: \"\\f4e8\"; }\n.bi-pie-chart::before { content: \"\\f4e9\"; }\n.bi-pin-angle-fill::before { content: \"\\f4ea\"; }\n.bi-pin-angle::before { content: \"\\f4eb\"; }\n.bi-pin-fill::before { content: \"\\f4ec\"; }\n.bi-pin::before { content: \"\\f4ed\"; }\n.bi-pip-fill::before { content: \"\\f4ee\"; }\n.bi-pip::before { content: \"\\f4ef\"; }\n.bi-play-btn-fill::before { content: \"\\f4f0\"; }\n.bi-play-btn::before { content: \"\\f4f1\"; }\n.bi-play-circle-fill::before { content: \"\\f4f2\"; }\n.bi-play-circle::before { content: \"\\f4f3\"; }\n.bi-play-fill::before { content: \"\\f4f4\"; }\n.bi-play::before { content: \"\\f4f5\"; }\n.bi-plug-fill::before { content: \"\\f4f6\"; }\n.bi-plug::before { content: \"\\f4f7\"; }\n.bi-plus-circle-dotted::before { content: \"\\f4f8\"; }\n.bi-plus-circle-fill::before { content: \"\\f4f9\"; }\n.bi-plus-circle::before { content: \"\\f4fa\"; }\n.bi-plus-square-dotted::before { content: \"\\f4fb\"; }\n.bi-plus-square-fill::before { content: \"\\f4fc\"; }\n.bi-plus-square::before { content: \"\\f4fd\"; }\n.bi-plus::before { content: \"\\f4fe\"; }\n.bi-power::before { content: \"\\f4ff\"; }\n.bi-printer-fill::before { content: \"\\f500\"; }\n.bi-printer::before { content: \"\\f501\"; }\n.bi-puzzle-fill::before { content: \"\\f502\"; }\n.bi-puzzle::before { content: \"\\f503\"; }\n.bi-question-circle-fill::before { content: \"\\f504\"; }\n.bi-question-circle::before { content: \"\\f505\"; }\n.bi-question-diamond-fill::before { content: \"\\f506\"; }\n.bi-question-diamond::before { content: \"\\f507\"; }\n.bi-question-octagon-fill::before { content: \"\\f508\"; }\n.bi-question-octagon::before { content: \"\\f509\"; }\n.bi-question-square-fill::before { content: \"\\f50a\"; }\n.bi-question-square::before { content: \"\\f50b\"; }\n.bi-question::before { content: \"\\f50c\"; }\n.bi-rainbow::before { content: \"\\f50d\"; }\n.bi-receipt-cutoff::before { content: \"\\f50e\"; }\n.bi-receipt::before { content: \"\\f50f\"; }\n.bi-reception-0::before { content: \"\\f510\"; }\n.bi-reception-1::before { content: \"\\f511\"; }\n.bi-reception-2::before { content: \"\\f512\"; }\n.bi-reception-3::before { content: \"\\f513\"; }\n.bi-reception-4::before { content: \"\\f514\"; }\n.bi-record-btn-fill::before { content: \"\\f515\"; }\n.bi-record-btn::before { content: \"\\f516\"; }\n.bi-record-circle-fill::before { content: \"\\f517\"; }\n.bi-record-circle::before { content: \"\\f518\"; }\n.bi-record-fill::before { content: \"\\f519\"; }\n.bi-record::before { content: \"\\f51a\"; }\n.bi-record2-fill::before { content: \"\\f51b\"; }\n.bi-record2::before { content: \"\\f51c\"; }\n.bi-reply-all-fill::before { content: \"\\f51d\"; }\n.bi-reply-all::before { content: \"\\f51e\"; }\n.bi-reply-fill::before { content: \"\\f51f\"; }\n.bi-reply::before { content: \"\\f520\"; }\n.bi-rss-fill::before { content: \"\\f521\"; }\n.bi-rss::before { content: \"\\f522\"; }\n.bi-rulers::before { content: \"\\f523\"; }\n.bi-save-fill::before { content: \"\\f524\"; }\n.bi-save::before { content: \"\\f525\"; }\n.bi-save2-fill::before { content: \"\\f526\"; }\n.bi-save2::before { content: \"\\f527\"; }\n.bi-scissors::before { content: \"\\f528\"; }\n.bi-screwdriver::before { content: \"\\f529\"; }\n.bi-search::before { content: \"\\f52a\"; }\n.bi-segmented-nav::before { content: \"\\f52b\"; }\n.bi-server::before { content: \"\\f52c\"; }\n.bi-share-fill::before { content: \"\\f52d\"; }\n.bi-share::before { content: \"\\f52e\"; }\n.bi-shield-check::before { content: \"\\f52f\"; }\n.bi-shield-exclamation::before { content: \"\\f530\"; }\n.bi-shield-fill-check::before { content: \"\\f531\"; }\n.bi-shield-fill-exclamation::before { content: \"\\f532\"; }\n.bi-shield-fill-minus::before { content: \"\\f533\"; }\n.bi-shield-fill-plus::before { content: \"\\f534\"; }\n.bi-shield-fill-x::before { content: \"\\f535\"; }\n.bi-shield-fill::before { content: \"\\f536\"; }\n.bi-shield-lock-fill::before { content: \"\\f537\"; }\n.bi-shield-lock::before { content: \"\\f538\"; }\n.bi-shield-minus::before { content: \"\\f539\"; }\n.bi-shield-plus::before { content: \"\\f53a\"; }\n.bi-shield-shaded::before { content: \"\\f53b\"; }\n.bi-shield-slash-fill::before { content: \"\\f53c\"; }\n.bi-shield-slash::before { content: \"\\f53d\"; }\n.bi-shield-x::before { content: \"\\f53e\"; }\n.bi-shield::before { content: \"\\f53f\"; }\n.bi-shift-fill::before { content: \"\\f540\"; }\n.bi-shift::before { content: \"\\f541\"; }\n.bi-shop-window::before { content: \"\\f542\"; }\n.bi-shop::before { content: \"\\f543\"; }\n.bi-shuffle::before { content: \"\\f544\"; }\n.bi-signpost-2-fill::before { content: \"\\f545\"; }\n.bi-signpost-2::before { content: \"\\f546\"; }\n.bi-signpost-fill::before { content: \"\\f547\"; }\n.bi-signpost-split-fill::before { content: \"\\f548\"; }\n.bi-signpost-split::before { content: \"\\f549\"; }\n.bi-signpost::before { content: \"\\f54a\"; }\n.bi-sim-fill::before { content: \"\\f54b\"; }\n.bi-sim::before { content: \"\\f54c\"; }\n.bi-skip-backward-btn-fill::before { content: \"\\f54d\"; }\n.bi-skip-backward-btn::before { content: \"\\f54e\"; }\n.bi-skip-backward-circle-fill::before { content: \"\\f54f\"; }\n.bi-skip-backward-circle::before { content: \"\\f550\"; }\n.bi-skip-backward-fill::before { content: \"\\f551\"; }\n.bi-skip-backward::before { content: \"\\f552\"; }\n.bi-skip-end-btn-fill::before { content: \"\\f553\"; }\n.bi-skip-end-btn::before { content: \"\\f554\"; }\n.bi-skip-end-circle-fill::before { content: \"\\f555\"; }\n.bi-skip-end-circle::before { content: \"\\f556\"; }\n.bi-skip-end-fill::before { content: \"\\f557\"; }\n.bi-skip-end::before { content: \"\\f558\"; }\n.bi-skip-forward-btn-fill::before { content: \"\\f559\"; }\n.bi-skip-forward-btn::before { content: \"\\f55a\"; }\n.bi-skip-forward-circle-fill::before { content: \"\\f55b\"; }\n.bi-skip-forward-circle::before { content: \"\\f55c\"; }\n.bi-skip-forward-fill::before { content: \"\\f55d\"; }\n.bi-skip-forward::before { content: \"\\f55e\"; }\n.bi-skip-start-btn-fill::before { content: \"\\f55f\"; }\n.bi-skip-start-btn::before { content: \"\\f560\"; }\n.bi-skip-start-circle-fill::before { content: \"\\f561\"; }\n.bi-skip-start-circle::before { content: \"\\f562\"; }\n.bi-skip-start-fill::before { content: \"\\f563\"; }\n.bi-skip-start::before { content: \"\\f564\"; }\n.bi-slack::before { content: \"\\f565\"; }\n.bi-slash-circle-fill::before { content: \"\\f566\"; }\n.bi-slash-circle::before { content: \"\\f567\"; }\n.bi-slash-square-fill::before { content: \"\\f568\"; }\n.bi-slash-square::before { content: \"\\f569\"; }\n.bi-slash::before { content: \"\\f56a\"; }\n.bi-sliders::before { content: \"\\f56b\"; }\n.bi-smartwatch::before { content: \"\\f56c\"; }\n.bi-snow::before { content: \"\\f56d\"; }\n.bi-snow2::before { content: \"\\f56e\"; }\n.bi-snow3::before { content: \"\\f56f\"; }\n.bi-sort-alpha-down-alt::before { content: \"\\f570\"; }\n.bi-sort-alpha-down::before { content: \"\\f571\"; }\n.bi-sort-alpha-up-alt::before { content: \"\\f572\"; }\n.bi-sort-alpha-up::before { content: \"\\f573\"; }\n.bi-sort-down-alt::before { content: \"\\f574\"; }\n.bi-sort-down::before { content: \"\\f575\"; }\n.bi-sort-numeric-down-alt::before { content: \"\\f576\"; }\n.bi-sort-numeric-down::before { content: \"\\f577\"; }\n.bi-sort-numeric-up-alt::before { content: \"\\f578\"; }\n.bi-sort-numeric-up::before { content: \"\\f579\"; }\n.bi-sort-up-alt::before { content: \"\\f57a\"; }\n.bi-sort-up::before { content: \"\\f57b\"; }\n.bi-soundwave::before { content: \"\\f57c\"; }\n.bi-speaker-fill::before { content: \"\\f57d\"; }\n.bi-speaker::before { content: \"\\f57e\"; }\n.bi-speedometer::before { content: \"\\f57f\"; }\n.bi-speedometer2::before { content: \"\\f580\"; }\n.bi-spellcheck::before { content: \"\\f581\"; }\n.bi-square-fill::before { content: \"\\f582\"; }\n.bi-square-half::before { content: \"\\f583\"; }\n.bi-square::before { content: \"\\f584\"; }\n.bi-stack::before { content: \"\\f585\"; }\n.bi-star-fill::before { content: \"\\f586\"; }\n.bi-star-half::before { content: \"\\f587\"; }\n.bi-star::before { content: \"\\f588\"; }\n.bi-stars::before { content: \"\\f589\"; }\n.bi-stickies-fill::before { content: \"\\f58a\"; }\n.bi-stickies::before { content: \"\\f58b\"; }\n.bi-sticky-fill::before { content: \"\\f58c\"; }\n.bi-sticky::before { content: \"\\f58d\"; }\n.bi-stop-btn-fill::before { content: \"\\f58e\"; }\n.bi-stop-btn::before { content: \"\\f58f\"; }\n.bi-stop-circle-fill::before { content: \"\\f590\"; }\n.bi-stop-circle::before { content: \"\\f591\"; }\n.bi-stop-fill::before { content: \"\\f592\"; }\n.bi-stop::before { content: \"\\f593\"; }\n.bi-stoplights-fill::before { content: \"\\f594\"; }\n.bi-stoplights::before { content: \"\\f595\"; }\n.bi-stopwatch-fill::before { content: \"\\f596\"; }\n.bi-stopwatch::before { content: \"\\f597\"; }\n.bi-subtract::before { content: \"\\f598\"; }\n.bi-suit-club-fill::before { content: \"\\f599\"; }\n.bi-suit-club::before { content: \"\\f59a\"; }\n.bi-suit-diamond-fill::before { content: \"\\f59b\"; }\n.bi-suit-diamond::before { content: \"\\f59c\"; }\n.bi-suit-heart-fill::before { content: \"\\f59d\"; }\n.bi-suit-heart::before { content: \"\\f59e\"; }\n.bi-suit-spade-fill::before { content: \"\\f59f\"; }\n.bi-suit-spade::before { content: \"\\f5a0\"; }\n.bi-sun-fill::before { content: \"\\f5a1\"; }\n.bi-sun::before { content: \"\\f5a2\"; }\n.bi-sunglasses::before { content: \"\\f5a3\"; }\n.bi-sunrise-fill::before { content: \"\\f5a4\"; }\n.bi-sunrise::before { content: \"\\f5a5\"; }\n.bi-sunset-fill::before { content: \"\\f5a6\"; }\n.bi-sunset::before { content: \"\\f5a7\"; }\n.bi-symmetry-horizontal::before { content: \"\\f5a8\"; }\n.bi-symmetry-vertical::before { content: \"\\f5a9\"; }\n.bi-table::before { content: \"\\f5aa\"; }\n.bi-tablet-fill::before { content: \"\\f5ab\"; }\n.bi-tablet-landscape-fill::before { content: \"\\f5ac\"; }\n.bi-tablet-landscape::before { content: \"\\f5ad\"; }\n.bi-tablet::before { content: \"\\f5ae\"; }\n.bi-tag-fill::before { content: \"\\f5af\"; }\n.bi-tag::before { content: \"\\f5b0\"; }\n.bi-tags-fill::before { content: \"\\f5b1\"; }\n.bi-tags::before { content: \"\\f5b2\"; }\n.bi-telegram::before { content: \"\\f5b3\"; }\n.bi-telephone-fill::before { content: \"\\f5b4\"; }\n.bi-telephone-forward-fill::before { content: \"\\f5b5\"; }\n.bi-telephone-forward::before { content: \"\\f5b6\"; }\n.bi-telephone-inbound-fill::before { content: \"\\f5b7\"; }\n.bi-telephone-inbound::before { content: \"\\f5b8\"; }\n.bi-telephone-minus-fill::before { content: \"\\f5b9\"; }\n.bi-telephone-minus::before { content: \"\\f5ba\"; }\n.bi-telephone-outbound-fill::before { content: \"\\f5bb\"; }\n.bi-telephone-outbound::before { content: \"\\f5bc\"; }\n.bi-telephone-plus-fill::before { content: \"\\f5bd\"; }\n.bi-telephone-plus::before { content: \"\\f5be\"; }\n.bi-telephone-x-fill::before { content: \"\\f5bf\"; }\n.bi-telephone-x::before { content: \"\\f5c0\"; }\n.bi-telephone::before { content: \"\\f5c1\"; }\n.bi-terminal-fill::before { content: \"\\f5c2\"; }\n.bi-terminal::before { content: \"\\f5c3\"; }\n.bi-text-center::before { content: \"\\f5c4\"; }\n.bi-text-indent-left::before { content: \"\\f5c5\"; }\n.bi-text-indent-right::before { content: \"\\f5c6\"; }\n.bi-text-left::before { content: \"\\f5c7\"; }\n.bi-text-paragraph::before { content: \"\\f5c8\"; }\n.bi-text-right::before { content: \"\\f5c9\"; }\n.bi-textarea-resize::before { content: \"\\f5ca\"; }\n.bi-textarea-t::before { content: \"\\f5cb\"; }\n.bi-textarea::before { content: \"\\f5cc\"; }\n.bi-thermometer-half::before { content: \"\\f5cd\"; }\n.bi-thermometer-high::before { content: \"\\f5ce\"; }\n.bi-thermometer-low::before { content: \"\\f5cf\"; }\n.bi-thermometer-snow::before { content: \"\\f5d0\"; }\n.bi-thermometer-sun::before { content: \"\\f5d1\"; }\n.bi-thermometer::before { content: \"\\f5d2\"; }\n.bi-three-dots-vertical::before { content: \"\\f5d3\"; }\n.bi-three-dots::before { content: \"\\f5d4\"; }\n.bi-toggle-off::before { content: \"\\f5d5\"; }\n.bi-toggle-on::before { content: \"\\f5d6\"; }\n.bi-toggle2-off::before { content: \"\\f5d7\"; }\n.bi-toggle2-on::before { content: \"\\f5d8\"; }\n.bi-toggles::before { content: \"\\f5d9\"; }\n.bi-toggles2::before { content: \"\\f5da\"; }\n.bi-tools::before { content: \"\\f5db\"; }\n.bi-tornado::before { content: \"\\f5dc\"; }\n.bi-trash-fill::before { content: \"\\f5dd\"; }\n.bi-trash::before { content: \"\\f5de\"; }\n.bi-trash2-fill::before { content: \"\\f5df\"; }\n.bi-trash2::before { content: \"\\f5e0\"; }\n.bi-tree-fill::before { content: \"\\f5e1\"; }\n.bi-tree::before { content: \"\\f5e2\"; }\n.bi-triangle-fill::before { content: \"\\f5e3\"; }\n.bi-triangle-half::before { content: \"\\f5e4\"; }\n.bi-triangle::before { content: \"\\f5e5\"; }\n.bi-trophy-fill::before { content: \"\\f5e6\"; }\n.bi-trophy::before { content: \"\\f5e7\"; }\n.bi-tropical-storm::before { content: \"\\f5e8\"; }\n.bi-truck-flatbed::before { content: \"\\f5e9\"; }\n.bi-truck::before { content: \"\\f5ea\"; }\n.bi-tsunami::before { content: \"\\f5eb\"; }\n.bi-tv-fill::before { content: \"\\f5ec\"; }\n.bi-tv::before { content: \"\\f5ed\"; }\n.bi-twitch::before { content: \"\\f5ee\"; }\n.bi-twitter::before { content: \"\\f5ef\"; }\n.bi-type-bold::before { content: \"\\f5f0\"; }\n.bi-type-h1::before { content: \"\\f5f1\"; }\n.bi-type-h2::before { content: \"\\f5f2\"; }\n.bi-type-h3::before { content: \"\\f5f3\"; }\n.bi-type-italic::before { content: \"\\f5f4\"; }\n.bi-type-strikethrough::before { content: \"\\f5f5\"; }\n.bi-type-underline::before { content: \"\\f5f6\"; }\n.bi-type::before { content: \"\\f5f7\"; }\n.bi-ui-checks-grid::before { content: \"\\f5f8\"; }\n.bi-ui-checks::before { content: \"\\f5f9\"; }\n.bi-ui-radios-grid::before { content: \"\\f5fa\"; }\n.bi-ui-radios::before { content: \"\\f5fb\"; }\n.bi-umbrella-fill::before { content: \"\\f5fc\"; }\n.bi-umbrella::before { content: \"\\f5fd\"; }\n.bi-union::before { content: \"\\f5fe\"; }\n.bi-unlock-fill::before { content: \"\\f5ff\"; }\n.bi-unlock::before { content: \"\\f600\"; }\n.bi-upc-scan::before { content: \"\\f601\"; }\n.bi-upc::before { content: \"\\f602\"; }\n.bi-upload::before { content: \"\\f603\"; }\n.bi-vector-pen::before { content: \"\\f604\"; }\n.bi-view-list::before { content: \"\\f605\"; }\n.bi-view-stacked::before { content: \"\\f606\"; }\n.bi-vinyl-fill::before { content: \"\\f607\"; }\n.bi-vinyl::before { content: \"\\f608\"; }\n.bi-voicemail::before { content: \"\\f609\"; }\n.bi-volume-down-fill::before { content: \"\\f60a\"; }\n.bi-volume-down::before { content: \"\\f60b\"; }\n.bi-volume-mute-fill::before { content: \"\\f60c\"; }\n.bi-volume-mute::before { content: \"\\f60d\"; }\n.bi-volume-off-fill::before { content: \"\\f60e\"; }\n.bi-volume-off::before { content: \"\\f60f\"; }\n.bi-volume-up-fill::before { content: \"\\f610\"; }\n.bi-volume-up::before { content: \"\\f611\"; }\n.bi-vr::before { content: \"\\f612\"; }\n.bi-wallet-fill::before { content: \"\\f613\"; }\n.bi-wallet::before { content: \"\\f614\"; }\n.bi-wallet2::before { content: \"\\f615\"; }\n.bi-watch::before { content: \"\\f616\"; }\n.bi-water::before { content: \"\\f617\"; }\n.bi-whatsapp::before { content: \"\\f618\"; }\n.bi-wifi-1::before { content: \"\\f619\"; }\n.bi-wifi-2::before { content: \"\\f61a\"; }\n.bi-wifi-off::before { content: \"\\f61b\"; }\n.bi-wifi::before { content: \"\\f61c\"; }\n.bi-wind::before { content: \"\\f61d\"; }\n.bi-window-dock::before { content: \"\\f61e\"; }\n.bi-window-sidebar::before { content: \"\\f61f\"; }\n.bi-window::before { content: \"\\f620\"; }\n.bi-wrench::before { content: \"\\f621\"; }\n.bi-x-circle-fill::before { content: \"\\f622\"; }\n.bi-x-circle::before { content: \"\\f623\"; }\n.bi-x-diamond-fill::before { content: \"\\f624\"; }\n.bi-x-diamond::before { content: \"\\f625\"; }\n.bi-x-octagon-fill::before { content: \"\\f626\"; }\n.bi-x-octagon::before { content: \"\\f627\"; }\n.bi-x-square-fill::before { content: \"\\f628\"; }\n.bi-x-square::before { content: \"\\f629\"; }\n.bi-x::before { content: \"\\f62a\"; }\n.bi-youtube::before { content: \"\\f62b\"; }\n.bi-zoom-in::before { content: \"\\f62c\"; }\n.bi-zoom-out::before { content: \"\\f62d\"; }\n.bi-bank::before { content: \"\\f62e\"; }\n.bi-bank2::before { content: \"\\f62f\"; }\n.bi-bell-slash-fill::before { content: \"\\f630\"; }\n.bi-bell-slash::before { content: \"\\f631\"; }\n.bi-cash-coin::before { content: \"\\f632\"; }\n.bi-check-lg::before { content: \"\\f633\"; }\n.bi-coin::before { content: \"\\f634\"; }\n.bi-currency-bitcoin::before { content: \"\\f635\"; }\n.bi-currency-dollar::before { content: \"\\f636\"; }\n.bi-currency-euro::before { content: \"\\f637\"; }\n.bi-currency-exchange::before { content: \"\\f638\"; }\n.bi-currency-pound::before { content: \"\\f639\"; }\n.bi-currency-yen::before { content: \"\\f63a\"; }\n.bi-dash-lg::before { content: \"\\f63b\"; }\n.bi-exclamation-lg::before { content: \"\\f63c\"; }\n.bi-file-earmark-pdf-fill::before { content: \"\\f63d\"; }\n.bi-file-earmark-pdf::before { content: \"\\f63e\"; }\n.bi-file-pdf-fill::before { content: \"\\f63f\"; }\n.bi-file-pdf::before { content: \"\\f640\"; }\n.bi-gender-ambiguous::before { content: \"\\f641\"; }\n.bi-gender-female::before { content: \"\\f642\"; }\n.bi-gender-male::before { content: \"\\f643\"; }\n.bi-gender-trans::before { content: \"\\f644\"; }\n.bi-headset-vr::before { content: \"\\f645\"; }\n.bi-info-lg::before { content: \"\\f646\"; }\n.bi-mastodon::before { content: \"\\f647\"; }\n.bi-messenger::before { content: \"\\f648\"; }\n.bi-piggy-bank-fill::before { content: \"\\f649\"; }\n.bi-piggy-bank::before { content: \"\\f64a\"; }\n.bi-pin-map-fill::before { content: \"\\f64b\"; }\n.bi-pin-map::before { content: \"\\f64c\"; }\n.bi-plus-lg::before { content: \"\\f64d\"; }\n.bi-question-lg::before { content: \"\\f64e\"; }\n.bi-recycle::before { content: \"\\f64f\"; }\n.bi-reddit::before { content: \"\\f650\"; }\n.bi-safe-fill::before { content: \"\\f651\"; }\n.bi-safe2-fill::before { content: \"\\f652\"; }\n.bi-safe2::before { content: \"\\f653\"; }\n.bi-sd-card-fill::before { content: \"\\f654\"; }\n.bi-sd-card::before { content: \"\\f655\"; }\n.bi-skype::before { content: \"\\f656\"; }\n.bi-slash-lg::before { content: \"\\f657\"; }\n.bi-translate::before { content: \"\\f658\"; }\n.bi-x-lg::before { content: \"\\f659\"; }\n.bi-safe::before { content: \"\\f65a\"; }\n.bi-apple::before { content: \"\\f65b\"; }\n.bi-microsoft::before { content: \"\\f65d\"; }\n.bi-windows::before { content: \"\\f65e\"; }\n.bi-behance::before { content: \"\\f65c\"; }\n.bi-dribbble::before { content: \"\\f65f\"; }\n.bi-line::before { content: \"\\f660\"; }\n.bi-medium::before { content: \"\\f661\"; }\n.bi-paypal::before { content: \"\\f662\"; }\n.bi-pinterest::before { content: \"\\f663\"; }\n.bi-signal::before { content: \"\\f664\"; }\n.bi-snapchat::before { content: \"\\f665\"; }\n.bi-spotify::before { content: \"\\f666\"; }\n.bi-stack-overflow::before { content: \"\\f667\"; }\n.bi-strava::before { content: \"\\f668\"; }\n.bi-wordpress::before { content: \"\\f669\"; }\n.bi-vimeo::before { content: \"\\f66a\"; }\n.bi-activity::before { content: \"\\f66b\"; }\n.bi-easel2-fill::before { content: \"\\f66c\"; }\n.bi-easel2::before { content: \"\\f66d\"; }\n.bi-easel3-fill::before { content: \"\\f66e\"; }\n.bi-easel3::before { content: \"\\f66f\"; }\n.bi-fan::before { content: \"\\f670\"; }\n.bi-fingerprint::before { content: \"\\f671\"; }\n.bi-graph-down-arrow::before { content: \"\\f672\"; }\n.bi-graph-up-arrow::before { content: \"\\f673\"; }\n.bi-hypnotize::before { content: \"\\f674\"; }\n.bi-magic::before { content: \"\\f675\"; }\n.bi-person-rolodex::before { content: \"\\f676\"; }\n.bi-person-video::before { content: \"\\f677\"; }\n.bi-person-video2::before { content: \"\\f678\"; }\n.bi-person-video3::before { content: \"\\f679\"; }\n.bi-person-workspace::before { content: \"\\f67a\"; }\n.bi-radioactive::before { content: \"\\f67b\"; }\n.bi-webcam-fill::before { content: \"\\f67c\"; }\n.bi-webcam::before { content: \"\\f67d\"; }\n.bi-yin-yang::before { content: \"\\f67e\"; }\n.bi-bandaid-fill::before { content: \"\\f680\"; }\n.bi-bandaid::before { content: \"\\f681\"; }\n.bi-bluetooth::before { content: \"\\f682\"; }\n.bi-body-text::before { content: \"\\f683\"; }\n.bi-boombox::before { content: \"\\f684\"; }\n.bi-boxes::before { content: \"\\f685\"; }\n.bi-dpad-fill::before { content: \"\\f686\"; }\n.bi-dpad::before { content: \"\\f687\"; }\n.bi-ear-fill::before { content: \"\\f688\"; }\n.bi-ear::before { content: \"\\f689\"; }\n.bi-envelope-check-1::before { content: \"\\f68a\"; }\n.bi-envelope-check-fill::before { content: \"\\f68b\"; }\n.bi-envelope-check::before { content: \"\\f68c\"; }\n.bi-envelope-dash-1::before { content: \"\\f68d\"; }\n.bi-envelope-dash-fill::before { content: \"\\f68e\"; }\n.bi-envelope-dash::before { content: \"\\f68f\"; }\n.bi-envelope-exclamation-1::before { content: \"\\f690\"; }\n.bi-envelope-exclamation-fill::before { content: \"\\f691\"; }\n.bi-envelope-exclamation::before { content: \"\\f692\"; }\n.bi-envelope-plus-fill::before { content: \"\\f693\"; }\n.bi-envelope-plus::before { content: \"\\f694\"; }\n.bi-envelope-slash-1::before { content: \"\\f695\"; }\n.bi-envelope-slash-fill::before { content: \"\\f696\"; }\n.bi-envelope-slash::before { content: \"\\f697\"; }\n.bi-envelope-x-1::before { content: \"\\f698\"; }\n.bi-envelope-x-fill::before { content: \"\\f699\"; }\n.bi-envelope-x::before { content: \"\\f69a\"; }\n.bi-explicit-fill::before { content: \"\\f69b\"; }\n.bi-explicit::before { content: \"\\f69c\"; }\n.bi-git::before { content: \"\\f69d\"; }\n.bi-infinity::before { content: \"\\f69e\"; }\n.bi-list-columns-reverse::before { content: \"\\f69f\"; }\n.bi-list-columns::before { content: \"\\f6a0\"; }\n.bi-meta::before { content: \"\\f6a1\"; }\n.bi-mortorboard-fill::before { content: \"\\f6a2\"; }\n.bi-mortorboard::before { content: \"\\f6a3\"; }\n.bi-nintendo-switch::before { content: \"\\f6a4\"; }\n.bi-pc-display-horizontal::before { content: \"\\f6a5\"; }\n.bi-pc-display::before { content: \"\\f6a6\"; }\n.bi-pc-horizontal::before { content: \"\\f6a7\"; }\n.bi-pc::before { content: \"\\f6a8\"; }\n.bi-playstation::before { content: \"\\f6a9\"; }\n.bi-plus-slash-minus::before { content: \"\\f6aa\"; }\n.bi-projector-fill::before { content: \"\\f6ab\"; }\n.bi-projector::before { content: \"\\f6ac\"; }\n.bi-qr-code-scan::before { content: \"\\f6ad\"; }\n.bi-qr-code::before { content: \"\\f6ae\"; }\n.bi-quora::before { content: \"\\f6af\"; }\n.bi-quote::before { content: \"\\f6b0\"; }\n.bi-robot::before { content: \"\\f6b1\"; }\n.bi-send-check-fill::before { content: \"\\f6b2\"; }\n.bi-send-check::before { content: \"\\f6b3\"; }\n.bi-send-dash-fill::before { content: \"\\f6b4\"; }\n.bi-send-dash::before { content: \"\\f6b5\"; }\n.bi-send-exclamation-1::before { content: \"\\f6b6\"; }\n.bi-send-exclamation-fill::before { content: \"\\f6b7\"; }\n.bi-send-exclamation::before { content: \"\\f6b8\"; }\n.bi-send-fill::before { content: \"\\f6b9\"; }\n.bi-send-plus-fill::before { content: \"\\f6ba\"; }\n.bi-send-plus::before { content: \"\\f6bb\"; }\n.bi-send-slash-fill::before { content: \"\\f6bc\"; }\n.bi-send-slash::before { content: \"\\f6bd\"; }\n.bi-send-x-fill::before { content: \"\\f6be\"; }\n.bi-send-x::before { content: \"\\f6bf\"; }\n.bi-send::before { content: \"\\f6c0\"; }\n.bi-steam::before { content: \"\\f6c1\"; }\n.bi-terminal-dash-1::before { content: \"\\f6c2\"; }\n.bi-terminal-dash::before { content: \"\\f6c3\"; }\n.bi-terminal-plus::before { content: \"\\f6c4\"; }\n.bi-terminal-split::before { content: \"\\f6c5\"; }\n.bi-ticket-detailed-fill::before { content: \"\\f6c6\"; }\n.bi-ticket-detailed::before { content: \"\\f6c7\"; }\n.bi-ticket-fill::before { content: \"\\f6c8\"; }\n.bi-ticket-perforated-fill::before { content: \"\\f6c9\"; }\n.bi-ticket-perforated::before { content: \"\\f6ca\"; }\n.bi-ticket::before { content: \"\\f6cb\"; }\n.bi-tiktok::before { content: \"\\f6cc\"; }\n.bi-window-dash::before { content: \"\\f6cd\"; }\n.bi-window-desktop::before { content: \"\\f6ce\"; }\n.bi-window-fullscreen::before { content: \"\\f6cf\"; }\n.bi-window-plus::before { content: \"\\f6d0\"; }\n.bi-window-split::before { content: \"\\f6d1\"; }\n.bi-window-stack::before { content: \"\\f6d2\"; }\n.bi-window-x::before { content: \"\\f6d3\"; }\n.bi-xbox::before { content: \"\\f6d4\"; }\n.bi-ethernet::before { content: \"\\f6d5\"; }\n.bi-hdmi-fill::before { content: \"\\f6d6\"; }\n.bi-hdmi::before { content: \"\\f6d7\"; }\n.bi-usb-c-fill::before { content: \"\\f6d8\"; }\n.bi-usb-c::before { content: \"\\f6d9\"; }\n.bi-usb-fill::before { content: \"\\f6da\"; }\n.bi-usb-plug-fill::before { content: \"\\f6db\"; }\n.bi-usb-plug::before { content: \"\\f6dc\"; }\n.bi-usb-symbol::before { content: \"\\f6dd\"; }\n.bi-usb::before { content: \"\\f6de\"; }\n.bi-boombox-fill::before { content: \"\\f6df\"; }\n.bi-displayport-1::before { content: \"\\f6e0\"; }\n.bi-displayport::before { content: \"\\f6e1\"; }\n.bi-gpu-card::before { content: \"\\f6e2\"; }\n.bi-memory::before { content: \"\\f6e3\"; }\n.bi-modem-fill::before { content: \"\\f6e4\"; }\n.bi-modem::before { content: \"\\f6e5\"; }\n.bi-motherboard-fill::before { content: \"\\f6e6\"; }\n.bi-motherboard::before { content: \"\\f6e7\"; }\n.bi-optical-audio-fill::before { content: \"\\f6e8\"; }\n.bi-optical-audio::before { content: \"\\f6e9\"; }\n.bi-pci-card::before { content: \"\\f6ea\"; }\n.bi-router-fill::before { content: \"\\f6eb\"; }\n.bi-router::before { content: \"\\f6ec\"; }\n.bi-ssd-fill::before { content: \"\\f6ed\"; }\n.bi-ssd::before { content: \"\\f6ee\"; }\n.bi-thunderbolt-fill::before { content: \"\\f6ef\"; }\n.bi-thunderbolt::before { content: \"\\f6f0\"; }\n.bi-usb-drive-fill::before { content: \"\\f6f1\"; }\n.bi-usb-drive::before { content: \"\\f6f2\"; }\n.bi-usb-micro-fill::before { content: \"\\f6f3\"; }\n.bi-usb-micro::before { content: \"\\f6f4\"; }\n.bi-usb-mini-fill::before { content: \"\\f6f5\"; }\n.bi-usb-mini::before { content: \"\\f6f6\"; }\n.bi-cloud-haze2::before { content: \"\\f6f7\"; }\n.bi-device-hdd-fill::before { content: \"\\f6f8\"; }\n.bi-device-hdd::before { content: \"\\f6f9\"; }\n.bi-device-ssd-fill::before { content: \"\\f6fa\"; }\n.bi-device-ssd::before { content: \"\\f6fb\"; }\n.bi-displayport-fill::before { content: \"\\f6fc\"; }\n.bi-mortarboard-fill::before { content: \"\\f6fd\"; }\n.bi-mortarboard::before { content: \"\\f6fe\"; }\n.bi-terminal-x::before { content: \"\\f6ff\"; }\n.bi-arrow-through-heart-fill::before { content: \"\\f700\"; }\n.bi-arrow-through-heart::before { content: \"\\f701\"; }\n.bi-badge-sd-fill::before { content: \"\\f702\"; }\n.bi-badge-sd::before { content: \"\\f703\"; }\n.bi-bag-heart-fill::before { content: \"\\f704\"; }\n.bi-bag-heart::before { content: \"\\f705\"; }\n.bi-balloon-fill::before { content: \"\\f706\"; }\n.bi-balloon-heart-fill::before { content: \"\\f707\"; }\n.bi-balloon-heart::before { content: \"\\f708\"; }\n.bi-balloon::before { content: \"\\f709\"; }\n.bi-box2-fill::before { content: \"\\f70a\"; }\n.bi-box2-heart-fill::before { content: \"\\f70b\"; }\n.bi-box2-heart::before { content: \"\\f70c\"; }\n.bi-box2::before { content: \"\\f70d\"; }\n.bi-braces-asterisk::before { content: \"\\f70e\"; }\n.bi-calendar-heart-fill::before { content: \"\\f70f\"; }\n.bi-calendar-heart::before { content: \"\\f710\"; }\n.bi-calendar2-heart-fill::before { content: \"\\f711\"; }\n.bi-calendar2-heart::before { content: \"\\f712\"; }\n.bi-chat-heart-fill::before { content: \"\\f713\"; }\n.bi-chat-heart::before { content: \"\\f714\"; }\n.bi-chat-left-heart-fill::before { content: \"\\f715\"; }\n.bi-chat-left-heart::before { content: \"\\f716\"; }\n.bi-chat-right-heart-fill::before { content: \"\\f717\"; }\n.bi-chat-right-heart::before { content: \"\\f718\"; }\n.bi-chat-square-heart-fill::before { content: \"\\f719\"; }\n.bi-chat-square-heart::before { content: \"\\f71a\"; }\n.bi-clipboard-check-fill::before { content: \"\\f71b\"; }\n.bi-clipboard-data-fill::before { content: \"\\f71c\"; }\n.bi-clipboard-fill::before { content: \"\\f71d\"; }\n.bi-clipboard-heart-fill::before { content: \"\\f71e\"; }\n.bi-clipboard-heart::before { content: \"\\f71f\"; }\n.bi-clipboard-minus-fill::before { content: \"\\f720\"; }\n.bi-clipboard-plus-fill::before { content: \"\\f721\"; }\n.bi-clipboard-pulse::before { content: \"\\f722\"; }\n.bi-clipboard-x-fill::before { content: \"\\f723\"; }\n.bi-clipboard2-check-fill::before { content: \"\\f724\"; }\n.bi-clipboard2-check::before { content: \"\\f725\"; }\n.bi-clipboard2-data-fill::before { content: \"\\f726\"; }\n.bi-clipboard2-data::before { content: \"\\f727\"; }\n.bi-clipboard2-fill::before { content: \"\\f728\"; }\n.bi-clipboard2-heart-fill::before { content: \"\\f729\"; }\n.bi-clipboard2-heart::before { content: \"\\f72a\"; }\n.bi-clipboard2-minus-fill::before { content: \"\\f72b\"; }\n.bi-clipboard2-minus::before { content: \"\\f72c\"; }\n.bi-clipboard2-plus-fill::before { content: \"\\f72d\"; }\n.bi-clipboard2-plus::before { content: \"\\f72e\"; }\n.bi-clipboard2-pulse-fill::before { content: \"\\f72f\"; }\n.bi-clipboard2-pulse::before { content: \"\\f730\"; }\n.bi-clipboard2-x-fill::before { content: \"\\f731\"; }\n.bi-clipboard2-x::before { content: \"\\f732\"; }\n.bi-clipboard2::before { content: \"\\f733\"; }\n.bi-emoji-kiss-fill::before { content: \"\\f734\"; }\n.bi-emoji-kiss::before { content: \"\\f735\"; }\n.bi-envelope-heart-fill::before { content: \"\\f736\"; }\n.bi-envelope-heart::before { content: \"\\f737\"; }\n.bi-envelope-open-heart-fill::before { content: \"\\f738\"; }\n.bi-envelope-open-heart::before { content: \"\\f739\"; }\n.bi-envelope-paper-fill::before { content: \"\\f73a\"; }\n.bi-envelope-paper-heart-fill::before { content: \"\\f73b\"; }\n.bi-envelope-paper-heart::before { content: \"\\f73c\"; }\n.bi-envelope-paper::before { content: \"\\f73d\"; }\n.bi-filetype-aac::before { content: \"\\f73e\"; }\n.bi-filetype-ai::before { content: \"\\f73f\"; }\n.bi-filetype-bmp::before { content: \"\\f740\"; }\n.bi-filetype-cs::before { content: \"\\f741\"; }\n.bi-filetype-css::before { content: \"\\f742\"; }\n.bi-filetype-csv::before { content: \"\\f743\"; }\n.bi-filetype-doc::before { content: \"\\f744\"; }\n.bi-filetype-docx::before { content: \"\\f745\"; }\n.bi-filetype-exe::before { content: \"\\f746\"; }\n.bi-filetype-gif::before { content: \"\\f747\"; }\n.bi-filetype-heic::before { content: \"\\f748\"; }\n.bi-filetype-html::before { content: \"\\f749\"; }\n.bi-filetype-java::before { content: \"\\f74a\"; }\n.bi-filetype-jpg::before { content: \"\\f74b\"; }\n.bi-filetype-js::before { content: \"\\f74c\"; }\n.bi-filetype-jsx::before { content: \"\\f74d\"; }\n.bi-filetype-key::before { content: \"\\f74e\"; }\n.bi-filetype-m4p::before { content: \"\\f74f\"; }\n.bi-filetype-md::before { content: \"\\f750\"; }\n.bi-filetype-mdx::before { content: \"\\f751\"; }\n.bi-filetype-mov::before { content: \"\\f752\"; }\n.bi-filetype-mp3::before { content: \"\\f753\"; }\n.bi-filetype-mp4::before { content: \"\\f754\"; }\n.bi-filetype-otf::before { content: \"\\f755\"; }\n.bi-filetype-pdf::before { content: \"\\f756\"; }\n.bi-filetype-php::before { content: \"\\f757\"; }\n.bi-filetype-png::before { content: \"\\f758\"; }\n.bi-filetype-ppt-1::before { content: \"\\f759\"; }\n.bi-filetype-ppt::before { content: \"\\f75a\"; }\n.bi-filetype-psd::before { content: \"\\f75b\"; }\n.bi-filetype-py::before { content: \"\\f75c\"; }\n.bi-filetype-raw::before { content: \"\\f75d\"; }\n.bi-filetype-rb::before { content: \"\\f75e\"; }\n.bi-filetype-sass::before { content: \"\\f75f\"; }\n.bi-filetype-scss::before { content: \"\\f760\"; }\n.bi-filetype-sh::before { content: \"\\f761\"; }\n.bi-filetype-svg::before { content: \"\\f762\"; }\n.bi-filetype-tiff::before { content: \"\\f763\"; }\n.bi-filetype-tsx::before { content: \"\\f764\"; }\n.bi-filetype-ttf::before { content: \"\\f765\"; }\n.bi-filetype-txt::before { content: \"\\f766\"; }\n.bi-filetype-wav::before { content: \"\\f767\"; }\n.bi-filetype-woff::before { content: \"\\f768\"; }\n.bi-filetype-xls-1::before { content: \"\\f769\"; }\n.bi-filetype-xls::before { content: \"\\f76a\"; }\n.bi-filetype-xml::before { content: \"\\f76b\"; }\n.bi-filetype-yml::before { content: \"\\f76c\"; }\n.bi-heart-arrow::before { content: \"\\f76d\"; }\n.bi-heart-pulse-fill::before { content: \"\\f76e\"; }\n.bi-heart-pulse::before { content: \"\\f76f\"; }\n.bi-heartbreak-fill::before { content: \"\\f770\"; }\n.bi-heartbreak::before { content: \"\\f771\"; }\n.bi-hearts::before { content: \"\\f772\"; }\n.bi-hospital-fill::before { content: \"\\f773\"; }\n.bi-hospital::before { content: \"\\f774\"; }\n.bi-house-heart-fill::before { content: \"\\f775\"; }\n.bi-house-heart::before { content: \"\\f776\"; }\n.bi-incognito::before { content: \"\\f777\"; }\n.bi-magnet-fill::before { content: \"\\f778\"; }\n.bi-magnet::before { content: \"\\f779\"; }\n.bi-person-heart::before { content: \"\\f77a\"; }\n.bi-person-hearts::before { content: \"\\f77b\"; }\n.bi-phone-flip::before { content: \"\\f77c\"; }\n.bi-plugin::before { content: \"\\f77d\"; }\n.bi-postage-fill::before { content: \"\\f77e\"; }\n.bi-postage-heart-fill::before { content: \"\\f77f\"; }\n.bi-postage-heart::before { content: \"\\f780\"; }\n.bi-postage::before { content: \"\\f781\"; }\n.bi-postcard-fill::before { content: \"\\f782\"; }\n.bi-postcard-heart-fill::before { content: \"\\f783\"; }\n.bi-postcard-heart::before { content: \"\\f784\"; }\n.bi-postcard::before { content: \"\\f785\"; }\n.bi-search-heart-fill::before { content: \"\\f786\"; }\n.bi-search-heart::before { content: \"\\f787\"; }\n.bi-sliders2-vertical::before { content: \"\\f788\"; }\n.bi-sliders2::before { content: \"\\f789\"; }\n.bi-trash3-fill::before { content: \"\\f78a\"; }\n.bi-trash3::before { content: \"\\f78b\"; }\n.bi-valentine::before { content: \"\\f78c\"; }\n.bi-valentine2::before { content: \"\\f78d\"; }\n.bi-wrench-adjustable-circle-fill::before { content: \"\\f78e\"; }\n.bi-wrench-adjustable-circle::before { content: \"\\f78f\"; }\n.bi-wrench-adjustable::before { content: \"\\f790\"; }\n.bi-filetype-json::before { content: \"\\f791\"; }\n.bi-filetype-pptx::before { content: \"\\f792\"; }\n.bi-filetype-xlsx::before { content: \"\\f793\"; }\n.bi-1-circle-1::before { content: \"\\f794\"; }\n.bi-1-circle-fill-1::before { content: \"\\f795\"; }\n.bi-1-circle-fill::before { content: \"\\f796\"; }\n.bi-1-circle::before { content: \"\\f797\"; }\n.bi-1-square-fill::before { content: \"\\f798\"; }\n.bi-1-square::before { content: \"\\f799\"; }\n.bi-2-circle-1::before { content: \"\\f79a\"; }\n.bi-2-circle-fill-1::before { content: \"\\f79b\"; }\n.bi-2-circle-fill::before { content: \"\\f79c\"; }\n.bi-2-circle::before { content: \"\\f79d\"; }\n.bi-2-square-fill::before { content: \"\\f79e\"; }\n.bi-2-square::before { content: \"\\f79f\"; }\n.bi-3-circle-1::before { content: \"\\f7a0\"; }\n.bi-3-circle-fill-1::before { content: \"\\f7a1\"; }\n.bi-3-circle-fill::before { content: \"\\f7a2\"; }\n.bi-3-circle::before { content: \"\\f7a3\"; }\n.bi-3-square-fill::before { content: \"\\f7a4\"; }\n.bi-3-square::before { content: \"\\f7a5\"; }\n.bi-4-circle-1::before { content: \"\\f7a6\"; }\n.bi-4-circle-fill-1::before { content: \"\\f7a7\"; }\n.bi-4-circle-fill::before { content: \"\\f7a8\"; }\n.bi-4-circle::before { content: \"\\f7a9\"; }\n.bi-4-square-fill::before { content: \"\\f7aa\"; }\n.bi-4-square::before { content: \"\\f7ab\"; }\n.bi-5-circle-1::before { content: \"\\f7ac\"; }\n.bi-5-circle-fill-1::before { content: \"\\f7ad\"; }\n.bi-5-circle-fill::before { content: \"\\f7ae\"; }\n.bi-5-circle::before { content: \"\\f7af\"; }\n.bi-5-square-fill::before { content: \"\\f7b0\"; }\n.bi-5-square::before { content: \"\\f7b1\"; }\n.bi-6-circle-1::before { content: \"\\f7b2\"; }\n.bi-6-circle-fill-1::before { content: \"\\f7b3\"; }\n.bi-6-circle-fill::before { content: \"\\f7b4\"; }\n.bi-6-circle::before { content: \"\\f7b5\"; }\n.bi-6-square-fill::before { content: \"\\f7b6\"; }\n.bi-6-square::before { content: \"\\f7b7\"; }\n.bi-7-circle-1::before { content: \"\\f7b8\"; }\n.bi-7-circle-fill-1::before { content: \"\\f7b9\"; }\n.bi-7-circle-fill::before { content: \"\\f7ba\"; }\n.bi-7-circle::before { content: \"\\f7bb\"; }\n.bi-7-square-fill::before { content: \"\\f7bc\"; }\n.bi-7-square::before { content: \"\\f7bd\"; }\n.bi-8-circle-1::before { content: \"\\f7be\"; }\n.bi-8-circle-fill-1::before { content: \"\\f7bf\"; }\n.bi-8-circle-fill::before { content: \"\\f7c0\"; }\n.bi-8-circle::before { content: \"\\f7c1\"; }\n.bi-8-square-fill::before { content: \"\\f7c2\"; }\n.bi-8-square::before { content: \"\\f7c3\"; }\n.bi-9-circle-1::before { content: \"\\f7c4\"; }\n.bi-9-circle-fill-1::before { content: \"\\f7c5\"; }\n.bi-9-circle-fill::before { content: \"\\f7c6\"; }\n.bi-9-circle::before { content: \"\\f7c7\"; }\n.bi-9-square-fill::before { content: \"\\f7c8\"; }\n.bi-9-square::before { content: \"\\f7c9\"; }\n.bi-airplane-engines-fill::before { content: \"\\f7ca\"; }\n.bi-airplane-engines::before { content: \"\\f7cb\"; }\n.bi-airplane-fill::before { content: \"\\f7cc\"; }\n.bi-airplane::before { content: \"\\f7cd\"; }\n.bi-alexa::before { content: \"\\f7ce\"; }\n.bi-alipay::before { content: \"\\f7cf\"; }\n.bi-android::before { content: \"\\f7d0\"; }\n.bi-android2::before { content: \"\\f7d1\"; }\n.bi-box-fill::before { content: \"\\f7d2\"; }\n.bi-box-seam-fill::before { content: \"\\f7d3\"; }\n.bi-browser-chrome::before { content: \"\\f7d4\"; }\n.bi-browser-edge::before { content: \"\\f7d5\"; }\n.bi-browser-firefox::before { content: \"\\f7d6\"; }\n.bi-browser-safari::before { content: \"\\f7d7\"; }\n.bi-c-circle-1::before { content: \"\\f7d8\"; }\n.bi-c-circle-fill-1::before { content: \"\\f7d9\"; }\n.bi-c-circle-fill::before { content: \"\\f7da\"; }\n.bi-c-circle::before { content: \"\\f7db\"; }\n.bi-c-square-fill::before { content: \"\\f7dc\"; }\n.bi-c-square::before { content: \"\\f7dd\"; }\n.bi-capsule-pill::before { content: \"\\f7de\"; }\n.bi-capsule::before { content: \"\\f7df\"; }\n.bi-car-front-fill::before { content: \"\\f7e0\"; }\n.bi-car-front::before { content: \"\\f7e1\"; }\n.bi-cassette-fill::before { content: \"\\f7e2\"; }\n.bi-cassette::before { content: \"\\f7e3\"; }\n.bi-cc-circle-1::before { content: \"\\f7e4\"; }\n.bi-cc-circle-fill-1::before { content: \"\\f7e5\"; }\n.bi-cc-circle-fill::before { content: \"\\f7e6\"; }\n.bi-cc-circle::before { content: \"\\f7e7\"; }\n.bi-cc-square-fill::before { content: \"\\f7e8\"; }\n.bi-cc-square::before { content: \"\\f7e9\"; }\n.bi-cup-hot-fill::before { content: \"\\f7ea\"; }\n.bi-cup-hot::before { content: \"\\f7eb\"; }\n.bi-currency-rupee::before { content: \"\\f7ec\"; }\n.bi-dropbox::before { content: \"\\f7ed\"; }\n.bi-escape::before { content: \"\\f7ee\"; }\n.bi-fast-forward-btn-fill::before { content: \"\\f7ef\"; }\n.bi-fast-forward-btn::before { content: \"\\f7f0\"; }\n.bi-fast-forward-circle-fill::before { content: \"\\f7f1\"; }\n.bi-fast-forward-circle::before { content: \"\\f7f2\"; }\n.bi-fast-forward-fill::before { content: \"\\f7f3\"; }\n.bi-fast-forward::before { content: \"\\f7f4\"; }\n.bi-filetype-sql::before { content: \"\\f7f5\"; }\n.bi-fire::before { content: \"\\f7f6\"; }\n.bi-google-play::before { content: \"\\f7f7\"; }\n.bi-h-circle-1::before { content: \"\\f7f8\"; }\n.bi-h-circle-fill-1::before { content: \"\\f7f9\"; }\n.bi-h-circle-fill::before { content: \"\\f7fa\"; }\n.bi-h-circle::before { content: \"\\f7fb\"; }\n.bi-h-square-fill::before { content: \"\\f7fc\"; }\n.bi-h-square::before { content: \"\\f7fd\"; }\n.bi-indent::before { content: \"\\f7fe\"; }\n.bi-lungs-fill::before { content: \"\\f7ff\"; }\n.bi-lungs::before { content: \"\\f800\"; }\n.bi-microsoft-teams::before { content: \"\\f801\"; }\n.bi-p-circle-1::before { content: \"\\f802\"; }\n.bi-p-circle-fill-1::before { content: \"\\f803\"; }\n.bi-p-circle-fill::before { content: \"\\f804\"; }\n.bi-p-circle::before { content: \"\\f805\"; }\n.bi-p-square-fill::before { content: \"\\f806\"; }\n.bi-p-square::before { content: \"\\f807\"; }\n.bi-pass-fill::before { content: \"\\f808\"; }\n.bi-pass::before { content: \"\\f809\"; }\n.bi-prescription::before { content: \"\\f80a\"; }\n.bi-prescription2::before { content: \"\\f80b\"; }\n.bi-r-circle-1::before { content: \"\\f80c\"; }\n.bi-r-circle-fill-1::before { content: \"\\f80d\"; }\n.bi-r-circle-fill::before { content: \"\\f80e\"; }\n.bi-r-circle::before { content: \"\\f80f\"; }\n.bi-r-square-fill::before { content: \"\\f810\"; }\n.bi-r-square::before { content: \"\\f811\"; }\n.bi-repeat-1::before { content: \"\\f812\"; }\n.bi-repeat::before { content: \"\\f813\"; }\n.bi-rewind-btn-fill::before { content: \"\\f814\"; }\n.bi-rewind-btn::before { content: \"\\f815\"; }\n.bi-rewind-circle-fill::before { content: \"\\f816\"; }\n.bi-rewind-circle::before { content: \"\\f817\"; }\n.bi-rewind-fill::before { content: \"\\f818\"; }\n.bi-rewind::before { content: \"\\f819\"; }\n.bi-train-freight-front-fill::before { content: \"\\f81a\"; }\n.bi-train-freight-front::before { content: \"\\f81b\"; }\n.bi-train-front-fill::before { content: \"\\f81c\"; }\n.bi-train-front::before { content: \"\\f81d\"; }\n.bi-train-lightrail-front-fill::before { content: \"\\f81e\"; }\n.bi-train-lightrail-front::before { content: \"\\f81f\"; }\n.bi-truck-front-fill::before { content: \"\\f820\"; }\n.bi-truck-front::before { content: \"\\f821\"; }\n.bi-ubuntu::before { content: \"\\f822\"; }\n.bi-unindent::before { content: \"\\f823\"; }\n.bi-unity::before { content: \"\\f824\"; }\n.bi-universal-access-circle::before { content: \"\\f825\"; }\n.bi-universal-access::before { content: \"\\f826\"; }\n.bi-virus::before { content: \"\\f827\"; }\n.bi-virus2::before { content: \"\\f828\"; }\n.bi-wechat::before { content: \"\\f829\"; }\n.bi-yelp::before { content: \"\\f82a\"; }\n.bi-sign-stop-fill::before { content: \"\\f82b\"; }\n.bi-sign-stop-lights-fill::before { content: \"\\f82c\"; }\n.bi-sign-stop-lights::before { content: \"\\f82d\"; }\n.bi-sign-stop::before { content: \"\\f82e\"; }\n.bi-sign-turn-left-fill::before { content: \"\\f82f\"; }\n.bi-sign-turn-left::before { content: \"\\f830\"; }\n.bi-sign-turn-right-fill::before { content: \"\\f831\"; }\n.bi-sign-turn-right::before { content: \"\\f832\"; }\n.bi-sign-turn-slight-left-fill::before { content: \"\\f833\"; }\n.bi-sign-turn-slight-left::before { content: \"\\f834\"; }\n.bi-sign-turn-slight-right-fill::before { content: \"\\f835\"; }\n.bi-sign-turn-slight-right::before { content: \"\\f836\"; }\n.bi-sign-yield-fill::before { content: \"\\f837\"; }\n.bi-sign-yield::before { content: \"\\f838\"; }\n.bi-ev-station-fill::before { content: \"\\f839\"; }\n.bi-ev-station::before { content: \"\\f83a\"; }\n.bi-fuel-pump-diesel-fill::before { content: \"\\f83b\"; }\n.bi-fuel-pump-diesel::before { content: \"\\f83c\"; }\n.bi-fuel-pump-fill::before { content: \"\\f83d\"; }\n.bi-fuel-pump::before { content: \"\\f83e\"; }\n.bi-0-circle-fill::before { content: \"\\f83f\"; }\n.bi-0-circle::before { content: \"\\f840\"; }\n.bi-0-square-fill::before { content: \"\\f841\"; }\n.bi-0-square::before { content: \"\\f842\"; }\n.bi-rocket-fill::before { content: \"\\f843\"; }\n.bi-rocket-takeoff-fill::before { content: \"\\f844\"; }\n.bi-rocket-takeoff::before { content: \"\\f845\"; }\n.bi-rocket::before { content: \"\\f846\"; }\n.bi-stripe::before { content: \"\\f847\"; }\n.bi-subscript::before { content: \"\\f848\"; }\n.bi-superscript::before { content: \"\\f849\"; }\n.bi-trello::before { content: \"\\f84a\"; }\n.bi-envelope-at-fill::before { content: \"\\f84b\"; }\n.bi-envelope-at::before { content: \"\\f84c\"; }\n.bi-regex::before { content: \"\\f84d\"; }\n.bi-text-wrap::before { content: \"\\f84e\"; }\n.bi-sign-dead-end-fill::before { content: \"\\f84f\"; }\n.bi-sign-dead-end::before { content: \"\\f850\"; }\n.bi-sign-do-not-enter-fill::before { content: \"\\f851\"; }\n.bi-sign-do-not-enter::before { content: \"\\f852\"; }\n.bi-sign-intersection-fill::before { content: \"\\f853\"; }\n.bi-sign-intersection-side-fill::before { content: \"\\f854\"; }\n.bi-sign-intersection-side::before { content: \"\\f855\"; }\n.bi-sign-intersection-t-fill::before { content: \"\\f856\"; }\n.bi-sign-intersection-t::before { content: \"\\f857\"; }\n.bi-sign-intersection-y-fill::before { content: \"\\f858\"; }\n.bi-sign-intersection-y::before { content: \"\\f859\"; }\n.bi-sign-intersection::before { content: \"\\f85a\"; }\n.bi-sign-merge-left-fill::before { content: \"\\f85b\"; }\n.bi-sign-merge-left::before { content: \"\\f85c\"; }\n.bi-sign-merge-right-fill::before { content: \"\\f85d\"; }\n.bi-sign-merge-right::before { content: \"\\f85e\"; }\n.bi-sign-no-left-turn-fill::before { content: \"\\f85f\"; }\n.bi-sign-no-left-turn::before { content: \"\\f860\"; }\n.bi-sign-no-parking-fill::before { content: \"\\f861\"; }\n.bi-sign-no-parking::before { content: \"\\f862\"; }\n.bi-sign-no-right-turn-fill::before { content: \"\\f863\"; }\n.bi-sign-no-right-turn::before { content: \"\\f864\"; }\n.bi-sign-railroad-fill::before { content: \"\\f865\"; }\n.bi-sign-railroad::before { content: \"\\f866\"; }\n.bi-building-add::before { content: \"\\f867\"; }\n.bi-building-check::before { content: \"\\f868\"; }\n.bi-building-dash::before { content: \"\\f869\"; }\n.bi-building-down::before { content: \"\\f86a\"; }\n.bi-building-exclamation::before { content: \"\\f86b\"; }\n.bi-building-fill-add::before { content: \"\\f86c\"; }\n.bi-building-fill-check::before { content: \"\\f86d\"; }\n.bi-building-fill-dash::before { content: \"\\f86e\"; }\n.bi-building-fill-down::before { content: \"\\f86f\"; }\n.bi-building-fill-exclamation::before { content: \"\\f870\"; }\n.bi-building-fill-gear::before { content: \"\\f871\"; }\n.bi-building-fill-lock::before { content: \"\\f872\"; }\n.bi-building-fill-slash::before { content: \"\\f873\"; }\n.bi-building-fill-up::before { content: \"\\f874\"; }\n.bi-building-fill-x::before { content: \"\\f875\"; }\n.bi-building-fill::before { content: \"\\f876\"; }\n.bi-building-gear::before { content: \"\\f877\"; }\n.bi-building-lock::before { content: \"\\f878\"; }\n.bi-building-slash::before { content: \"\\f879\"; }\n.bi-building-up::before { content: \"\\f87a\"; }\n.bi-building-x::before { content: \"\\f87b\"; }\n.bi-buildings-fill::before { content: \"\\f87c\"; }\n.bi-buildings::before { content: \"\\f87d\"; }\n.bi-bus-front-fill::before { content: \"\\f87e\"; }\n.bi-bus-front::before { content: \"\\f87f\"; }\n.bi-ev-front-fill::before { content: \"\\f880\"; }\n.bi-ev-front::before { content: \"\\f881\"; }\n.bi-globe-americas::before { content: \"\\f882\"; }\n.bi-globe-asia-australia::before { content: \"\\f883\"; }\n.bi-globe-central-south-asia::before { content: \"\\f884\"; }\n.bi-globe-europe-africa::before { content: \"\\f885\"; }\n.bi-house-add-fill::before { content: \"\\f886\"; }\n.bi-house-add::before { content: \"\\f887\"; }\n.bi-house-check-fill::before { content: \"\\f888\"; }\n.bi-house-check::before { content: \"\\f889\"; }\n.bi-house-dash-fill::before { content: \"\\f88a\"; }\n.bi-house-dash::before { content: \"\\f88b\"; }\n.bi-house-down-fill::before { content: \"\\f88c\"; }\n.bi-house-down::before { content: \"\\f88d\"; }\n.bi-house-exclamation-fill::before { content: \"\\f88e\"; }\n.bi-house-exclamation::before { content: \"\\f88f\"; }\n.bi-house-gear-fill::before { content: \"\\f890\"; }\n.bi-house-gear::before { content: \"\\f891\"; }\n.bi-house-lock-fill::before { content: \"\\f892\"; }\n.bi-house-lock::before { content: \"\\f893\"; }\n.bi-house-slash-fill::before { content: \"\\f894\"; }\n.bi-house-slash::before { content: \"\\f895\"; }\n.bi-house-up-fill::before { content: \"\\f896\"; }\n.bi-house-up::before { content: \"\\f897\"; }\n.bi-house-x-fill::before { content: \"\\f898\"; }\n.bi-house-x::before { content: \"\\f899\"; }\n.bi-person-add::before { content: \"\\f89a\"; }\n.bi-person-down::before { content: \"\\f89b\"; }\n.bi-person-exclamation::before { content: \"\\f89c\"; }\n.bi-person-fill-add::before { content: \"\\f89d\"; }\n.bi-person-fill-check::before { content: \"\\f89e\"; }\n.bi-person-fill-dash::before { content: \"\\f89f\"; }\n.bi-person-fill-down::before { content: \"\\f8a0\"; }\n.bi-person-fill-exclamation::before { content: \"\\f8a1\"; }\n.bi-person-fill-gear::before { content: \"\\f8a2\"; }\n.bi-person-fill-lock::before { content: \"\\f8a3\"; }\n.bi-person-fill-slash::before { content: \"\\f8a4\"; }\n.bi-person-fill-up::before { content: \"\\f8a5\"; }\n.bi-person-fill-x::before { content: \"\\f8a6\"; }\n.bi-person-gear::before { content: \"\\f8a7\"; }\n.bi-person-lock::before { content: \"\\f8a8\"; }\n.bi-person-slash::before { content: \"\\f8a9\"; }\n.bi-person-up::before { content: \"\\f8aa\"; }\n.bi-scooter::before { content: \"\\f8ab\"; }\n.bi-taxi-front-fill::before { content: \"\\f8ac\"; }\n.bi-taxi-front::before { content: \"\\f8ad\"; }\n.bi-amd::before { content: \"\\f8ae\"; }\n.bi-database-add::before { content: \"\\f8af\"; }\n.bi-database-check::before { content: \"\\f8b0\"; }\n.bi-database-dash::before { content: \"\\f8b1\"; }\n.bi-database-down::before { content: \"\\f8b2\"; }\n.bi-database-exclamation::before { content: \"\\f8b3\"; }\n.bi-database-fill-add::before { content: \"\\f8b4\"; }\n.bi-database-fill-check::before { content: \"\\f8b5\"; }\n.bi-database-fill-dash::before { content: \"\\f8b6\"; }\n.bi-database-fill-down::before { content: \"\\f8b7\"; }\n.bi-database-fill-exclamation::before { content: \"\\f8b8\"; }\n.bi-database-fill-gear::before { content: \"\\f8b9\"; }\n.bi-database-fill-lock::before { content: \"\\f8ba\"; }\n.bi-database-fill-slash::before { content: \"\\f8bb\"; }\n.bi-database-fill-up::before { content: \"\\f8bc\"; }\n.bi-database-fill-x::before { content: \"\\f8bd\"; }\n.bi-database-fill::before { content: \"\\f8be\"; }\n.bi-database-gear::before { content: \"\\f8bf\"; }\n.bi-database-lock::before { content: \"\\f8c0\"; }\n.bi-database-slash::before { content: \"\\f8c1\"; }\n.bi-database-up::before { content: \"\\f8c2\"; }\n.bi-database-x::before { content: \"\\f8c3\"; }\n.bi-database::before { content: \"\\f8c4\"; }\n.bi-houses-fill::before { content: \"\\f8c5\"; }\n.bi-houses::before { content: \"\\f8c6\"; }\n.bi-nvidia::before { content: \"\\f8c7\"; }\n.bi-person-vcard-fill::before { content: \"\\f8c8\"; }\n.bi-person-vcard::before { content: \"\\f8c9\"; }\n.bi-sina-weibo::before { content: \"\\f8ca\"; }\n.bi-tencent-qq::before { content: \"\\f8cb\"; }\n.bi-wikipedia::before { content: \"\\f8cc\"; }\n", "\n\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n", ".webbpm input[type=\"text\"],\n.webbpm input[type=\"email\"],\n.webbpm input[type=\"password\"],\n.webbpm input[type=\"number\"],\n.webbpm textarea,\n.webbpm .selectize-control.single .selectize-input,\n.webbpm .multi.plugin-remove_button .selectize-input {\n padding: 6px 8px;\n color: #333;\n border: 1px solid #ccc;\n border-radius: 0;\n background-color: #fff;\n background-image: none;\n box-shadow: none;\n}\n\n.webbpm input:focus,\n.webbpm textarea:focus,\n.webbpm .selectize-control.single .selectize-input:focus,\n.webbpm .multi.plugin-remove_button .selectize-input:focus {\n border-color: #4797cc;\n}\n\n.webbpm .selectize-input {\n min-height: 34px;\n}\n\n.webbpm .modal-body > [page-object] {\n margin-bottom: 10px;\n}\n\n.webbpm .modal-body.progress-bar {\n text-align: center;\n}\n\n.webbpm .horizontal-container > * {\n padding-right: 10px;\n}\n\n.webbpm .horizontal-container > *:last-child,\n.webbpm .horizontal-container > [empty] {\n padding-right: 0;\n}\n\n.webbpm form, .webbpm .form-group {\n position: relative;\n}\n\n.webbpm .hidden {\n display: none !important;\n}\n\n.webbpm .form-control,\n.webbpm .input-group-addon {\n font-size: 14px;\n padding: 6px 8px;\n border-radius: 0;\n}\n\n.webbpm .input-group-addon {\n color: #555;\n border: 1px solid #ccc;\n border-left-width: 0px;\n background-color: #eceeef;\n}\n\n.webbpm .form-control[disabled],\n.webbpm .form-control[readonly],\n.webbpm fieldset[disabled] .form-control {\n background-color: #eee;\n}\n\n.webbpm .form-group > label,\n.webbpm .form-group > div {\n display: inline-flex;\n}\n\n.webbpm label.control-label {\n padding-top: 5px;\n margin-bottom: 0;\n}\n\n.webbpm .label-at-top .form-group > label {\n float: none !important;\n display: block !important;\n width: auto !important;\n}\n\n.webbpm .overflow-auto {\n overflow: auto;\n}\n\n.webbpm [object-name]::after {\n display: block;\n content: \"\";\n float: none;\n clear: both;\n}\n\n.webbpm .form-group::after, .webbpm .form-group::before {\n display: table;\n content: \" \";\n clear: both;\n}\n\n.webbpm .dropdown-menu > li > a {\n cursor: pointer;\n}\n\n.webbpm label {\n width: 150px;\n margin-right: 10px;\n}\n\n.webbpm .small {\n font-size: 100%;\n}\n\n.webbpm label ~ div.component-float {\n width: 300px;\n}\n\n.webbpm .width-large label ~ div.component-float,\n.webbpm .width-large input[type=\"text\"] {\n width: 500px;\n}\n\n.webbpm .width-large .select2-container,\n.webbpm .width-large .select2-container .select2-drop{\n width: 510px;\n}\n\n.webbpm .horizontal-container .form-group ~ .form-group label {\n//width: auto;\n padding-right: 10px;\n}\n\n.webbpm .form-group .form-group {\n margin-bottom: 0;\n}\n\n\n.webbpm .align-center {\n text-align: center;\n}\n\n.webbpm [object-name].box-right,\n.webbpm [object-name].pull-right,\n.webbpm .buttons-container hbox .horizontal-container {\n float: none !important;\n display: flex;\n justify-content: flex-end;\n margin-left: auto;\n}\n.webbpm [object-name].pull-right > div {\n justify-content: flex-end;\n}\n\n.webbpm [page-object][object-name].align-center {\n display: flex;\n}\n.webbpm [page-object][object-name].align-center > * {\n margin: 0 auto;\n}\n\n.webbpm .fixed-label-medium>.form-group label,\n.webbpm .fixed-label-medium .form-radio-group label,\n.webbpm .horizontal-container .fixed-label-medium .form-group .form-radio-group label {\n width: 240px;\n}\n\n.webbpm .fixed-label>.form-group label,\n.webbpm .fixed-label .form-radio-group label,\n.webbpm .horizontal-container .fixed-label .form-group .form-radio-group label {\n width: 190px;\n}\n\n.webbpm .fixed-label-small>.form-group label,\n.webbpm .fixed-label-small .form-radio-group label,\n.webbpm .horizontal-container .fixed-label-small .form-group .form-radio-group label {\n width: 140px;\n}\n\n.webbpm .fixed-label-mini>.form-group label,\n.webbpm .fixed-label-mini .form-radio-group label,\n.webbpm .horizontal-container .fixed-label-mini .form-group .form-radio-group label {\n width: 90px;\n}\n\n.webbpm .fixed-label-extra-mini>.form-group label,\n.webbpm .fixed-label-extra-mini .form-radio-group label,\n.webbpm .horizontal-container .fixed-label-extra-mini .form-group .form-radio-group label{\n width: 50px;\n}\n\n.webbpm .free-label label {\n width: auto;\n}\n\n.webbpm .extra-mini label ~ div,\n.webbpm .mini label ~ div,\n.webbpm .small label ~ div,\n.webbpm .medium label ~ div,\n.webbpm .large label ~ div {\n width: auto;\n}\n\n.webbpm .width-full-label-free label ~ div {\n width: 100%;\n}\n\n.webbpm .extra-mini input,\n.webbpm .extra-mini select,\n.webbpm .extra-mini .selectize-control > .selectize-input {\n width: 60px;\n}\n.webbpm .mini input,\n.webbpm .mini select,\n.webbpm .mini .selectize-control > .selectize-input {\n width: 80px;\n}\n.webbpm .small input,\n.webbpm .small select,\n.webbpm .small .selectize-control > .selectize-input {\n width: 150px;\n}\n.webbpm .medium input,\n.webbpm .medium textarea,\n.webbpm .medium select,\n.webbpm .medium .selectize-control > .selectize-input {\n width: 220px;\n}\n.webbpm .large input,\n.webbpm .large textarea,\n.webbpm .large select,\n.webbpm .large .selectize-control > .selectize-input {\n width: 600px;\n}\n\n.webbpm .font-huge,\n.webbpm .font-huge .btn {\n font-size: 2.2rem;\n}\n.webbpm .font-large,\n.webbpm .font-large .btn {\n font-size: 1.8rem;\n}\n.webbpm .font-medium,\n.webbpm .font-medium .btn {\n font-size: 1.4rem;\n}\n.webbpm .font-small,\n.webbpm .font-small .btn {\n font-size: 0.9rem;\n}\n.webbpm .font-mini,\n.webbpm .font-mini .btn {\n font-size: 0.8rem;\n}\n\n.webbpm .font-bold,\n.webbpm .font-label-bold label,\n.webbpm .font-bold .btn {\n font-weight: bold;\n}\n\n.webbpm .font-i {\n font-style: italic;\n}\n.webbpm .font-u,\n.webbpm .font-u label,\n.webbpm .font-u .btn {\n text-decoration: underline;\n}\n.webbpm .font-line,\n.webbpm .font-line label,\n.webbpm .font-line .btn {\n text-decoration: line-through;\n}\n\n.webbpm .title {\n font-size: 1.4em;\n padding: 8px 10px 8px 15px;\n margin: 0;\n width: 100%;\n}\n.webbpm .title.font-huge {\n font-size: 2.2em;\n}\n.webbpm .title.font-large {\n font-size: 1.8em;\n}\n.webbpm .title.font-medium {\n font-size: 1.4em;\n}\n.webbpm .title.font-small {\n font-size: 0.9em;\n}\n.webbpm .title.font-mini {\n font-size: 0.8em;\n}\n.webbpm .title.font-u > div {\n text-decoration: underline;\n}\n.webbpm .title.font-line > div {\n text-decoration: line-through;\n}\n\n.webbpm .sub-header {\n font-weight: bold;\n padding: 6px 10px;\n margin-top: 10px;\n margin-bottom: 10px;\n border-radius: 4px;\n background: #d5dde5;\n width: 100%;\n}\n\n\n.webbpm .width-full>div {\n display: table;\n table-layout: fixed;\n width: 100%;\n}\n\n.webbpm .width-full>div > * {\n display: table-cell;\n float: none !important;\n}\n\n.webbpm .width-full>div > label {\n vertical-align: top;\n}\n.webbpm .width-full>div > label ~ div {\n width: 100%;\n}\n\n.webbpm .width-full.fixed-label-medium>div > label {\n width: 250px;\n}\n.webbpm .width-full.fixed-label>div > label {\n width: 200px;\n}\n.webbpm .width-full.fixed-label-small>div > label {\n width: 150px;\n}\n.webbpm .width-full.fixed-label-mini>div > label {\n width: 100px;\n}\n.webbpm .width-full.fixed-label-extra-mini>div > label {\n width: 60px;\n}\n\n\n\n.webbpm .block-content {\n position: relative;\n padding: 15px;\n margin: 15px;\n border: 1px solid #CCD1D7;\n border-radius: 4px;\n background: #fff;\n}\n\n.webbpm form .block-content {\n margin-left: 0;\n margin-right: 0;\n}\n\n.webbpm .block-content::after {\n display: block;\n content: \"\";\n float: none;\n clear: both;\n}\n\n.webbpm .block-content textarea {\n resize: none;\n}\n\n.webbpm .block-content>div > [page-object] {\n margin-bottom: 15px;\n}\n\n.webbpm .block-content>div > [page-object]:last-child,\n.webbpm .block-content>.horizontal-container > [page-object] {\n margin-bottom: 0;\n}\n\n.webbpm .block-fixed {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: 0;\n padding: 0;\n}\n\n.webbpm .block-fixed ~ div:not([dialog]) {\n display: none;\n}\n\n.webbpm .block-fixed .block-fixed-content {\n position: absolute;\n top: 0;\n bottom: 60px;\n left: 0;\n width: 100%;\n overflow-y: auto;\n}\n\n.webbpm .block-fixed .block-fixed-content>div > * {\n padding-left: 15px;\n padding-right: 15px;\n margin-bottom: 15px;\n}\n\n.webbpm .block-fixed .block-fixed-buttons {\n position: absolute;\n bottom: 0;\n height: 60px;\n left: 0;\n width: 100%;\n padding: 12px 15px;\n border-top: 1px solid #CCD1D7;\n background: #fff;\n}\n\n.webbpm .dropdown-menu .btn {\n text-align: left;\n width: auto;\n min-width: 100%;\n border: 0;\n margin-bottom: 0;\n background: transparent;\n box-shadow: none;\n}\n\n.webbpm .dropdown-menu > div:hover .btn {\n opacity: 1;\n}\n\n.webbpm .dropleft .dropdown-menu {\n left: auto;\n right: 0;\n}\n\n.webbpm .block-border {\n border: 1px solid #CCD1D7;\n border-radius: 4px;\n padding: 10px;\n margin: 10px;\n background-color: #fff;\n}\n\n.webbpm .block-border-top-line {\n border-top: 1px solid #CCD1D7;\n padding-top: 10px;\n margin-top: 15px;\n}\n\n\n\n.webbpm .overlay-container {\n position: fixed;\n top: 12px;\n right: 12px;\n max-height: 95%;\n overflow-y: auto;\n overflow-x: hidden;\n z-index: 99999;\n}\n\n.webbpm .overlay-container #toast-container {\n position: static;\n max-height: none;\n overflow: visible;\n z-index: auto;\n}\n\n\n\n.webbpm .alarm {\n color: #ff0000;\n font-size: 1.2em;\n font-weight: bold;\n line-height: 1;\n}\n\n.webbpm div label ~ div {\n position: relative;\n}\n\n.webbpm .wb-touched.wb-invalid .help-block,\n.webbpm .wb-touched.wb-invalid .control-label,\n.webbpm .wb-touched.wb-invalid .radio,\n.webbpm .wb-touched.wb-invalid .checkbox,\n.webbpm .wb-touched.wb-invalid .radio-inline,\n.webbpm .wb-touched.wb-invalid .checkbox-inline {\n color: #333;\n}\n\n.webbpm .wb-touched.wb-invalid .form-control,\n.webbpm .wb-touched.wb-invalid input.form-control,\n.webbpm .wb-touched.wb-invalid .input-group-addon,\n.webbpm .wb-touched.wb-invalid .selectize-input {\n border-color: #e46161 !important;\n}\n\n.webbpm .wb-touched.wb-invalid .form-control:focus,\n.webbpm .wb-touched.wb-invalid input.form-control:focus,\n.webbpm .wb-touched.wb-invalid .input-group-addon:focus,\n.webbpm .wb-touched.wb-invalid .selectize-input:focus {\n border-color: #e46161 !important;\n box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset, 0px 0px 6px #CE8483 !important;\n}\n\n.webbpm .msg,\n.webbpm .msg-validation,\n.webbpm .msg-versioning {\n position: absolute;\n float: none !important;\n color: #262829;\n font-size: 11px;\n padding: 5px 10px;\n background-color: #c3defa;\n border-radius: 4px;\n z-index: 5;\n margin-top: 4px;\n border: 1px solid #8fbfd8;\n box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.15) , 0px 1px 1px rgba(0, 0, 0, 0.1);\n}\n\n.webbpm .msg {\n display: none;\n top: 100%;\n}\n.webbpm .msg-validation {\n display: block;\n top: 100%;\n}\n\n.webbpm .msg-versioning {\n display: block;\n}\n\n.webbpm .wb-touched.wb-invalid .msg {\n display: block;\n}\n\n.webbpm .wb-warning .msg {\n display: block;\n}\n\n.webbpm .msg > .arrow,\n.webbpm .msg-validation > .arrow,\n.webbpm .msg-versioning > .arrow {\n position: absolute;\n top: -8px;\n border: 4px solid transparent;\n border-bottom: 4px solid #8fbfd8;\n}\n.webbpm .msg > .arrow::before,\n.webbpm .msg-validation > .arrow::before,\n.webbpm .msg-versioning > .arrow::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -2px;\n border: 2px solid transparent;\n border-bottom: 2px solid #c3defa;\n}\n\n.webbpm .msg .msg-alert {\n\n}\n.webbpm .msg-alert + .msg-alert {\n padding-top: 2px;\n}\n\n\n\n.webbpm tab-container,\n.webbpm tab-item,\n.webbpm field-set,\n.webbpm base-form,\n.webbpm rest-form,\n.webbpm additional-info-form,\n.webbpm editable-one-to-many-field-form,\n.webbpm editable-one-to-many-field,\n.webbpm webbpm-dialog,\n.webbpm grid,\n.webbpm editable-grid,\n.webbpm vbox,\n.webbpm hbox,\n.webbpm form,\n.webbpm form-component,\n.webbpm dependent-form,\n.webbpm collapsible-panel,\n.webbpm filter-group,\n.webbpm .filter-group,\n.webbpm vbox > div,\n.webbpm hbox > div,\n.webbpm .grid > div,\n.webbpm dependent-form > div,\n.webbpm collapsible-panel > div,\n.webbpm filter-group > div,\n.webbpm .filter-group > div,\n.webbpm .horizontal-container,\n.webbpm .horizontal-container > div,\n.webbpm .vertical-container,\n.webbpm .vertical-container > div,\n.webbpm form > div {\n display: flex;\n}\n\n.webbpm tab-container,\n.webbpm field-set,\n.webbpm base-form,\n.webbpm rest-form,\n.webbpm additional-info-form,\n.webbpm editable-one-to-many-field-form,\n.webbpm editable-one-to-many-field,\n.webbpm webbpm-dialog,\n.webbpm vbox,\n.webbpm hbox,\n.webbpm form,\n.webbpm form-component,\n.webbpm dependent-form,\n.webbpm collapsible-panel,\n.webbpm .grid > div,\n.webbpm editable-grid > div,\n.webbpm dependent-form > div,\n.webbpm collapsible-panel > div,\n.webbpm .horizontal-container,\n.webbpm .horizontal-container > *,\n.webbpm .vertical-container,\n.webbpm .vertical-container > *,\n.webbpm form > div {\n width: 100%;\n}\n\n.webbpm .horizontal-container > *,\n.webbpm grid,\n.webbpm editable-grid,\n.webbpm tree-grid,\n.webbpm tab-item {\n width: auto;\n}\n\n.webbpm hbox,\n.webbpm .horizontal-container,\n.webbpm .horizontal-container > div {\n flex-direction: row;\n display: flex;\n}\n\n\n.webbpm tab-item,\n.webbpm field-set,\n.webbpm base-form,\n.webbpm rest-form,\n.webbpm additional-info-form,\n.webbpm editable-one-to-many-field-form,\n.webbpm editable-one-to-many-field,\n.webbpm webbpm-dialog,\n.webbpm vbox,\n.webbpm grid,\n.webbpm grid-v2,\n.webbpm editable-grid,\n.webbpm tree-grid,\n.webbpm form,\n.webbpm form-component,\n.webbpm dependent-form,\n.webbpm collapsible-panel,\n.webbpm filter-group,\n.webbpm .filter-group,\n.webbpm .vertical-container,\n.webbpm grid-with-row-count .grid,\n.webbpm .grid > div,\n.webbpm dependent-form > div,\n.webbpm collapsible-panel > div,\n.webbpm filter-group > div,\n.webbpm .filter-group > div,\n.webbpm .vertical-container,\n.webbpm .vertical-container > div,\n.webbpm form > *,\n.webbpm process-history-list,\n.webbpm process-instance-diagram {\n flex-direction: column;\n display: flex;\n}\n\n.webbpm .vertical-container,\n.webbpm .horizontal-container,\n.webbpm form {\n flex: inherit;\n}\n\n.autoStretch,\n.webbpm form > div:not(:empty) {\n display: flex;\n flex: 1 1 auto;\n}\n\n.webbpm .form-signin > form,\n.webbpm .form-signin > form > div {\n display: block;\n}\n\n\n.webbpm .card-header {\n cursor: pointer;\n}\n\n\n\n.webbpm .ng-modal-overlay {\n \n position: absolute;\n z-index: 9999;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #000000;\n opacity: 0.8;\n}\n\n.webbpm .ng-modal-dialog {\n \n z-index: 10000;\n position: absolute;\n width: 50%; \n\n \n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n -webkit-transform: translate(-50%, -50%);\n -moz-transform: translate(-50%, -50%);\n\n background-color: #fff;\n box-shadow: 4px 4px 80px #000;\n}\n\n.webbpm .ng-modal-dialog-content {\n padding: 10px;\n text-align: left;\n}\n\n.webbpm .ng-modal-close {\n position: absolute;\n top: 3px;\n right: 5px;\n padding: 5px;\n cursor: pointer;\n font-size: 120%;\n display: inline-block;\n font-weight: bold;\n font-family: 'arial', 'sans-serif';\n color: #fff;\n}\n\n.webbpm .ng-modal-title {\n background-color: #393943;\n color: #fff;\n padding: 10px;\n}\n\n.webbpm dialog:not([open]) {\n display: none;\n}\n\n.webbpm .modal-dialog {\n width: 600px;\n max-width: none;\n}\n\n.webbpm .modal-dialog .modal-footer .btn {\n margin-bottom: 0;\n}\n\n\n.webbpm .fieldset, .panel-body, .webbpm .filter-group, ag-grid-angular,\n.webbpm form[disabled=\"disabled\"],\n.webbpm tab-container,\n.webbpm [radio-container],\n.webbpm .horizontal-container[disabled=\"disabled\"],\n.webbpm .vertical-container[disabled=\"disabled\"] {\n position: relative;\n}\n\n.webbpm .layout_disabled {\n position: absolute;\n top: -5px;\n bottom: -5px;\n left: -5px;\n right: -5px;\n border-radius: 4px;\n background-color: #000;\n opacity: 0.1;\n z-index: 5;\n}\n\n.webbpm .layout_disabled [disabled=\"disabled\"]:before,\n.webbpm [disabled=\"disabled\"] [disabled=\"disabled\"]:before {\n opacity: 0;\n}\n\n.webbpm .horizontal-container[disabled=\"disabled\"]:before,\n.webbpm .vertical-container[disabled=\"disabled\"]:before {\n content: \" \";\n position: absolute;\n top: -5px;\n bottom: -5px;\n left: -5px;\n right: -5px;\n border-radius: 4px;\n background-color: #000;\n opacity: 0.1;\n z-index: 5;\n}\n\n.modal.fade.show {\n opacity: 1;\n}\n\n.webbpm .buttons-container hbox .horizontal-container {\n margin-top: 10px;\n}\n\n\n.webbpm .menu-group-title {\n font-weight: bold;\n text-transform: uppercase;\n}\n\n.webbpm .menu-item {\n font-weight: normal;\n}\n\n.webbpm .menu-group-title,\n.webbpm .menu-item {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n\n.webbpm .menu-group-title + menu {\n padding-left: 15px;\n}\n\n.webbpm .menu-item a:hover {\n text-decoration: underline !important;\n cursor: pointer;\n}\n\n.webbpm .menu-item > li {\n display: table;\n}\n\n.webbpm .menu-item > li > div {\n display: table-cell;\n}\n\n.webbpm .menu-group .menu-item > li > div:first-child,\n.webbpm div:not(.menu-group) .menu-item > li > div:first-child {\n min-width: 180px;\n}\n.webbpm .menu-group .menu-group .menu-item > li > div:first-child {\n min-width: 165px;\n}\n.webbpm .menu-group .menu-group .menu-group .menu-item > li > div:first-child {\n min-width: 150px;\n}\n.webbpm .menu-group .menu-group .menu-group .menu-group .menu-item > li > div:first-child {\n min-width: 135px;\n}\n.webbpm .menu-group .menu-group .menu-group .menu-group .menu-group .menu-item > li > div:first-child {\n min-width: 120px;\n}\n\n.webbpm .menu-item > li > div:last-child {\n text-align: right;\n vertical-align: middle;\n padding: 0 6px;\n background-color: #ddd;\n}\n\n\n\n.webbpm [page-processinstance] #process-instance process-instance-diagram,\n.webbpm [page-processinstance] #process-instance tab-container .tab-active,\n.webbpm [page-processinstance] #process-instance tab-container>div {\n display: block !important;\n}\n\n\n.webbpm .modal-backdrop.in {\n filter: alpha(opacity=0);\n opacity: .0;\n}\n\n.webbpm .loader.modal .modal-dialog {\n width: auto;\n}\n\n.webbpm .loader.modal .modal-content {\n background: rgba(255,255,255,0.5);\n border-radius: 50px;\n border: 1px solid #ccc;\n box-shadow: 0px 1px 3px 2px rgba(0,0,0,.15);\n}\n\n\n.webbpm .calendar .fc-event {\n color: white;\n background-color: red;\n}\n\n.webbpm .calendar .fc-event.fc-helper {\n color: white;\n background-color: green;\n}\n\n\n\n.progress-no-bottom-margin {\n margin-bottom: 0 !important;\n}\n\n.modal-center {\n text-align: center;\n}\n\n.modal-center .modal-dialog {\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n}\n\n\n@media screen and (min-width: 768px) {\n .modal-center:before {\n display: inline-block;\n vertical-align: middle;\n content: \" \";\n height: 100%;\n }\n}\n\n.navigableCell {\n color: blue;\n text-decoration: underline;\n}\n\n.navigableCell:hover {\n cursor: pointer;\n}\n\n.long-value-input input:not(.btn) {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n\n.webbpm .tooltip-default {\n text-align: center;\n max-width: 200px;\n padding: 8px 12px;\n border: 1px solid #eee;\n border-radius: 4px;\n background: #fff;\n}\n\n\n\r\n\r\n.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {\r\n visibility: visible !important;\r\n background: #f2f2f2 !important;\r\n background: rgba(0, 0, 0, 0.06) !important;\r\n border: 0 none !important;\r\n -webkit-box-shadow: inset 0 0 12px 4px #ffffff;\r\n box-shadow: inset 0 0 12px 4px #ffffff;\r\n}\r\n.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {\r\n content: '!';\r\n visibility: hidden;\r\n}\r\n.selectize-control.plugin-drag_drop .ui-sortable-helper {\r\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\r\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\r\n}\r\n.selectize-dropdown-header {\r\n position: relative;\r\n padding: 5px 8px;\r\n border-bottom: 1px solid #d0d0d0;\r\n background: #f8f8f8;\r\n -webkit-border-radius: 3px 3px 0 0;\r\n -moz-border-radius: 3px 3px 0 0;\r\n border-radius: 3px 3px 0 0;\r\n}\r\n.selectize-dropdown-header-close {\r\n position: absolute;\r\n right: 8px;\r\n top: 50%;\r\n color: #303030;\r\n opacity: 0.4;\r\n margin-top: -12px;\r\n line-height: 20px;\r\n font-size: 20px !important;\r\n}\r\n.selectize-dropdown-header-close:hover {\r\n color: #000000;\r\n}\r\n.selectize-dropdown.plugin-optgroup_columns .optgroup {\r\n border-right: 1px solid #f2f2f2;\r\n border-top: 0 none;\r\n float: left;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {\r\n border-right: 0 none;\r\n}\r\n.selectize-dropdown.plugin-optgroup_columns .optgroup:before {\r\n display: none;\r\n}\r\n.selectize-dropdown.plugin-optgroup_columns .optgroup-header {\r\n border-top: 0 none;\r\n}\r\n.selectize-control.plugin-remove_button [data-value] {\r\n position: relative;\r\n padding-right: 24px !important;\r\n}\r\n.selectize-control.plugin-remove_button [data-value] .remove {\r\n z-index: 1;\r\n \r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n width: 17px;\r\n text-align: center;\r\n font-weight: bold;\r\n font-size: 12px;\r\n color: inherit;\r\n text-decoration: none;\r\n vertical-align: middle;\r\n display: inline-block;\r\n padding: 2px 0 0 0;\r\n border-left: 1px solid #d0d0d0;\r\n -webkit-border-radius: 0 2px 2px 0;\r\n -moz-border-radius: 0 2px 2px 0;\r\n border-radius: 0 2px 2px 0;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.selectize-control.plugin-remove_button [data-value] .remove:hover {\r\n background: rgba(0, 0, 0, 0.05);\r\n}\r\n.selectize-control.plugin-remove_button [data-value].active .remove {\r\n border-left-color: #cacaca;\r\n}\r\n.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {\r\n background: none;\r\n}\r\n.selectize-control.plugin-remove_button .disabled [data-value] .remove {\r\n border-left-color: #ffffff;\r\n}\r\n.selectize-control.plugin-remove_button .remove-single {\r\n position: absolute;\r\n right: 28px;\r\n top: 6px;\r\n font-size: 23px;\r\n}\r\n.selectize-control {\r\n position: relative;\r\n}\r\n.selectize-dropdown,\r\n.selectize-input,\r\n.selectize-input input {\r\n color: #303030;\r\n font-family: inherit;\r\n font-size: 13px;\r\n line-height: 18px;\r\n -webkit-font-smoothing: inherit;\r\n}\r\n.selectize-input,\r\n.selectize-control.single .selectize-input.input-active {\r\n background: #ffffff;\r\n cursor: text;\r\n display: inline-block;\r\n}\r\n.selectize-input {\r\n border: 1px solid #d0d0d0;\r\n padding: 8px 8px;\r\n display: inline-block;\r\n width: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n z-index: 1;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);\r\n -webkit-border-radius: 3px;\r\n -moz-border-radius: 3px;\r\n border-radius: 3px;\r\n}\r\n.selectize-control.multi .selectize-input.has-items {\r\n padding: 6px 8px 3px;\r\n}\r\n.selectize-input.full {\r\n background-color: #ffffff;\r\n}\r\n.selectize-input.disabled,\r\n.selectize-input.disabled * {\r\n cursor: default !important;\r\n}\r\n.selectize-input.focus {\r\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);\r\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);\r\n}\r\n.selectize-input.dropdown-active {\r\n -webkit-border-radius: 3px 3px 0 0;\r\n -moz-border-radius: 3px 3px 0 0;\r\n border-radius: 3px 3px 0 0;\r\n}\r\n.selectize-input > * {\r\n vertical-align: baseline;\r\n display: -moz-inline-stack;\r\n display: inline-block;\r\n zoom: 1;\r\n *display: inline;\r\n}\r\n.selectize-control.multi .selectize-input > div {\r\n cursor: pointer;\r\n margin: 0 3px 3px 0;\r\n padding: 2px 6px;\r\n background: #f2f2f2;\r\n color: #303030;\r\n border: 0 solid #d0d0d0;\r\n}\r\n.selectize-control.multi .selectize-input > div.active {\r\n background: #e8e8e8;\r\n color: #303030;\r\n border: 0 solid #cacaca;\r\n}\r\n.selectize-control.multi .selectize-input.disabled > div,\r\n.selectize-control.multi .selectize-input.disabled > div.active {\r\n color: #7d7d7d;\r\n background: #ffffff;\r\n border: 0 solid #ffffff;\r\n}\r\n.selectize-input > input {\r\n display: inline-block !important;\r\n padding: 0 !important;\r\n min-height: 0 !important;\r\n max-height: none !important;\r\n max-width: 100% !important;\r\n margin: 0 2px 0 0 !important;\r\n text-indent: 0 !important;\r\n border: 0 none !important;\r\n background: none !important;\r\n line-height: inherit !important;\r\n -webkit-user-select: auto !important;\r\n -webkit-box-shadow: none !important;\r\n box-shadow: none !important;\r\n}\r\n.selectize-input > input::-ms-clear {\r\n display: none;\r\n}\r\n.selectize-input > input:focus {\r\n outline: none !important;\r\n}\r\n.selectize-input::after {\r\n content: ' ';\r\n display: block;\r\n clear: left;\r\n}\r\n.selectize-input.dropdown-active::before {\r\n content: ' ';\r\n display: block;\r\n position: absolute;\r\n background: #f0f0f0;\r\n height: 1px;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n}\r\n.selectize-dropdown {\r\n position: absolute;\r\n z-index: 10;\r\n border: 1px solid #d0d0d0;\r\n background: #ffffff;\r\n margin: -1px 0 0 0;\r\n border-top: 0 none;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\r\n -webkit-border-radius: 0 0 3px 3px;\r\n -moz-border-radius: 0 0 3px 3px;\r\n border-radius: 0 0 3px 3px;\r\n}\r\n.selectize-dropdown [data-selectable] {\r\n cursor: pointer;\r\n overflow: hidden;\r\n}\r\n.selectize-dropdown [data-selectable] .highlight {\r\n background: rgba(125, 168, 208, 0.2);\r\n -webkit-border-radius: 1px;\r\n -moz-border-radius: 1px;\r\n border-radius: 1px;\r\n}\r\n.selectize-dropdown [data-selectable],\r\n.selectize-dropdown .optgroup-header {\r\n padding: 5px 8px;\r\n}\r\n.selectize-dropdown .optgroup:first-child .optgroup-header {\r\n border-top: 0 none;\r\n}\r\n.selectize-dropdown .optgroup-header {\r\n color: #303030;\r\n background: #ffffff;\r\n cursor: default;\r\n}\r\n.selectize-dropdown .active {\r\n background-color: #f5fafd;\r\n color: #495c68;\r\n}\r\n.selectize-dropdown .active.create {\r\n color: #495c68;\r\n}\r\n.selectize-dropdown .create {\r\n color: rgba(48, 48, 48, 0.5);\r\n}\r\n.selectize-dropdown-content {\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n max-height: 200px;\r\n -webkit-overflow-scrolling: touch;\r\n}\r\n.selectize-control.single .selectize-input,\r\n.selectize-control.single .selectize-input input {\r\n cursor: pointer;\r\n}\r\n.selectize-control.single .selectize-input.input-active,\r\n.selectize-control.single .selectize-input.input-active input {\r\n cursor: text;\r\n}\r\n.selectize-control.single .selectize-input:after {\r\n content: ' ';\r\n display: block;\r\n position: absolute;\r\n top: 50%;\r\n right: 15px;\r\n margin-top: -3px;\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n border-width: 5px 5px 0 5px;\r\n border-color: #808080 transparent transparent transparent;\r\n}\r\n.selectize-control.single .selectize-input.dropdown-active:after {\r\n margin-top: -4px;\r\n border-width: 0 5px 5px 5px;\r\n border-color: transparent transparent #808080 transparent;\r\n}\r\n.selectize-control.rtl.single .selectize-input:after {\r\n left: 15px;\r\n right: auto;\r\n}\r\n.selectize-control.rtl .selectize-input > input {\r\n margin: 0 4px 0 -2px !important;\r\n}\r\n.selectize-control .selectize-input.disabled {\r\n opacity: 0.5;\r\n background-color: #fafafa;\r\n}\r\n\n\n.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {\n visibility: visible !important;\n background: #f2f2f2 !important;\n background: rgba(0, 0, 0, 0.06) !important;\n border: 0 none !important;\n -webkit-box-shadow: inset 0 0 12px 4px #ffffff;\n box-shadow: inset 0 0 12px 4px #ffffff;\n}\n.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {\n content: '!';\n visibility: hidden;\n}\n.selectize-control.plugin-drag_drop .ui-sortable-helper {\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n}\n.selectize-dropdown-header {\n position: relative;\n padding: 5px 8px;\n border-bottom: 1px solid #d0d0d0;\n background: #f8f8f8;\n -webkit-border-radius: 3px 3px 0 0;\n -moz-border-radius: 3px 3px 0 0;\n border-radius: 3px 3px 0 0;\n}\n.selectize-dropdown-header-close {\n position: absolute;\n right: 8px;\n top: 50%;\n color: #303030;\n opacity: 0.4;\n margin-top: -12px;\n line-height: 20px;\n font-size: 20px !important;\n}\n.selectize-dropdown-header-close:hover {\n color: #000000;\n}\n.selectize-dropdown.plugin-optgroup_columns .optgroup {\n border-right: 1px solid #f2f2f2;\n border-top: 0 none;\n float: left;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {\n border-right: 0 none;\n}\n.selectize-dropdown.plugin-optgroup_columns .optgroup:before {\n display: none;\n}\n.selectize-dropdown.plugin-optgroup_columns .optgroup-header {\n border-top: 0 none;\n}\n.selectize-control.plugin-remove_button [data-value] {\n position: relative;\n padding-right: 24px !important;\n}\n.selectize-control.plugin-remove_button [data-value] .remove {\n z-index: 1;\n \n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 17px;\n text-align: center;\n font-weight: bold;\n font-size: 12px;\n color: inherit;\n text-decoration: none;\n vertical-align: middle;\n display: inline-block;\n padding: 2px 0 0 0;\n border-left: 1px solid #0073bb;\n -webkit-border-radius: 0 2px 2px 0;\n -moz-border-radius: 0 2px 2px 0;\n border-radius: 0 2px 2px 0;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.selectize-control.plugin-remove_button [data-value] .remove:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n.selectize-control.plugin-remove_button [data-value].active .remove {\n border-left-color: #00578d;\n}\n.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {\n background: none;\n}\n.selectize-control.plugin-remove_button .disabled [data-value] .remove {\n border-left-color: #aaaaaa;\n}\n.selectize-control.plugin-remove_button .remove-single {\n position: absolute;\n right: 28px;\n top: 6px;\n font-size: 23px;\n}\n.selectize-control {\n position: relative;\n}\n.selectize-dropdown,\n.selectize-input,\n.selectize-input input {\n color: #303030;\n font-family: inherit;\n font-size: 13px;\n line-height: 18px;\n -webkit-font-smoothing: inherit;\n}\n.selectize-input,\n.selectize-control.single .selectize-input.input-active {\n background: #ffffff;\n cursor: text;\n display: inline-block;\n}\n.selectize-input {\n border: 1px solid #d0d0d0;\n padding: 8px 8px;\n display: inline-block;\n width: 100%;\n overflow: hidden;\n position: relative;\n z-index: 1;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);\n -webkit-border-radius: 3px;\n -moz-border-radius: 3px;\n border-radius: 3px;\n}\n.selectize-control.multi .selectize-input.has-items {\n padding: 5px 8px 2px;\n}\n.selectize-input.full {\n background-color: #ffffff;\n}\n.selectize-input.disabled,\n.selectize-input.disabled * {\n cursor: default !important;\n}\n.selectize-input.focus {\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);\n}\n.selectize-input.dropdown-active {\n -webkit-border-radius: 3px 3px 0 0;\n -moz-border-radius: 3px 3px 0 0;\n border-radius: 3px 3px 0 0;\n}\n.selectize-input > * {\n vertical-align: baseline;\n display: -moz-inline-stack;\n display: inline-block;\n zoom: 1;\n *display: inline;\n}\n.selectize-control.multi .selectize-input > div {\n cursor: pointer;\n margin: 0 3px 3px 0;\n padding: 2px 6px;\n background: #1da7ee;\n color: #ffffff;\n border: 1px solid #0073bb;\n}\n.selectize-control.multi .selectize-input > div.active {\n background: #92c836;\n color: #ffffff;\n border: 1px solid #00578d;\n}\n.selectize-control.multi .selectize-input.disabled > div,\n.selectize-control.multi .selectize-input.disabled > div.active {\n color: #ffffff;\n background: #d2d2d2;\n border: 1px solid #aaaaaa;\n}\n.selectize-input > input {\n display: inline-block !important;\n padding: 0 !important;\n min-height: 0 !important;\n max-height: none !important;\n max-width: 100% !important;\n margin: 0 1px !important;\n text-indent: 0 !important;\n border: 0 none !important;\n background: none !important;\n line-height: inherit !important;\n -webkit-user-select: auto !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n}\n.selectize-input > input::-ms-clear {\n display: none;\n}\n.selectize-input > input:focus {\n outline: none !important;\n}\n.selectize-input::after {\n content: ' ';\n display: block;\n clear: left;\n}\n.selectize-input.dropdown-active::before {\n content: ' ';\n display: block;\n position: absolute;\n background: #f0f0f0;\n height: 1px;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.selectize-dropdown {\n position: absolute;\n z-index: 10;\n border: 1px solid #d0d0d0;\n background: #ffffff;\n margin: -1px 0 0 0;\n border-top: 0 none;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n -webkit-border-radius: 0 0 3px 3px;\n -moz-border-radius: 0 0 3px 3px;\n border-radius: 0 0 3px 3px;\n}\n.selectize-dropdown [data-selectable] {\n cursor: pointer;\n overflow: hidden;\n}\n.selectize-dropdown [data-selectable] .highlight {\n background: rgba(125, 168, 208, 0.2);\n -webkit-border-radius: 1px;\n -moz-border-radius: 1px;\n border-radius: 1px;\n}\n.selectize-dropdown [data-selectable],\n.selectize-dropdown .optgroup-header {\n padding: 5px 8px;\n}\n.selectize-dropdown .optgroup:first-child .optgroup-header {\n border-top: 0 none;\n}\n.selectize-dropdown .optgroup-header {\n color: #303030;\n background: #ffffff;\n cursor: default;\n}\n.selectize-dropdown .active {\n background-color: #f5fafd;\n color: #495c68;\n}\n.selectize-dropdown .active.create {\n color: #495c68;\n}\n.selectize-dropdown .create {\n color: rgba(48, 48, 48, 0.5);\n}\n.selectize-dropdown-content {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 200px;\n -webkit-overflow-scrolling: touch;\n}\n.selectize-control.single .selectize-input,\n.selectize-control.single .selectize-input input {\n cursor: pointer;\n}\n.selectize-control.single .selectize-input.input-active,\n.selectize-control.single .selectize-input.input-active input {\n cursor: text;\n}\n.selectize-control.single .selectize-input:after {\n content: ' ';\n display: block;\n position: absolute;\n top: 50%;\n right: 15px;\n margin-top: -3px;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 5px 0 5px;\n border-color: #808080 transparent transparent transparent;\n}\n.selectize-control.single .selectize-input.dropdown-active:after {\n margin-top: -4px;\n border-width: 0 5px 5px 5px;\n border-color: transparent transparent #808080 transparent;\n}\n.selectize-control.rtl.single .selectize-input:after {\n left: 15px;\n right: auto;\n}\n.selectize-control.rtl .selectize-input > input {\n margin: 0 4px 0 -2px !important;\n}\n.selectize-control .selectize-input.disabled {\n opacity: 0.5;\n background-color: #fafafa;\n}\n.selectize-control.multi .selectize-input.has-items {\n padding-left: 5px;\n padding-right: 5px;\n}\n.selectize-control.multi .selectize-input.disabled [data-value] {\n color: #999;\n text-shadow: none;\n background: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.selectize-control.multi .selectize-input.disabled [data-value],\n.selectize-control.multi .selectize-input.disabled [data-value] .remove {\n border-color: #e6e6e6;\n}\n.selectize-control.multi .selectize-input.disabled [data-value] .remove {\n background: none;\n}\n.selectize-control.multi .selectize-input [data-value] {\n text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);\n -webkit-border-radius: 3px;\n -moz-border-radius: 3px;\n border-radius: 3px;\n background-color: #1b9dec;\n background-image: -moz-linear-gradient(top, #1da7ee, #178ee9);\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1da7ee), to(#178ee9));\n background-image: -webkit-linear-gradient(top, #1da7ee, #178ee9);\n background-image: -o-linear-gradient(top, #1da7ee, #178ee9);\n background-image: linear-gradient(to bottom, #1da7ee, #178ee9);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1da7ee', endColorstr='#ff178ee9', GradientType=0);\n -webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03);\n box-shadow: 0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03);\n}\n.selectize-control.multi .selectize-input [data-value].active {\n background-color: #0085d4;\n background-image: -moz-linear-gradient(top, #008fd8, #0075cf);\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#008fd8), to(#0075cf));\n background-image: -webkit-linear-gradient(top, #008fd8, #0075cf);\n background-image: -o-linear-gradient(top, #008fd8, #0075cf);\n background-image: linear-gradient(to bottom, #008fd8, #0075cf);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff008fd8', endColorstr='#ff0075cf', GradientType=0);\n}\n.selectize-control.single .selectize-input {\n -webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.8);\n box-shadow: 0 1px 0 rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.8);\n background-color: #f9f9f9;\n background-image: -moz-linear-gradient(top, #fefefe, #f2f2f2);\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#f2f2f2));\n background-image: -webkit-linear-gradient(top, #fefefe, #f2f2f2);\n background-image: -o-linear-gradient(top, #fefefe, #f2f2f2);\n background-image: linear-gradient(to bottom, #fefefe, #f2f2f2);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffefefe', endColorstr='#fff2f2f2', GradientType=0);\n}\n.selectize-control.single .selectize-input,\n.selectize-dropdown.single {\n border-color: #b8b8b8;\n}\n.selectize-dropdown .optgroup-header {\n padding-top: 7px;\n font-weight: bold;\n font-size: 0.85em;\n}\n.selectize-dropdown .optgroup {\n border-top: 1px solid #f0f0f0;\n}\n.selectize-dropdown .optgroup:first-child {\n border-top: 0 none;\n}\n\n\r\n\r\n\r\n.toast-center-center {\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n}\r\n.toast-top-center {\r\n top: 0;\r\n right: 0;\r\n width: 100%;\r\n}\r\n.toast-bottom-center {\r\n bottom: 0;\r\n right: 0;\r\n width: 100%;\r\n}\r\n.toast-top-full-width {\r\n top: 0;\r\n right: 0;\r\n width: 100%;\r\n}\r\n.toast-bottom-full-width {\r\n bottom: 0;\r\n right: 0;\r\n width: 100%;\r\n}\r\n.toast-top-left {\r\n top: 12px;\r\n left: 12px;\r\n}\r\n.toast-top-right {\r\n top: 12px;\r\n right: 12px;\r\n}\r\n.toast-bottom-right {\r\n right: 12px;\r\n bottom: 12px;\r\n}\r\n.toast-bottom-left {\r\n bottom: 12px;\r\n left: 12px;\r\n}\r\n\r\n\r\n.toast-title {\r\n font-weight: bold;\r\n}\r\n.toast-message {\r\n word-wrap: break-word;\r\n}\r\n.toast-message a,\r\n.toast-message label {\r\n color: #FFFFFF;\r\n}\r\n.toast-message a:hover {\r\n color: #CCCCCC;\r\n text-decoration: none;\r\n}\r\n.toast-close-button {\r\n position: relative;\r\n right: -0.3em;\r\n top: -0.3em;\r\n float: right;\r\n font-size: 20px;\r\n font-weight: bold;\r\n color: #FFFFFF;\r\n text-shadow: 0 1px 0 #ffffff;\r\n \r\n}\r\n.toast-close-button:hover,\r\n.toast-close-button:focus {\r\n color: #000000;\r\n text-decoration: none;\r\n cursor: pointer;\r\n opacity: 0.4;\r\n}\r\n\r\nbutton.toast-close-button {\r\n padding: 0;\r\n cursor: pointer;\r\n background: transparent;\r\n border: 0;\r\n}\r\n.toast-container {\r\n pointer-events: none;\r\n position: fixed;\r\n z-index: 999999;\r\n}\r\n.toast-container * {\r\n box-sizing: border-box;\r\n}\r\n.toast-container .ngx-toastr {\r\n position: relative;\r\n overflow: hidden;\r\n margin: 0 0 6px;\r\n padding: 15px 15px 15px 50px;\r\n width: 300px;\r\n border-radius: 3px 3px 3px 3px;\r\n background-position: 15px center;\r\n background-repeat: no-repeat;\r\n background-size: 24px;\r\n box-shadow: 0 0 12px #999999;\r\n color: #FFFFFF;\r\n}\r\n.toast-container .ngx-toastr:hover {\r\n box-shadow: 0 0 12px #000000;\r\n opacity: 1;\r\n cursor: pointer;\r\n}\r\n\r\n.toast-info {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E\");\r\n}\r\n\r\n.toast-error {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E\");\r\n}\r\n\r\n.toast-success {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E\");\r\n}\r\n\r\n.toast-warning {\r\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E\");\r\n}\r\n.toast-container.toast-top-center .ngx-toastr,\r\n.toast-container.toast-bottom-center .ngx-toastr {\r\n width: 300px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n}\r\n.toast-container.toast-top-full-width .ngx-toastr,\r\n.toast-container.toast-bottom-full-width .ngx-toastr {\r\n width: 96%;\r\n margin-left: auto;\r\n margin-right: auto;\r\n}\r\n.ngx-toastr {\r\n background-color: #030303;\r\n pointer-events: auto;\r\n}\r\n.toast-success {\r\n background-color: #51A351;\r\n}\r\n.toast-error {\r\n background-color: #BD362F;\r\n}\r\n.toast-info {\r\n background-color: #2F96B4;\r\n}\r\n.toast-warning {\r\n background-color: #F89406;\r\n}\r\n.toast-progress {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n height: 4px;\r\n background-color: #000000;\r\n opacity: 0.4;\r\n}\r\n\r\n@media all and (max-width: 240px) {\r\n .toast-container .ngx-toastr.div {\r\n padding: 8px 8px 8px 50px;\r\n width: 11em;\r\n }\r\n .toast-container .toast-close-button {\r\n right: -0.2em;\r\n top: -0.2em;\r\n }\r\n}\r\n@media all and (min-width: 241px) and (max-width: 480px) {\r\n .toast-container .ngx-toastr.div {\r\n padding: 8px 8px 8px 50px;\r\n width: 18em;\r\n }\r\n .toast-container .toast-close-button {\r\n right: -0.2em;\r\n top: -0.2em;\r\n }\r\n}\r\n@media all and (min-width: 481px) and (max-width: 768px) {\r\n .toast-container .ngx-toastr.div {\r\n padding: 15px 15px 15px 50px;\r\n width: 25em;\r\n }\r\n}\r\n\n\n.bootstrap-datetimepicker-widget {\n list-style: none;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu {\n display: block;\n margin: 2px 0;\n padding: 4px;\n width: 19em;\n}\n@media (min-width: 768px) {\n .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n width: 38em;\n }\n}\n@media (min-width: 992px) {\n .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n width: 38em;\n }\n}\n@media (min-width: 1200px) {\n .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n width: 38em;\n }\n}\n.bootstrap-datetimepicker-widget.dropdown-menu:before,\n.bootstrap-datetimepicker-widget.dropdown-menu:after {\n content: '';\n display: inline-block;\n position: absolute;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-bottom: 7px solid #ccc;\n border-bottom-color: rgba(0, 0, 0, 0.2);\n top: -7px;\n left: 7px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid white;\n top: -6px;\n left: 8px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.top:before {\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-top: 7px solid #ccc;\n border-top-color: rgba(0, 0, 0, 0.2);\n bottom: -7px;\n left: 6px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.top:after {\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid white;\n bottom: -6px;\n left: 7px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {\n left: auto;\n right: 6px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {\n left: auto;\n right: 7px;\n}\n.bootstrap-datetimepicker-widget .list-unstyled {\n margin: 0;\n}\n.bootstrap-datetimepicker-widget a[data-action] {\n padding: 6px 0;\n}\n.bootstrap-datetimepicker-widget a[data-action]:active {\n box-shadow: none;\n}\n.bootstrap-datetimepicker-widget .timepicker-hour,\n.bootstrap-datetimepicker-widget .timepicker-minute,\n.bootstrap-datetimepicker-widget .timepicker-second {\n width: 54px;\n font-weight: bold;\n font-size: 1.2em;\n margin: 0;\n}\n.bootstrap-datetimepicker-widget button[data-action] {\n padding: 6px;\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementHours\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Increment Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementMinutes\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Increment Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementHours\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Decrement Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementMinutes\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Decrement Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"showHours\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Show Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"showMinutes\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Show Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"togglePeriod\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Toggle AM/PM\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"clear\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Clear the picker\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"today\"]::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Set the date to today\";\n}\n.bootstrap-datetimepicker-widget .picker-switch {\n text-align: center;\n}\n.bootstrap-datetimepicker-widget .picker-switch::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Toggle Date and Time Screens\";\n}\n.bootstrap-datetimepicker-widget .picker-switch td {\n padding: 0;\n margin: 0;\n height: auto;\n width: auto;\n line-height: inherit;\n}\n.bootstrap-datetimepicker-widget .picker-switch td span {\n line-height: 2.5;\n height: 2.5em;\n width: 100%;\n}\n.bootstrap-datetimepicker-widget table {\n width: 100%;\n margin: 0;\n}\n.bootstrap-datetimepicker-widget table td,\n.bootstrap-datetimepicker-widget table th {\n text-align: center;\n border-radius: 4px;\n}\n.bootstrap-datetimepicker-widget table th {\n height: 20px;\n line-height: 20px;\n width: 20px;\n}\n.bootstrap-datetimepicker-widget table th.picker-switch {\n width: 145px;\n}\n.bootstrap-datetimepicker-widget table th.disabled,\n.bootstrap-datetimepicker-widget table th.disabled:hover {\n background: none;\n color: #777777;\n cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget table th.prev::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Previous Month\";\n}\n.bootstrap-datetimepicker-widget table th.next::after {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n content: \"Next Month\";\n}\n.bootstrap-datetimepicker-widget table thead tr:first-child th {\n cursor: pointer;\n}\n.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {\n background: #eeeeee;\n}\n.bootstrap-datetimepicker-widget table td {\n height: 54px;\n line-height: 54px;\n width: 54px;\n}\n.bootstrap-datetimepicker-widget table td.cw {\n font-size: 0.8em;\n height: 20px;\n line-height: 20px;\n color: #777777;\n}\n.bootstrap-datetimepicker-widget table td.day {\n height: 20px;\n line-height: 20px;\n width: 20px;\n}\n.bootstrap-datetimepicker-widget table td.day:hover,\n.bootstrap-datetimepicker-widget table td.hour:hover,\n.bootstrap-datetimepicker-widget table td.minute:hover,\n.bootstrap-datetimepicker-widget table td.second:hover {\n background: #eeeeee;\n cursor: pointer;\n}\n.bootstrap-datetimepicker-widget table td.old,\n.bootstrap-datetimepicker-widget table td.new {\n color: #777777;\n}\n.bootstrap-datetimepicker-widget table td.today {\n position: relative;\n}\n.bootstrap-datetimepicker-widget table td.today:before {\n content: '';\n display: inline-block;\n border: solid transparent;\n border-width: 0 0 7px 7px;\n border-bottom-color: #337ab7;\n border-top-color: rgba(0, 0, 0, 0.2);\n position: absolute;\n bottom: 4px;\n right: 4px;\n}\n.bootstrap-datetimepicker-widget table td.active,\n.bootstrap-datetimepicker-widget table td.active:hover {\n background-color: #337ab7;\n color: #fff;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.bootstrap-datetimepicker-widget table td.active.today:before {\n border-bottom-color: #fff;\n}\n.bootstrap-datetimepicker-widget table td.disabled,\n.bootstrap-datetimepicker-widget table td.disabled:hover {\n background: none;\n color: #777777;\n cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget table td span {\n display: inline-block;\n width: 54px;\n height: 54px;\n line-height: 54px;\n margin: 2px 1.5px;\n cursor: pointer;\n border-radius: 4px;\n}\n.bootstrap-datetimepicker-widget table td span:hover {\n background: #eeeeee;\n}\n.bootstrap-datetimepicker-widget table td span.active {\n background-color: #337ab7;\n color: #fff;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.bootstrap-datetimepicker-widget table td span.old {\n color: #777777;\n}\n.bootstrap-datetimepicker-widget table td span.disabled,\n.bootstrap-datetimepicker-widget table td span.disabled:hover {\n background: none;\n color: #777777;\n cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget.usetwentyfour td.hour {\n height: 27px;\n line-height: 27px;\n}\n.bootstrap-datetimepicker-widget.wider {\n width: 21em;\n}\n.bootstrap-datetimepicker-widget .datepicker-decades .decade {\n line-height: 1.8em !important;\n}\n.input-group.date .input-group-addon {\n cursor: pointer;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.ag-icon {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.ag-icon-aggregation::before {\n content: var(--ag-icon-font-code-aggregation, \"\\f101\");\n}\n\n.ag-icon-arrows::before {\n content: var(--ag-icon-font-code-arrows, \"\\f102\");\n}\n\n.ag-icon-asc::before {\n content: var(--ag-icon-font-code-asc, \"\\f103\");\n}\n\n.ag-icon-cancel::before {\n content: var(--ag-icon-font-code-cancel, \"\\f104\");\n}\n\n.ag-icon-chart::before {\n content: var(--ag-icon-font-code-chart, \"\\f105\");\n}\n\n.ag-icon-checkbox-checked::before {\n content: var(--ag-icon-font-code-checkbox-checked, \"\\f106\");\n}\n\n.ag-icon-checkbox-indeterminate::before {\n content: var(--ag-icon-font-code-checkbox-indeterminate, \"\\f107\");\n}\n\n.ag-icon-checkbox-unchecked::before {\n content: var(--ag-icon-font-code-checkbox-unchecked, \"\\f108\");\n}\n\n.ag-icon-color-picker::before {\n content: var(--ag-icon-font-code-color-picker, \"\\f109\");\n}\n\n.ag-icon-columns::before {\n content: var(--ag-icon-font-code-columns, \"\\f10a\");\n}\n\n.ag-icon-contracted::before {\n content: var(--ag-icon-font-code-contracted, \"\\f10b\");\n}\n\n.ag-icon-copy::before {\n content: var(--ag-icon-font-code-copy, \"\\f10c\");\n}\n\n.ag-icon-cross::before {\n content: var(--ag-icon-font-code-cross, \"\\f10d\");\n}\n\n.ag-icon-csv::before {\n content: var(--ag-icon-font-code-csv, \"\\f10e\");\n}\n\n.ag-icon-desc::before {\n content: var(--ag-icon-font-code-desc, \"\\f10f\");\n}\n\n.ag-icon-excel::before {\n content: var(--ag-icon-font-code-excel, \"\\f110\");\n}\n\n.ag-icon-expanded::before {\n content: var(--ag-icon-font-code-expanded, \"\\f111\");\n}\n\n.ag-icon-eye-slash::before {\n content: var(--ag-icon-font-code-eye-slash, \"\\f112\");\n}\n\n.ag-icon-eye::before {\n content: var(--ag-icon-font-code-eye, \"\\f113\");\n}\n\n.ag-icon-filter::before {\n content: var(--ag-icon-font-code-filter, \"\\f114\");\n}\n\n.ag-icon-first::before {\n content: var(--ag-icon-font-code-first, \"\\f115\");\n}\n\n.ag-icon-grip::before {\n content: var(--ag-icon-font-code-grip, \"\\f116\");\n}\n\n.ag-icon-group::before {\n content: var(--ag-icon-font-code-group, \"\\f117\");\n}\n\n.ag-icon-last::before {\n content: var(--ag-icon-font-code-last, \"\\f118\");\n}\n\n.ag-icon-left::before {\n content: var(--ag-icon-font-code-left, \"\\f119\");\n}\n\n.ag-icon-linked::before {\n content: var(--ag-icon-font-code-linked, \"\\f11a\");\n}\n\n.ag-icon-loading::before {\n content: var(--ag-icon-font-code-loading, \"\\f11b\");\n}\n\n.ag-icon-maximize::before {\n content: var(--ag-icon-font-code-maximize, \"\\f11c\");\n}\n\n.ag-icon-menu::before {\n content: var(--ag-icon-font-code-menu, \"\\f11d\");\n}\n\n.ag-icon-minimize::before {\n content: var(--ag-icon-font-code-minimize, \"\\f11e\");\n}\n\n.ag-icon-next::before {\n content: var(--ag-icon-font-code-next, \"\\f11f\");\n}\n\n.ag-icon-none::before {\n content: var(--ag-icon-font-code-none, \"\\f120\");\n}\n\n.ag-icon-not-allowed::before {\n content: var(--ag-icon-font-code-not-allowed, \"\\f121\");\n}\n\n.ag-icon-paste::before {\n content: var(--ag-icon-font-code-paste, \"\\f122\");\n}\n\n.ag-icon-pin::before {\n content: var(--ag-icon-font-code-pin, \"\\f123\");\n}\n\n.ag-icon-pivot::before {\n content: var(--ag-icon-font-code-pivot, \"\\f124\");\n}\n\n.ag-icon-previous::before {\n content: var(--ag-icon-font-code-previous, \"\\f125\");\n}\n\n.ag-icon-radio-button-off::before {\n content: var(--ag-icon-font-code-radio-button-off, \"\\f126\");\n}\n\n.ag-icon-radio-button-on::before {\n content: var(--ag-icon-font-code-radio-button-on, \"\\f127\");\n}\n\n.ag-icon-right::before {\n content: var(--ag-icon-font-code-right, \"\\f128\");\n}\n\n.ag-icon-save::before {\n content: var(--ag-icon-font-code-save, \"\\f129\");\n}\n\n.ag-icon-small-down::before {\n content: var(--ag-icon-font-code-small-down, \"\\f12a\");\n}\n\n.ag-icon-small-left::before {\n content: var(--ag-icon-font-code-small-left, \"\\f12b\");\n}\n\n.ag-icon-small-right::before {\n content: var(--ag-icon-font-code-small-right, \"\\f12c\");\n}\n\n.ag-icon-small-up::before {\n content: var(--ag-icon-font-code-small-up, \"\\f12d\");\n}\n\n.ag-icon-tick::before {\n content: var(--ag-icon-font-code-tick, \"\\f12e\");\n}\n\n.ag-icon-tree-closed::before {\n content: var(--ag-icon-font-code-tree-closed, \"\\f12f\");\n}\n\n.ag-icon-tree-indeterminate::before {\n content: var(--ag-icon-font-code-tree-indeterminate, \"\\f130\");\n}\n\n.ag-icon-tree-open::before {\n content: var(--ag-icon-font-code-tree-open, \"\\f131\");\n}\n\n.ag-icon-unlinked::before {\n content: var(--ag-icon-font-code-unlinked, \"\\f132\");\n}\n\n.ag-icon-row-drag::before {\n content: var(--ag-icon-font-code-grip);\n}\n\n.ag-left-arrow::before {\n content: var(--ag-icon-font-code-left);\n}\n\n.ag-right-arrow::before {\n content: var(--ag-icon-font-code-right);\n}\n\n[class*=ag-theme-] {\n --ag-foreground-color: #000;\n --ag-data-color: var(--ag-foreground-color);\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-header-foreground-color: var(--ag-secondary-foreground-color);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.5);\n --ag-background-color: #fff;\n --ag-header-background-color: transparent;\n --ag-tooltip-background-color: transparent;\n --ag-subheader-background-color: transparent;\n --ag-subheader-toolbar-background-color: transparent;\n --ag-control-panel-background-color: transparent;\n --ag-side-button-selected-background-color: var(--ag-control-panel-background-color);\n --ag-selected-row-background-color: #BBB;\n --ag-odd-row-background-color: var(--ag-background-color);\n --ag-modal-overlay-background-color: rgba(255, 255, 255, 0.66);\n --ag-row-hover-color: transparent;\n --ag-column-hover-color: transparent;\n --ag-range-selection-border-color: var(--ag-foreground-color);\n --ag-range-selection-border-style: solid;\n --ag-range-selection-background-color: rgba(0, 0, 0, 0.2);\n --ag-range-selection-background-color-2: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-3: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-4: var(--ag-range-selection-background-color);\n --ag-range-selection-highlight-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-width: 0;\n --ag-selected-tab-underline-transition-speed: 0s;\n --ag-range-selection-chart-category-background-color: rgba(0, 255, 132, 0.1);\n --ag-range-selection-chart-background-color: rgba(0, 88, 255, 0.1);\n --ag-header-cell-hover-background-color: transparent;\n --ag-header-cell-moving-background-color: var(--ag-background-color);\n --ag-value-change-value-highlight-background-color: rgba(22, 160, 133, 0.5);\n --ag-value-change-delta-up-color: #43a047;\n --ag-value-change-delta-down-color: #e53935;\n --ag-chip-background-color: transparent;\n --ag-borders: solid 1px;\n --ag-border-color: rgba(0, 0, 0, 0.25);\n --ag-borders-critical: var(--ag-borders);\n --ag-borders-secondary: var(--ag-borders);\n --ag-secondary-border-color: var(--ag-border-color);\n --ag-row-border-style: solid;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-row-border-width: 1px;\n --ag-cell-horizontal-border: solid transparent;\n --ag-borders-input: var(--ag-borders-secondary);\n --ag-input-border-color: var(--ag-secondary-border-color);\n --ag-borders-input-invalid: solid 2px;\n --ag-input-border-color-invalid: var(--ag-invalid-color);\n --ag-borders-side-button: var(--ag-borders);\n --ag-border-radius: 0px;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-header-column-separator-display: none;\n --ag-header-column-separator-height: 100%;\n --ag-header-column-separator-width: 1px;\n --ag-header-column-separator-color: var(--ag-secondary-border-color);\n --ag-header-column-resize-handle-display: none;\n --ag-header-column-resize-handle-height: 50%;\n --ag-header-column-resize-handle-width: 1px;\n --ag-header-column-resize-handle-color: var(--ag-secondary-border-color);\n --ag-invalid-color: red;\n --ag-input-disabled-border-color: var(--ag-input-border-color);\n --ag-input-disabled-background-color: transparent;\n --ag-checkbox-background-color: transparent;\n --ag-checkbox-border-radius: var(--ag-border-radius);\n --ag-checkbox-checked-color: var(--ag-foreground-color);\n --ag-checkbox-unchecked-color: var(--ag-foreground-color);\n --ag-checkbox-indeterminate-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-border-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-background-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-on-border-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-on-background-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-switch-background-color: var(--ag-background-color);\n --ag-toggle-button-switch-border-color: var(--ag-toggle-button-off-border-color);\n --ag-toggle-button-border-width: 1px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-toggle-button-width: calc(var(--ag-toggle-button-height) * 2);\n --ag-input-focus-box-shadow: none;\n --ag-input-focus-border-color: none;\n --ag-minichart-selected-chart-color: var(--ag-checkbox-checked-color);\n --ag-minichart-selected-page-color: var(--ag-checkbox-checked-color);\n --ag-grid-size: 4px;\n --ag-icon-size: 12px;\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: var(--ag-grid-size);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-cell-widget-spacing: var(--ag-cell-horizontal-padding);\n --ag-row-height: calc(var(--ag-grid-size) * 6 + 1px);\n --ag-header-height: var(--ag-row-height);\n --ag-list-item-height: calc(var(--ag-grid-size) * 5);\n --ag-column-select-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-set-filter-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-row-group-indent-size: calc(var(--ag-cell-widget-spacing) + var(--ag-icon-size));\n --ag-filter-tool-panel-group-indent: 16px;\n --ag-tab-min-width: 220px;\n --ag-menu-min-width: 181px;\n --ag-side-bar-panel-width: 200px;\n --ag-font-family: \"Helvetica Neue\", sans-serif;\n --ag-font-size: 14px;\n --ag-card-radius: var(--ag-border-radius);\n --ag-card-shadow: none;\n --ag-popup-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);\n}\n\n.ag-root-wrapper, .ag-sticky-top, .ag-dnd-ghost {\n background-color: var(--ag-background-color);\n}\n\n[class*=ag-theme-] {\n -webkit-font-smoothing: antialiased;\n font-family: var(--ag-font-family);\n font-size: var(--ag-font-size);\n line-height: normal;\n color: var(--ag-foreground-color);\n}\n\nag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {\n display: block;\n}\n\n.ag-hidden {\n display: none !important;\n}\n\n.ag-invisible {\n visibility: hidden !important;\n}\n\n.ag-no-transition {\n transition: none !important;\n}\n\n.ag-drag-handle {\n cursor: grab;\n}\n\n.ag-column-drop-wrapper {\n display: flex;\n}\n\n.ag-column-drop-horizontal-half-width {\n display: inline-block;\n width: 50% !important;\n}\n\n.ag-unselectable {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-selectable {\n -moz-user-select: text;\n -webkit-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n\n.ag-tab {\n position: relative;\n}\n\n.ag-tab-guard {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n}\n\n.ag-select-agg-func-popup {\n position: absolute;\n}\n\n.ag-input-wrapper, .ag-picker-field-wrapper {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n line-height: normal;\n position: relative;\n}\n\n.ag-shake-left-to-right {\n animation-direction: alternate;\n animation-duration: 0.2s;\n animation-iteration-count: infinite;\n animation-name: ag-shake-left-to-right;\n}\n\n@keyframes ag-shake-left-to-right {\n from {\n padding-left: 6px;\n padding-right: 2px;\n }\n to {\n padding-left: 2px;\n padding-right: 6px;\n }\n}\n.ag-root-wrapper {\n cursor: default;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.ag-root-wrapper.ag-layout-normal {\n height: 100%;\n}\n\n.ag-watermark {\n position: absolute;\n bottom: 20px;\n right: 25px;\n opacity: 0.5;\n transition: opacity 1s ease-out 3s;\n}\n.ag-watermark::before {\n content: \"\";\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDIzNSA0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM1NzIzLDAsMCwwLjYzNTcyMywtNDkyLjkyMSwtMzIzLjYwOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDk5LjQsNTQ5LjRMMTA5OS40LDUzNi45TDEwNzguMSw1MzYuOUwxMDY1LjYsNTQ5LjRMMTA5OS40LDU0OS40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTEyMy40LDUxOC40TDEwOTYuNyw1MTguNEwxMDg0LjEsNTMwLjlMMTEyMy40LDUzMC45TDExMjMuNCw1MTguNFoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNTMuMiw1NjEuOUwxMDU5LjYsNTU1LjVMMTA4MS4yLDU1NS41TDEwODEuMiw1NjhMMTA1My4yLDU2OEwxMDUzLjIsNTYxLjlaIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDU3LjksNTQzLjNMMTA3MS43LDU0My4zTDEwODQuMyw1MzAuOEwxMDU3LjksNTMwLjhMMTA1Ny45LDU0My4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTA0Mi44LDU2MS45TDEwNTMuMiw1NjEuOUwxMDY1LjYsNTQ5LjRMMTA0Mi44LDU0OS40TDEwNDIuOCw1NjEuOVoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOTYuNyw1MTguNEwxMDkwLjMsNTI0LjhMMTA0OS41LDUyNC44TDEwNDkuNSw1MTIuM0wxMDk2LjcsNTEyLjNMMTA5Ni43LDUxOC40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNODI4LjYsNTU5LjdMODA5LDU1OS43TDgwNS42LDU2OC4xTDc5Nyw1NjguMUw4MTUuMSw1MjUuN0w4MjIuNiw1MjUuN0w4NDAuNyw1NjguMUw4MzIsNTY4LjFMODI4LjYsNTU5LjdaTTgyNS45LDU1M0w4MTguOCw1MzUuN0w4MTEuNyw1NTNMODI1LjksNTUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTYwLjEsNTQxLjNDOTYyLjYsNTM3LjYgOTY4LjksNTM3LjIgOTcxLjUsNTM3LjJMOTcxLjUsNTQ0LjRDOTY4LjMsNTQ0LjQgOTY1LjEsNTQ0LjUgOTYzLjIsNTQ1LjlDOTYxLjMsNTQ3LjMgOTYwLjMsNTQ5LjIgOTYwLjMsNTUxLjVMOTYwLjMsNTY4LjFMOTUyLjUsNTY4LjFMOTUyLjUsNTM3LjJMOTYwLDUzNy4yTDk2MC4xLDU0MS4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTM3LjIiIHdpZHRoPSI3LjgiIGhlaWdodD0iMzAuOSIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTIzLjQiIHdpZHRoPSI3LjgiIGhlaWdodD0iOS4yIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDIyLjMsNTIzLjRMMTAyMi4zLDU2OC4xTDEwMTQuOCw1NjguMUwxMDE0LjYsNTYzLjRDMTAxMy41LDU2NSAxMDEyLjEsNTY2LjMgMTAxMC40LDU2Ny4zQzEwMDguNyw1NjguMiAxMDA2LjYsNTY4LjcgMTAwNC4yLDU2OC43QzEwMDIuMSw1NjguNyAxMDAwLjEsNTY4LjMgOTk4LjQsNTY3LjZDOTk2LjYsNTY2LjggOTk1LDU2NS44IDk5My43LDU2NC40Qzk5Mi40LDU2MyA5OTEuMyw1NjEuMyA5OTAuNiw1NTkuNEM5ODkuOCw1NTcuNSA5ODkuNSw1NTUuMyA5ODkuNSw1NTIuOUM5ODkuNSw1NTAuNSA5ODkuOSw1NDguMyA5OTAuNiw1NDYuM0M5OTEuNCw1NDQuMyA5OTIuNCw1NDIuNiA5OTMuNyw1NDEuMkM5OTUsNTM5LjggOTk2LjYsNTM4LjcgOTk4LjQsNTM3LjlDMTAwMC4yLDUzNy4xIDEwMDIuMSw1MzYuNyAxMDA0LjIsNTM2LjdDMTAwNi42LDUzNi43IDEwMDguNiw1MzcuMSAxMDEwLjMsNTM4QzEwMTIsNTM4LjkgMTAxMy40LDU0MC4xIDEwMTQuNSw1NDEuOEwxMDE0LjUsNTIzLjVMMTAyMi4zLDUyMy41TDEwMjIuMyw1MjMuNFpNMTAwNS45LDU2MkMxMDA4LjUsNTYyIDEwMTAuNSw1NjEuMSAxMDEyLjEsNTU5LjRDMTAxMy43LDU1Ny43IDEwMTQuNSw1NTUuNCAxMDE0LjUsNTUyLjZDMTAxNC41LDU0OS44IDEwMTMuNyw1NDcuNiAxMDEyLjEsNTQ1LjhDMTAxMC41LDU0NC4xIDEwMDguNSw1NDMuMiAxMDA1LjksNTQzLjJDMTAwMy40LDU0My4yIDEwMDEuMyw1NDQuMSA5OTkuOCw1NDUuOEM5OTguMiw1NDcuNSA5OTcuNCw1NDkuOCA5OTcuNCw1NTIuNkM5OTcuNCw1NTUuNCA5OTguMiw1NTcuNiA5OTkuOCw1NTkuM0MxMDAxLjQsNTYxLjEgMTAwMy40LDU2MiAxMDA1LjksNTYyIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik04ODUuOCw1NDQuMkw4NjYuNSw1NDQuMkw4NjYuNSw1NTAuOUw4NzcuNSw1NTAuOUM4NzcuMiw1NTQuMyA4NzUuOSw1NTYuOSA4NzMuNyw1NTlDODcxLjUsNTYxIDg2OC43LDU2MiA4NjUuMSw1NjJDODYzLjEsNTYyIDg2MS4yLDU2MS42IDg1OS42LDU2MC45Qzg1Ny45LDU2MC4yIDg1Ni41LDU1OS4yIDg1NS4zLDU1Ny44Qzg1NC4xLDU1Ni41IDg1My4yLDU1NC45IDg1Mi41LDU1M0M4NTEuOCw1NTEuMSA4NTEuNSw1NDkuMSA4NTEuNSw1NDYuOEM4NTEuNSw1NDQuNSA4NTEuOCw1NDIuNSA4NTIuNSw1NDAuNkM4NTMuMSw1MzguNyA4NTQuMSw1MzcuMiA4NTUuMyw1MzUuOEM4NTYuNSw1MzQuNSA4NTcuOSw1MzMuNSA4NTkuNiw1MzIuN0M4NjEuMyw1MzIgODYzLjEsNTMxLjYgODY1LjIsNTMxLjZDODY5LjQsNTMxLjYgODcyLjYsNTMyLjYgODc0LjgsNTM0LjZMODgwLDUyOS40Qzg3Ni4xLDUyNi40IDg3MS4xLDUyNC44IDg2NS4yLDUyNC44Qzg2MS45LDUyNC44IDg1OC45LDUyNS4zIDg1Ni4yLDUyNi40Qzg1My41LDUyNy41IDg1MS4yLDUyOC45IDg0OS4zLDUzMC44Qzg0Ny40LDUzMi43IDg0NS45LDUzNSA4NDQuOSw1MzcuN0M4NDMuOSw1NDAuNCA4NDMuNCw1NDMuNCA4NDMuNCw1NDYuNkM4NDMuNCw1NDkuOCA4NDMuOSw1NTIuOCA4NDUsNTU1LjVDODQ2LjEsNTU4LjIgODQ3LjUsNTYwLjUgODQ5LjQsNTYyLjRDODUxLjMsNTY0LjMgODUzLjYsNTY1LjggODU2LjMsNTY2LjhDODU5LDU2Ny45IDg2Miw1NjguNCA4NjUuMiw1NjguNEM4NjguNCw1NjguNCA4NzEuMyw1NjcuOSA4NzMuOSw1NjYuOEM4NzYuNSw1NjUuNyA4NzguNyw1NjQuMyA4ODAuNSw1NjIuNEM4ODIuMyw1NjAuNSA4ODMuNyw1NTguMiA4ODQuNyw1NTUuNUM4ODUuNyw1NTIuOCA4ODYuMiw1NDkuOCA4ODYuMiw1NDYuNkw4ODYuMiw1NDUuM0M4ODUuOSw1NDUuMSA4ODUuOCw1NDQuNiA4ODUuOCw1NDQuMiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTQ2LjgsNTQ0LjJMOTI3LjUsNTQ0LjJMOTI3LjUsNTUwLjlMOTM4LjUsNTUwLjlDOTM4LjIsNTU0LjMgOTM2LjksNTU2LjkgOTM0LjcsNTU5QzkzMi41LDU2MSA5MjkuNyw1NjIgOTI2LjEsNTYyQzkyNC4xLDU2MiA5MjIuMiw1NjEuNiA5MjAuNiw1NjAuOUM5MTguOSw1NjAuMiA5MTcuNSw1NTkuMiA5MTYuMyw1NTcuOEM5MTUuMSw1NTYuNSA5MTQuMiw1NTQuOSA5MTMuNSw1NTNDOTEyLjgsNTUxLjEgOTEyLjUsNTQ5LjEgOTEyLjUsNTQ2LjhDOTEyLjUsNTQ0LjUgOTEyLjgsNTQyLjUgOTEzLjUsNTQwLjZDOTE0LjEsNTM4LjcgOTE1LjEsNTM3LjIgOTE2LjMsNTM1LjhDOTE3LjUsNTM0LjUgOTE4LjksNTMzLjUgOTIwLjYsNTMyLjdDOTIyLjMsNTMyIDkyNC4xLDUzMS42IDkyNi4yLDUzMS42QzkzMC40LDUzMS42IDkzMy42LDUzMi42IDkzNS44LDUzNC42TDk0MSw1MjkuNEM5MzcuMSw1MjYuNCA5MzIuMSw1MjQuOCA5MjYuMiw1MjQuOEM5MjIuOSw1MjQuOCA5MTkuOSw1MjUuMyA5MTcuMiw1MjYuNEM5MTQuNSw1MjcuNSA5MTIuMiw1MjguOSA5MTAuMyw1MzAuOEM5MDguNCw1MzIuNyA5MDYuOSw1MzUgOTA1LjksNTM3LjdDOTA0LjksNTQwLjQgOTA0LjQsNTQzLjQgOTA0LjQsNTQ2LjZDOTA0LjQsNTQ5LjggOTA0LjksNTUyLjggOTA2LDU1NS41QzkwNy4xLDU1OC4yIDkwOC41LDU2MC41IDkxMC40LDU2Mi40QzkxMi4zLDU2NC4zIDkxNC42LDU2NS44IDkxNy4zLDU2Ni44QzkyMCw1NjcuOSA5MjMsNTY4LjQgOTI2LjIsNTY4LjRDOTI5LjQsNTY4LjQgOTMyLjMsNTY3LjkgOTM0LjksNTY2LjhDOTM3LjUsNTY1LjcgOTM5LjcsNTY0LjMgOTQxLjUsNTYyLjRDOTQzLjMsNTYwLjUgOTQ0LjcsNTU4LjIgOTQ1LjcsNTU1LjVDOTQ2LjcsNTUyLjggOTQ3LjIsNTQ5LjggOTQ3LjIsNTQ2LjZMOTQ3LjIsNTQ1LjNDOTQ2LjksNTQ1LjEgOTQ2LjgsNTQ0LjYgOTQ2LjgsNTQ0LjIiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);\n background-repeat: no-repeat;\n background-size: 170px 40px;\n display: block;\n height: 40px;\n width: 170px;\n opacity: 0.5;\n}\n\n.ag-watermark-text {\n opacity: 0.5;\n font-weight: bold;\n font-family: Impact, sans-serif;\n font-size: 19px;\n padding-left: 0.7rem;\n}\n\n.ag-root-wrapper-body {\n display: flex;\n flex-direction: row;\n}\n.ag-root-wrapper-body.ag-layout-normal {\n flex: 1 1 auto;\n height: 0;\n min-height: 0;\n}\n\n.ag-root {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height {\n overflow: hidden;\n flex: 1 1 auto;\n width: 0;\n}\n.ag-root.ag-layout-normal {\n height: 100%;\n}\n\n.ag-header-viewport,\n.ag-floating-top-viewport,\n.ag-body-viewport,\n.ag-center-cols-viewport,\n.ag-floating-bottom-viewport,\n.ag-body-horizontal-scroll-viewport,\n.ag-body-vertical-scroll-viewport,\n.ag-virtual-list-viewport,\n.ag-sticky-top-viewport {\n position: relative;\n height: 100%;\n min-width: 0px;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-body-viewport {\n display: flex;\n}\n.ag-body-viewport.ag-layout-normal {\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.ag-center-cols-viewport {\n width: 100%;\n overflow-x: auto;\n}\n\n.ag-body-horizontal-scroll-viewport {\n overflow-x: scroll;\n}\n\n.ag-body-vertical-scroll-viewport {\n overflow-y: scroll;\n}\n\n.ag-virtual-list-viewport {\n overflow: auto;\n width: 100%;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-body-container,\n.ag-pinned-right-cols-container,\n.ag-center-cols-container,\n.ag-pinned-left-cols-container,\n.ag-floating-bottom-container,\n.ag-body-horizontal-scroll-container,\n.ag-body-vertical-scroll-container,\n.ag-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-virtual-list-container,\n.ag-sticky-top-container {\n position: relative;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-floating-bottom-container,\n.ag-sticky-top-container {\n height: 100%;\n white-space: nowrap;\n}\n\n.ag-center-cols-container {\n display: block;\n}\n\n.ag-pinned-right-cols-container {\n display: block;\n}\n\n.ag-body-horizontal-scroll-container {\n height: 100%;\n}\n\n.ag-body-vertical-scroll-container {\n width: 100%;\n}\n\n.ag-full-width-container,\n.ag-floating-top-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-sticky-top-full-width-container {\n position: absolute;\n top: 0px;\n left: 0px;\n pointer-events: none;\n}\n\n.ag-full-width-container {\n width: 100%;\n}\n\n.ag-floating-bottom-full-width-container, .ag-floating-top-full-width-container {\n display: inline-block;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n\n.ag-virtual-list-container {\n overflow: hidden;\n}\n\n.ag-center-cols-clipper {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n min-height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n flex-direction: row !important;\n min-height: 0;\n}\n\n.ag-body-clipper {\n overflow: hidden;\n min-width: 0px;\n flex: 1 1 auto;\n height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body-horizontal-scroll,\n.ag-body-vertical-scroll {\n min-height: 0;\n min-width: 0;\n display: flex;\n position: relative;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible,\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n position: absolute;\n bottom: 0;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar {\n opacity: 0;\n transition: opacity 400ms;\n visibility: hidden;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling, .ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active {\n visibility: visible;\n opacity: 1;\n}\n\n.ag-body-horizontal-scroll {\n width: 100%;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible {\n left: 0;\n right: 0;\n}\n\n.ag-body-vertical-scroll {\n height: 100%;\n}\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n top: 0;\n z-index: 10;\n}\n.ag-ltr .ag-body-vertical-scroll.ag-scrollbar-invisible {\n right: 0;\n}\n.ag-rtl .ag-body-vertical-scroll.ag-scrollbar-invisible {\n left: 0;\n}\n\n.ag-force-vertical-scroll {\n overflow-y: scroll !important;\n}\n\n.ag-horizontal-left-spacer, .ag-horizontal-right-spacer {\n height: 100%;\n min-width: 0;\n overflow-x: scroll;\n}\n.ag-horizontal-left-spacer.ag-scroller-corner, .ag-horizontal-right-spacer.ag-scroller-corner {\n overflow-x: hidden;\n}\n\n.ag-header, .ag-pinned-left-header, .ag-pinned-right-header {\n display: inline-block;\n overflow: hidden;\n position: relative;\n}\n\n.ag-header-cell-sortable {\n cursor: pointer;\n}\n\n.ag-header {\n display: flex;\n width: 100%;\n white-space: nowrap;\n}\n\n.ag-pinned-left-header {\n height: 100%;\n}\n\n.ag-pinned-right-header {\n height: 100%;\n}\n\n.ag-header-row {\n position: absolute;\n overflow: hidden;\n}\n\n.ag-header-cell {\n display: inline-flex;\n align-items: center;\n position: absolute;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell.ag-header-active .ag-header-cell-menu-button {\n opacity: 1;\n}\n\n.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {\n transition: opacity 0.2s;\n opacity: 0;\n}\n\n.ag-header-group-cell-label, .ag-header-cell-label {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n align-items: center;\n text-overflow: ellipsis;\n align-self: stretch;\n}\n\n.ag-header-cell-text {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-header-cell:not(.ag-header-cell-auto-height) .ag-header-cell-comp-wrapper {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-comp-wrapper {\n width: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell-wrap-text .ag-header-cell-comp-wrapper {\n white-space: normal;\n}\n\n.ag-right-aligned-header .ag-header-cell-label {\n flex-direction: row-reverse;\n}\n\n.ag-header-group-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-header-cell-resize {\n position: absolute;\n z-index: 2;\n height: 100%;\n width: 8px;\n top: 0;\n cursor: ew-resize;\n}\n.ag-ltr .ag-header-cell-resize {\n right: -4px;\n}\n.ag-rtl .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-pinned-left-header .ag-header-cell-resize {\n right: -4px;\n}\n\n.ag-pinned-right-header .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-header-select-all {\n display: flex;\n}\n\n.ag-column-moving .ag-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-group-cell {\n transition: left 0.2s, width 0.2s;\n}\n\n.ag-column-panel {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-column-select {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 3 1 0px;\n}\n\n.ag-column-select-header {\n position: relative;\n display: flex;\n flex: none;\n}\n\n.ag-column-select-header-icon {\n position: relative;\n}\n\n.ag-column-select-header-filter-wrapper {\n flex: 1 1 auto;\n}\n\n.ag-column-select-header-filter {\n width: 100%;\n}\n\n.ag-column-select-list {\n flex: 1 1 0px;\n overflow: hidden;\n}\n\n.ag-column-drop {\n position: relative;\n display: inline-flex;\n align-items: center;\n overflow: auto;\n width: 100%;\n}\n\n.ag-column-drop-list {\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell-text {\n overflow: hidden;\n flex: 1 1 auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-column-drop-vertical {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n align-items: stretch;\n flex: 1 1 0px;\n}\n\n.ag-column-drop-vertical-title-bar {\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-column-drop-vertical-list {\n position: relative;\n align-items: stretch;\n flex-grow: 1;\n flex-direction: column;\n overflow-x: auto;\n}\n.ag-column-drop-vertical-list > * {\n flex: none;\n}\n\n.ag-column-drop-empty .ag-column-drop-vertical-list {\n overflow: hidden;\n}\n\n.ag-column-drop-vertical-empty-message {\n display: block;\n}\n\n.ag-column-drop.ag-column-drop-horizontal {\n white-space: nowrap;\n overflow: hidden;\n}\n\n.ag-column-drop-cell-button {\n cursor: pointer;\n}\n\n.ag-filter-toolpanel {\n flex: 1 1 0px;\n min-width: 0;\n}\n\n.ag-filter-toolpanel-header {\n position: relative;\n}\n\n.ag-filter-toolpanel-header, .ag-filter-toolpanel-search {\n display: flex;\n align-items: center;\n}\n.ag-filter-toolpanel-header > *, .ag-filter-toolpanel-search > * {\n display: flex;\n align-items: center;\n}\n\n.ag-filter-apply-panel {\n display: flex;\n justify-content: flex-end;\n overflow: hidden;\n}\n\n.ag-row-animation .ag-row {\n transition: transform 0.4s, top 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-animation .ag-row.ag-after-created {\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-no-animation .ag-row {\n transition: background-color 0.1s;\n}\n\n.ag-row {\n white-space: nowrap;\n width: 100%;\n}\n\n.ag-row-loading {\n display: flex;\n align-items: center;\n}\n\n.ag-row-position-absolute {\n position: absolute;\n}\n\n.ag-row-position-relative {\n position: relative;\n}\n\n.ag-full-width-row {\n overflow: hidden;\n pointer-events: all;\n}\n\n.ag-row-inline-editing {\n z-index: 1;\n}\n\n.ag-row-dragging {\n z-index: 2;\n}\n\n.ag-stub-cell {\n display: flex;\n align-items: center;\n}\n\n.ag-cell {\n display: inline-block;\n position: absolute;\n white-space: nowrap;\n height: 100%;\n}\n\n.ag-cell-value {\n flex: 1 1 auto;\n}\n\n.ag-cell-value, .ag-group-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-cell-wrap-text {\n white-space: normal;\n word-break: break-all;\n}\n\n.ag-cell-wrapper {\n display: flex;\n align-items: center;\n}\n.ag-cell-wrapper.ag-row-group {\n align-items: flex-start;\n}\n\n.ag-sparkline-wrapper {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\n.ag-full-width-row .ag-cell-wrapper.ag-row-group {\n height: 100%;\n align-items: center;\n}\n\n.ag-cell-inline-editing {\n z-index: 1;\n}\n.ag-cell-inline-editing .ag-cell-wrapper,\n.ag-cell-inline-editing .ag-cell-edit-wrapper,\n.ag-cell-inline-editing .ag-cell-editor,\n.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,\n.ag-cell-inline-editing .ag-cell-editor input {\n height: 100%;\n width: 100%;\n line-height: normal;\n}\n\n.ag-cell .ag-icon {\n display: inline-block;\n vertical-align: middle;\n}\n\n.ag-set-filter-item {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.ag-set-filter-item-checkbox {\n display: flex;\n overflow: hidden;\n}\n\n.ag-set-filter-group-icons {\n display: block;\n}\n.ag-set-filter-group-icons > * {\n cursor: pointer;\n}\n\n.ag-filter-body-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n.ag-filter-filter {\n flex: 1 1 0px;\n}\n\n.ag-filter-condition {\n display: flex;\n justify-content: center;\n}\n\n.ag-floating-filter-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.ag-floating-filter-full-body {\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n align-items: center;\n overflow: hidden;\n}\n\n.ag-floating-filter-full-body > div {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input {\n align-items: center;\n display: flex;\n width: 100%;\n}\n.ag-floating-filter-input > * {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-button {\n display: flex;\n flex: none;\n}\n\n.ag-dnd-ghost {\n position: absolute;\n display: inline-flex;\n align-items: center;\n cursor: move;\n white-space: nowrap;\n z-index: 9999;\n}\n\n.ag-overlay {\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.ag-overlay-panel {\n display: flex;\n height: 100%;\n width: 100%;\n}\n\n.ag-overlay-wrapper {\n display: flex;\n flex: none;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.ag-overlay-loading-wrapper {\n pointer-events: all;\n}\n\n.ag-popup-child {\n z-index: 5;\n top: 0;\n}\n\n.ag-popup-editor {\n position: absolute;\n user-select: none;\n z-index: 1;\n}\n\n.ag-large-text-input {\n display: block;\n}\n\n.ag-virtual-list-item {\n position: absolute;\n width: 100%;\n}\n\n.ag-floating-top {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-floating-bottom {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-sticky-top {\n position: absolute;\n display: flex;\n width: 100%;\n}\n\n.ag-pinned-left-sticky-top,\n.ag-pinned-right-sticky-top {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-sticky-top-full-width-container {\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-dialog, .ag-panel {\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n.ag-panel-title-bar {\n display: flex;\n flex: none;\n align-items: center;\n cursor: default;\n}\n\n.ag-panel-title-bar-title {\n flex: 1 1 auto;\n}\n\n.ag-panel-title-bar-buttons {\n display: flex;\n}\n\n.ag-panel-title-bar-button {\n cursor: pointer;\n}\n\n.ag-panel-content-wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n}\n\n.ag-dialog {\n position: absolute;\n}\n\n.ag-resizer {\n position: absolute;\n pointer-events: none;\n user-select: none;\n z-index: 1;\n}\n.ag-resizer.ag-resizer-topLeft {\n top: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-top {\n top: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-topRight {\n top: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-right {\n top: 5px;\n right: 0;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n.ag-resizer.ag-resizer-bottomRight {\n bottom: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-bottom {\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-bottomLeft {\n bottom: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-left {\n left: 0;\n top: 5px;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n\n.ag-tooltip {\n position: absolute;\n pointer-events: none;\n z-index: 99999;\n}\n\n.ag-tooltip-custom {\n position: absolute;\n pointer-events: none;\n z-index: 99999;\n}\n\n.ag-value-slide-out {\n margin-right: 5px;\n opacity: 1;\n transition: opacity 3s, margin-right 3s;\n transition-timing-function: linear;\n}\n\n.ag-value-slide-out-end {\n margin-right: 10px;\n opacity: 0;\n}\n\n.ag-opacity-zero {\n opacity: 0 !important;\n}\n\n.ag-menu {\n max-height: 100%;\n overflow-y: auto;\n position: absolute;\n user-select: none;\n}\n\n.ag-menu-column-select-wrapper {\n height: 265px;\n overflow: auto;\n}\n.ag-menu-column-select-wrapper .ag-column-select {\n height: 100%;\n}\n\n.ag-menu-list {\n display: table;\n width: 100%;\n}\n\n.ag-menu-option, .ag-menu-separator {\n display: table-row;\n}\n\n.ag-menu-option-part, .ag-menu-separator-part {\n display: table-cell;\n vertical-align: middle;\n}\n\n.ag-menu-option-text {\n white-space: nowrap;\n}\n\n.ag-compact-menu-option {\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n}\n\n.ag-compact-menu-option-text {\n white-space: nowrap;\n flex: 1 1 auto;\n}\n\n.ag-rich-select {\n cursor: default;\n outline: none;\n}\n\n.ag-rich-select-value {\n display: flex;\n align-items: center;\n}\n\n.ag-rich-select-value-icon {\n flex: 1 1 auto;\n order: 1;\n}\n.ag-ltr .ag-rich-select-value-icon {\n text-align: right;\n}\n.ag-rtl .ag-rich-select-value-icon {\n text-align: left;\n}\n\n.ag-rich-select-list {\n position: relative;\n}\n\n.ag-rich-select-virtual-list-item {\n display: flex;\n}\n\n.ag-rich-select-row {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n white-space: nowrap;\n}\n\n.ag-paging-panel {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n}\n\n.ag-paging-page-summary-panel {\n display: flex;\n align-items: center;\n}\n\n.ag-paging-button {\n position: relative;\n}\n\n.ag-disabled .ag-paging-page-summary-panel {\n pointer-events: none;\n}\n\n.ag-tool-panel-wrapper {\n display: flex;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: default;\n user-select: none;\n}\n\n.ag-column-select-column,\n.ag-column-select-column-group,\n.ag-select-agg-func-item {\n position: relative;\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n text-overflow: ellipsis;\n white-space: nowrap;\n height: 100%;\n}\n.ag-column-select-column > *,\n.ag-column-select-column-group > *,\n.ag-select-agg-func-item > * {\n flex: none;\n}\n\n.ag-column-select-checkbox {\n display: flex;\n}\n\n.ag-tool-panel-horizontal-resize {\n cursor: ew-resize;\n height: 100%;\n position: absolute;\n top: 0;\n width: 5px;\n z-index: 1;\n}\n\n.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n\n.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n\n.ag-details-row {\n width: 100%;\n}\n\n.ag-details-row-fixed-height {\n height: 100%;\n}\n\n.ag-details-grid {\n width: 100%;\n}\n\n.ag-details-grid-fixed-height {\n height: 100%;\n}\n\n.ag-header-group-cell {\n display: flex;\n align-items: center;\n height: 100%;\n position: absolute;\n}\n\n.ag-cell-label-container {\n display: flex;\n justify-content: space-between;\n flex-direction: row-reverse;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 5px 0px;\n}\n\n.ag-right-aligned-header .ag-cell-label-container {\n flex-direction: row;\n}\n\n.ag-side-bar {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.ag-side-bar-left {\n order: -1;\n flex-direction: row;\n}\n\n.ag-side-button-button {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-wrap: nowrap;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n\n.ag-side-button-label {\n writing-mode: vertical-lr;\n}\n\n.ag-status-bar {\n display: flex;\n justify-content: space-between;\n overflow: hidden;\n}\n\n.ag-status-panel {\n display: inline-flex;\n}\n\n.ag-status-name-value {\n white-space: nowrap;\n}\n\n.ag-status-bar-left {\n display: inline-flex;\n}\n\n.ag-status-bar-center {\n display: inline-flex;\n}\n\n.ag-status-bar-right {\n display: inline-flex;\n}\n\n.ag-icon {\n display: block;\n speak: none;\n}\n\n.ag-group {\n position: relative;\n width: 100%;\n}\n\n.ag-group-title-bar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-title {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.ag-group-title-bar .ag-group-title {\n cursor: default;\n}\n\n.ag-group-toolbar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-container {\n display: flex;\n}\n\n.ag-disabled .ag-group-container {\n pointer-events: none;\n}\n\n.ag-group-container-horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.ag-group-container-vertical {\n flex-direction: column;\n}\n\n.ag-column-group-icons {\n display: block;\n}\n.ag-column-group-icons > * {\n cursor: pointer;\n}\n\n.ag-group-item-alignment-stretch .ag-group-item {\n align-items: stretch;\n}\n\n.ag-group-item-alignment-start .ag-group-item {\n align-items: flex-start;\n}\n\n.ag-group-item-alignment-end .ag-group-item {\n align-items: flex-end;\n}\n\n.ag-toggle-button-icon {\n transition: right 0.3s;\n position: absolute;\n top: -1px;\n}\n\n.ag-input-field, .ag-select {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.ag-input-field-input {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input .ag-input-field-input[type=date] {\n width: 1px;\n}\n\n.ag-range-field {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select-wrapper {\n display: flex;\n}\n\n.ag-angle-select-parent-circle {\n display: block;\n position: relative;\n}\n\n.ag-angle-select-child-circle {\n position: absolute;\n}\n\n.ag-slider-wrapper {\n display: flex;\n}\n.ag-slider-wrapper .ag-input-field {\n flex: 1 1 auto;\n}\n\n.ag-picker-field-display {\n flex: 1 1 auto;\n}\n\n.ag-picker-field {\n display: flex;\n align-items: center;\n}\n\n.ag-picker-field-icon {\n display: flex;\n border: 0;\n padding: 0;\n margin: 0;\n cursor: pointer;\n}\n\n.ag-picker-field-wrapper {\n overflow: hidden;\n}\n\n.ag-label-align-right .ag-label {\n order: 1;\n}\n.ag-label-align-right > * {\n flex: none;\n}\n\n.ag-label-align-top {\n flex-direction: column;\n align-items: flex-start;\n}\n.ag-label-align-top > * {\n align-self: stretch;\n}\n\n.ag-label-ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n.ag-color-panel {\n width: 100%;\n display: flex;\n flex-direction: column;\n text-align: center;\n}\n\n.ag-spectrum-color {\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n cursor: default;\n}\n\n.ag-spectrum-fill {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-spectrum-val {\n cursor: pointer;\n}\n\n.ag-spectrum-dragger {\n position: absolute;\n pointer-events: none;\n cursor: pointer;\n}\n\n.ag-spectrum-hue {\n cursor: default;\n background: linear-gradient(to left, #ff0000 3%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);\n}\n\n.ag-spectrum-alpha {\n cursor: default;\n}\n\n.ag-spectrum-hue-background {\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-alpha-background {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgb(0, 0, 0));\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-tool {\n cursor: pointer;\n}\n\n.ag-spectrum-slider {\n position: absolute;\n pointer-events: none;\n}\n\n.ag-recent-colors {\n display: flex;\n}\n\n.ag-recent-color {\n cursor: pointer;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr {\n direction: ltr;\n}\n.ag-ltr .ag-body, .ag-ltr .ag-floating-top, .ag-ltr .ag-floating-bottom, .ag-ltr .ag-header, .ag-ltr .ag-body-viewport, .ag-ltr .ag-body-horizontal-scroll {\n flex-direction: row;\n}\n\n.ag-rtl {\n direction: rtl;\n}\n.ag-rtl .ag-body, .ag-rtl .ag-floating-top, .ag-rtl .ag-floating-bottom, .ag-rtl .ag-header, .ag-rtl .ag-body-viewport, .ag-rtl .ag-body-horizontal-scroll {\n flex-direction: row-reverse;\n}\n.ag-rtl .ag-icon-contracted,\n.ag-rtl .ag-icon-expanded,\n.ag-rtl .ag-icon-tree-closed {\n display: block;\n transform: rotate(180deg);\n}\n\n.ag-body .ag-body-viewport {\n -webkit-overflow-scrolling: touch;\n}\n\n.ag-layout-print.ag-body {\n display: block;\n height: unset;\n}\n.ag-layout-print.ag-body-clipper {\n height: unset;\n}\n.ag-layout-print.ag-root-wrapper {\n display: inline-flex;\n}\n.ag-layout-print .ag-center-cols-clipper {\n min-width: 100%;\n}\n.ag-layout-print .ag-body-vertical-scroll {\n display: none;\n}\n.ag-layout-print .ag-body-horizontal-scroll {\n display: none;\n}\n.ag-layout-print.ag-force-vertical-scroll {\n overflow-y: visible !important;\n}\n\n@media print {\n .ag-root-wrapper.ag-layout-print {\n display: table;\n }\n .ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,\n .ag-root-wrapper.ag-layout-print .ag-root,\n .ag-root-wrapper.ag-layout-print .ag-body-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-container,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-clipper,\n .ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,\n .ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport {\n height: auto !important;\n overflow: hidden !important;\n display: block !important;\n }\n .ag-root-wrapper.ag-layout-print .ag-row, .ag-root-wrapper.ag-layout-print .ag-cell {\n break-inside: avoid;\n }\n}\n[class^=ag-], [class^=ag-]:focus, [class^=ag-]:after, [class^=ag-]:before {\n box-sizing: border-box;\n outline: none;\n}\n\n[class^=ag-]::-ms-clear {\n display: none;\n}\n\n.ag-checkbox .ag-input-wrapper,\n.ag-radio-button .ag-input-wrapper {\n overflow: visible;\n}\n\n.ag-range-field .ag-input-wrapper {\n height: 100%;\n}\n\n.ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset;\n}\n\n.ag-ltr .ag-label-align-right .ag-label {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-label-align-right .ag-label {\n margin-right: var(--ag-grid-size);\n}\n\ninput[class^=ag-] {\n margin: 0;\n background-color: var(--ag-background-color);\n}\n\ntextarea[class^=ag-],\nselect[class^=ag-] {\n background-color: var(--ag-background-color);\n}\n\ninput[class^=ag-]:not([type]),\ninput[class^=ag-][type=text],\ninput[class^=ag-][type=number],\ninput[class^=ag-][type=tel],\ninput[class^=ag-][type=date],\ninput[class^=ag-][type=datetime-local],\ntextarea[class^=ag-] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border: var(--ag-borders-input) var(--ag-input-border-color);\n}\ninput[class^=ag-]:not([type]):disabled,\ninput[class^=ag-][type=text]:disabled,\ninput[class^=ag-][type=number]:disabled,\ninput[class^=ag-][type=tel]:disabled,\ninput[class^=ag-][type=date]:disabled,\ninput[class^=ag-][type=datetime-local]:disabled,\ntextarea[class^=ag-]:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\ninput[class^=ag-]:not([type]):focus,\ninput[class^=ag-][type=text]:focus,\ninput[class^=ag-][type=number]:focus,\ninput[class^=ag-][type=tel]:focus,\ninput[class^=ag-][type=date]:focus,\ninput[class^=ag-][type=datetime-local]:focus,\ntextarea[class^=ag-]:focus {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-]:not([type]):invalid,\ninput[class^=ag-][type=text]:invalid,\ninput[class^=ag-][type=number]:invalid,\ninput[class^=ag-][type=tel]:invalid,\ninput[class^=ag-][type=date]:invalid,\ninput[class^=ag-][type=datetime-local]:invalid,\ntextarea[class^=ag-]:invalid {\n border: var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid);\n}\n\ninput[class^=ag-][type=number] {\n -moz-appearance: textfield;\n}\ninput[class^=ag-][type=number]::-webkit-outer-spin-button, input[class^=ag-][type=number]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\ninput[class^=ag-][type=range] {\n padding: 0;\n}\n\ninput[class^=ag-][type=button]:focus, button[class^=ag-]:focus {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-drag-handle {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-list-item, .ag-virtual-list-item {\n height: var(--ag-list-item-height);\n}\n\n.ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-select-list {\n background-color: var(--ag-background-color);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-list-item.ag-active-item {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-select-list-item {\n padding-left: 4px;\n padding-right: 4px;\n cursor: default;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ag-select .ag-picker-field-wrapper {\n background-color: var(--ag-background-color);\n min-height: var(--ag-list-item-height);\n cursor: default;\n}\n.ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none;\n}\n.ag-select:not(.ag-cell-editor) {\n height: var(--ag-list-item-height);\n}\n.ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center;\n}\n.ag-select.ag-disabled {\n opacity: 0.5;\n}\n\n.ag-rich-select {\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: calc(var(--ag-row-height) * 6.5);\n}\n\n.ag-rich-select-value {\n height: var(--ag-row-height);\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-ltr .ag-rich-select-value {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-value {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-ltr .ag-rich-select-value {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-rich-select-value {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-rich-select-virtual-list-item {\n cursor: default;\n height: var(--ag-list-item-height);\n}\n.ag-keyboard-focus .ag-rich-select-virtual-list-item:focus::after {\n content: none;\n}\n.ag-rich-select-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-ltr .ag-rich-select-row {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-row {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rich-select-row-selected {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-row-drag,\n.ag-selection-checkbox,\n.ag-group-expanded,\n.ag-group-contracted {\n color: var(--ag-secondary-foreground-color);\n}\n.ag-ltr .ag-row-drag,\n.ag-ltr .ag-selection-checkbox,\n.ag-ltr .ag-group-expanded,\n.ag-ltr .ag-group-contracted {\n margin-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-row-drag,\n.ag-rtl .ag-selection-checkbox,\n.ag-rtl .ag-group-expanded,\n.ag-rtl .ag-group-contracted {\n margin-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-group-expanded,\n.ag-group-contracted {\n cursor: pointer;\n}\n\n.ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-ltr .ag-group-child-count {\n margin-left: 2px;\n}\n.ag-rtl .ag-group-child-count {\n margin-right: 2px;\n}\n\n.ag-group-title-bar {\n background-color: var(--ag-subheader-background-color);\n padding: var(--ag-grid-size);\n}\n\n.ag-group-toolbar {\n padding: var(--ag-grid-size);\n background-color: var(--ag-subheader-toolbar-background-color);\n}\n\n.ag-disabled-group-title-bar, .ag-disabled-group-container {\n opacity: 0.5;\n}\n\n.group-item {\n margin: calc(var(--ag-grid-size) * 0.5) 0;\n}\n\n.ag-label {\n white-space: nowrap;\n}\n.ag-ltr .ag-label {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-label {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-label-align-top .ag-label {\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-angle-select[disabled] {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n.ag-angle-select[disabled] .ag-angle-select-field {\n opacity: 0.4;\n}\n\n.ag-ltr .ag-slider-field,\n.ag-ltr .ag-angle-select-field {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-slider-field,\n.ag-rtl .ag-angle-select-field {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: var(--ag-border-color);\n background-color: var(--ag-background-color);\n}\n\n.ag-angle-select-child-circle {\n top: 4px;\n left: 12px;\n width: 6px;\n height: 6px;\n margin-left: -3px;\n margin-top: -4px;\n border-radius: 3px;\n background-color: var(--ag-secondary-foreground-color);\n}\n\n.ag-picker-field-wrapper {\n border: 1px solid;\n border-color: var(--ag-border-color);\n border-radius: 5px;\n}\n.ag-picker-field-wrapper:focus {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-picker-field-button {\n background-color: var(--ag-background-color);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-dialog.ag-color-dialog {\n border-radius: 5px;\n}\n\n.ag-color-picker .ag-picker-field-display {\n height: var(--ag-icon-size);\n}\n\n.ag-color-panel {\n padding: var(--ag-grid-size);\n}\n\n.ag-spectrum-color {\n background-color: rgb(255, 0, 0);\n border-radius: 2px;\n}\n\n.ag-spectrum-tools {\n padding: 10px;\n}\n\n.ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-dragger {\n border-radius: 12px;\n height: 12px;\n width: 12px;\n border: 1px solid white;\n background: black;\n box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.24);\n}\n\n.ag-spectrum-hue-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-alpha-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px;\n}\n\n.ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: rgb(248, 248, 248);\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\n}\n\n.ag-recent-color {\n margin: 0 3px;\n}\n.ag-recent-color:first-child {\n margin-left: 0;\n}\n.ag-recent-color:last-child {\n margin-right: 0;\n}\n\n.ag-dnd-ghost {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n overflow: hidden;\n text-overflow: ellipsis;\n border: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height) !important;\n line-height: var(--ag-header-height);\n margin: 0;\n padding: 0 calc(var(--ag-grid-size) * 2);\n transform: translateY(calc(var(--ag-grid-size) * 2));\n}\n\n.ag-dnd-ghost-icon {\n margin-right: var(--ag-grid-size);\n color: var(--ag-foreground-color);\n}\n\n.ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: var(--ag-popup-shadow);\n}\n\n.ag-dragging-range-handle .ag-dialog,\n.ag-dragging-fill-handle .ag-dialog {\n opacity: 0.7;\n pointer-events: none;\n}\n\n.ag-dialog {\n border-radius: var(--ag-border-radius);\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-panel {\n background-color: var(--ag-background-color);\n}\n\n.ag-panel-title-bar {\n background-color: var(--ag-header-background-color);\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n padding: var(--ag-grid-size) var(--ag-cell-horizontal-padding);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-panel-title-bar-button {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-panel-title-bar-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-tooltip {\n background-color: var(--ag-tooltip-background-color);\n color: var(--ag-foreground-color);\n padding: var(--ag-grid-size);\n border: var(--ag-borders) var(--ag-border-color);\n border-radius: var(--ag-card-radius);\n transition: opacity 1s;\n white-space: normal;\n}\n.ag-tooltip.ag-tooltip-hiding {\n opacity: 0;\n}\n\n.ag-tooltip-custom {\n transition: opacity 1s;\n}\n.ag-tooltip-custom.ag-tooltip-hiding {\n opacity: 0;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: calc(1 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: calc(1 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: calc(2 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: calc(2 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: calc(3 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: calc(3 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: calc(4 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: calc(4 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: calc(5 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: calc(5 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: calc(6 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: calc(6 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: calc(7 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: calc(7 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: calc(8 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: calc(8 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: calc(9 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: calc(9 * var(--ag-column-select-indent-size));\n}\n\n.ag-column-select-header-icon {\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header-icon:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-ltr .ag-column-group-icons:not(:last-child),\n.ag-ltr .ag-column-select-header-icon:not(:last-child),\n.ag-ltr .ag-column-select-header-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-ltr .ag-column-select-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-column-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: var(--ag-widget-horizontal-spacing);\n}\n.ag-rtl .ag-column-group-icons:not(:last-child),\n.ag-rtl .ag-column-select-header-icon:not(:last-child),\n.ag-rtl .ag-column-select-header-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-rtl .ag-column-select-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-column-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: var(--ag-widget-horizontal-spacing);\n}\n\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-column-group:not(:last-child),\n.ag-column-select-column:not(:last-child) {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-column-select-column-readonly,\n.ag-column-select-column-group-readonly {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n\n.ag-ltr .ag-column-select-add-group-indent {\n margin-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-column-select-add-group-indent {\n margin-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-column-select-virtual-list-viewport {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) 0px;\n}\n\n.ag-column-select-virtual-list-item {\n padding: 0 var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-rtl {\n text-align: right;\n}\n\n.ag-root-wrapper {\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: calc(1 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: calc(1 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: calc(2 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: calc(2 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: calc(3 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: calc(3 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: calc(4 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: calc(4 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: calc(5 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: calc(5 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: calc(6 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: calc(6 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: calc(7 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: calc(7 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: calc(8 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: calc(8 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: calc(9 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: calc(9 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n\n.ag-ltr .ag-row-group-indent-10 {\n padding-left: calc(10 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-10 {\n padding-right: calc(10 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n\n.ag-ltr .ag-row-group-indent-11 {\n padding-left: calc(11 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-11 {\n padding-right: calc(11 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n\n.ag-ltr .ag-row-group-indent-12 {\n padding-left: calc(12 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-12 {\n padding-right: calc(12 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n\n.ag-ltr .ag-row-group-indent-13 {\n padding-left: calc(13 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-13 {\n padding-right: calc(13 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n\n.ag-ltr .ag-row-group-indent-14 {\n padding-left: calc(14 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-14 {\n padding-right: calc(14 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n\n.ag-ltr .ag-row-group-indent-15 {\n padding-left: calc(15 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-15 {\n padding-right: calc(15 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n\n.ag-ltr .ag-row-group-indent-16 {\n padding-left: calc(16 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-16 {\n padding-right: calc(16 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n\n.ag-ltr .ag-row-group-indent-17 {\n padding-left: calc(17 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-17 {\n padding-right: calc(17 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n\n.ag-ltr .ag-row-group-indent-18 {\n padding-left: calc(18 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-18 {\n padding-right: calc(18 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n\n.ag-ltr .ag-row-group-indent-19 {\n padding-left: calc(19 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-19 {\n padding-right: calc(19 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n\n.ag-ltr .ag-row-group-indent-20 {\n padding-left: calc(20 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-20 {\n padding-right: calc(20 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n\n.ag-ltr .ag-row-group-indent-21 {\n padding-left: calc(21 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-21 {\n padding-right: calc(21 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n\n.ag-ltr .ag-row-group-indent-22 {\n padding-left: calc(22 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-22 {\n padding-right: calc(22 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n\n.ag-ltr .ag-row-group-indent-23 {\n padding-left: calc(23 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-23 {\n padding-right: calc(23 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n\n.ag-ltr .ag-row-group-indent-24 {\n padding-left: calc(24 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-24 {\n padding-right: calc(24 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n\n.ag-ltr .ag-row-group-indent-25 {\n padding-left: calc(25 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-25 {\n padding-right: calc(25 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n\n.ag-ltr .ag-row-group-indent-26 {\n padding-left: calc(26 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-26 {\n padding-right: calc(26 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n\n.ag-ltr .ag-row-group-indent-27 {\n padding-left: calc(27 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-27 {\n padding-right: calc(27 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n\n.ag-ltr .ag-row-group-indent-28 {\n padding-left: calc(28 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-28 {\n padding-right: calc(28 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n\n.ag-ltr .ag-row-group-indent-29 {\n padding-left: calc(29 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-29 {\n padding-right: calc(29 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n\n.ag-ltr .ag-row-group-indent-30 {\n padding-left: calc(30 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-30 {\n padding-right: calc(30 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n\n.ag-ltr .ag-row-group-indent-31 {\n padding-left: calc(31 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-31 {\n padding-right: calc(31 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n\n.ag-ltr .ag-row-group-indent-32 {\n padding-left: calc(32 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-32 {\n padding-right: calc(32 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n\n.ag-ltr .ag-row-group-indent-33 {\n padding-left: calc(33 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-33 {\n padding-right: calc(33 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n\n.ag-ltr .ag-row-group-indent-34 {\n padding-left: calc(34 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-34 {\n padding-right: calc(34 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n\n.ag-ltr .ag-row-group-indent-35 {\n padding-left: calc(35 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-35 {\n padding-right: calc(35 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n\n.ag-ltr .ag-row-group-indent-36 {\n padding-left: calc(36 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-36 {\n padding-right: calc(36 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n\n.ag-ltr .ag-row-group-indent-37 {\n padding-left: calc(37 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-37 {\n padding-right: calc(37 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n\n.ag-ltr .ag-row-group-indent-38 {\n padding-left: calc(38 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-38 {\n padding-right: calc(38 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n\n.ag-ltr .ag-row-group-indent-39 {\n padding-left: calc(39 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-39 {\n padding-right: calc(39 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n\n.ag-ltr .ag-row-group-indent-40 {\n padding-left: calc(40 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-40 {\n padding-right: calc(40 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n\n.ag-ltr .ag-row-group-indent-41 {\n padding-left: calc(41 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-41 {\n padding-right: calc(41 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n\n.ag-ltr .ag-row-group-indent-42 {\n padding-left: calc(42 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-42 {\n padding-right: calc(42 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n\n.ag-ltr .ag-row-group-indent-43 {\n padding-left: calc(43 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-43 {\n padding-right: calc(43 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n\n.ag-ltr .ag-row-group-indent-44 {\n padding-left: calc(44 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-44 {\n padding-right: calc(44 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n\n.ag-ltr .ag-row-group-indent-45 {\n padding-left: calc(45 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-45 {\n padding-right: calc(45 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n\n.ag-ltr .ag-row-group-indent-46 {\n padding-left: calc(46 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-46 {\n padding-right: calc(46 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n\n.ag-ltr .ag-row-group-indent-47 {\n padding-left: calc(47 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-47 {\n padding-right: calc(47 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n\n.ag-ltr .ag-row-group-indent-48 {\n padding-left: calc(48 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-48 {\n padding-right: calc(48 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n\n.ag-ltr .ag-row-group-indent-49 {\n padding-left: calc(49 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-49 {\n padding-right: calc(49 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n\n.ag-ltr .ag-row-group-indent-50 {\n padding-left: calc(50 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-50 {\n padding-right: calc(50 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n\n.ag-ltr .ag-row-group-indent-51 {\n padding-left: calc(51 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-51 {\n padding-right: calc(51 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n\n.ag-ltr .ag-row-group-indent-52 {\n padding-left: calc(52 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-52 {\n padding-right: calc(52 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n\n.ag-ltr .ag-row-group-indent-53 {\n padding-left: calc(53 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-53 {\n padding-right: calc(53 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n\n.ag-ltr .ag-row-group-indent-54 {\n padding-left: calc(54 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-54 {\n padding-right: calc(54 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n\n.ag-ltr .ag-row-group-indent-55 {\n padding-left: calc(55 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-55 {\n padding-right: calc(55 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n\n.ag-ltr .ag-row-group-indent-56 {\n padding-left: calc(56 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-56 {\n padding-right: calc(56 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n\n.ag-ltr .ag-row-group-indent-57 {\n padding-left: calc(57 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-57 {\n padding-right: calc(57 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n\n.ag-ltr .ag-row-group-indent-58 {\n padding-left: calc(58 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-58 {\n padding-right: calc(58 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n\n.ag-ltr .ag-row-group-indent-59 {\n padding-left: calc(59 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-59 {\n padding-right: calc(59 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n\n.ag-ltr .ag-row-group-indent-60 {\n padding-left: calc(60 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-60 {\n padding-right: calc(60 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n\n.ag-ltr .ag-row-group-indent-61 {\n padding-left: calc(61 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-61 {\n padding-right: calc(61 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n\n.ag-ltr .ag-row-group-indent-62 {\n padding-left: calc(62 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-62 {\n padding-right: calc(62 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n\n.ag-ltr .ag-row-group-indent-63 {\n padding-left: calc(63 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-63 {\n padding-right: calc(63 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n\n.ag-ltr .ag-row-group-indent-64 {\n padding-left: calc(64 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-64 {\n padding-right: calc(64 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n\n.ag-ltr .ag-row-group-indent-65 {\n padding-left: calc(65 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-65 {\n padding-right: calc(65 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n\n.ag-ltr .ag-row-group-indent-66 {\n padding-left: calc(66 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-66 {\n padding-right: calc(66 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n\n.ag-ltr .ag-row-group-indent-67 {\n padding-left: calc(67 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-67 {\n padding-right: calc(67 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n\n.ag-ltr .ag-row-group-indent-68 {\n padding-left: calc(68 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-68 {\n padding-right: calc(68 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n\n.ag-ltr .ag-row-group-indent-69 {\n padding-left: calc(69 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-69 {\n padding-right: calc(69 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n\n.ag-ltr .ag-row-group-indent-70 {\n padding-left: calc(70 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-70 {\n padding-right: calc(70 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n\n.ag-ltr .ag-row-group-indent-71 {\n padding-left: calc(71 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-71 {\n padding-right: calc(71 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n\n.ag-ltr .ag-row-group-indent-72 {\n padding-left: calc(72 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-72 {\n padding-right: calc(72 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n\n.ag-ltr .ag-row-group-indent-73 {\n padding-left: calc(73 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-73 {\n padding-right: calc(73 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n\n.ag-ltr .ag-row-group-indent-74 {\n padding-left: calc(74 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-74 {\n padding-right: calc(74 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n\n.ag-ltr .ag-row-group-indent-75 {\n padding-left: calc(75 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-75 {\n padding-right: calc(75 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n\n.ag-ltr .ag-row-group-indent-76 {\n padding-left: calc(76 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-76 {\n padding-right: calc(76 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n\n.ag-ltr .ag-row-group-indent-77 {\n padding-left: calc(77 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-77 {\n padding-right: calc(77 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n\n.ag-ltr .ag-row-group-indent-78 {\n padding-left: calc(78 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-78 {\n padding-right: calc(78 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n\n.ag-ltr .ag-row-group-indent-79 {\n padding-left: calc(79 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-79 {\n padding-right: calc(79 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n\n.ag-ltr .ag-row-group-indent-80 {\n padding-left: calc(80 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-80 {\n padding-right: calc(80 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n\n.ag-ltr .ag-row-group-indent-81 {\n padding-left: calc(81 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-81 {\n padding-right: calc(81 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n\n.ag-ltr .ag-row-group-indent-82 {\n padding-left: calc(82 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-82 {\n padding-right: calc(82 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n\n.ag-ltr .ag-row-group-indent-83 {\n padding-left: calc(83 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-83 {\n padding-right: calc(83 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n\n.ag-ltr .ag-row-group-indent-84 {\n padding-left: calc(84 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-84 {\n padding-right: calc(84 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n\n.ag-ltr .ag-row-group-indent-85 {\n padding-left: calc(85 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-85 {\n padding-right: calc(85 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n\n.ag-ltr .ag-row-group-indent-86 {\n padding-left: calc(86 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-86 {\n padding-right: calc(86 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n\n.ag-ltr .ag-row-group-indent-87 {\n padding-left: calc(87 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-87 {\n padding-right: calc(87 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n\n.ag-ltr .ag-row-group-indent-88 {\n padding-left: calc(88 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-88 {\n padding-right: calc(88 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n\n.ag-ltr .ag-row-group-indent-89 {\n padding-left: calc(89 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-89 {\n padding-right: calc(89 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n\n.ag-ltr .ag-row-group-indent-90 {\n padding-left: calc(90 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-90 {\n padding-right: calc(90 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n\n.ag-ltr .ag-row-group-indent-91 {\n padding-left: calc(91 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-91 {\n padding-right: calc(91 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n\n.ag-ltr .ag-row-group-indent-92 {\n padding-left: calc(92 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-92 {\n padding-right: calc(92 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n\n.ag-ltr .ag-row-group-indent-93 {\n padding-left: calc(93 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-93 {\n padding-right: calc(93 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n\n.ag-ltr .ag-row-group-indent-94 {\n padding-left: calc(94 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-94 {\n padding-right: calc(94 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n\n.ag-ltr .ag-row-group-indent-95 {\n padding-left: calc(95 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-95 {\n padding-right: calc(95 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n\n.ag-ltr .ag-row-group-indent-96 {\n padding-left: calc(96 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-96 {\n padding-right: calc(96 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n\n.ag-ltr .ag-row-group-indent-97 {\n padding-left: calc(97 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-97 {\n padding-right: calc(97 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n\n.ag-ltr .ag-row-group-indent-98 {\n padding-left: calc(98 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-98 {\n padding-right: calc(98 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n\n.ag-ltr .ag-row-group-indent-99 {\n padding-left: calc(99 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-99 {\n padding-right: calc(99 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row-group-leaf-indent {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-group-leaf-indent {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-value-change-delta {\n padding-right: 2px;\n}\n\n.ag-value-change-delta-up {\n color: var(--ag-value-change-delta-up-color);\n}\n\n.ag-value-change-delta-down {\n color: var(--ag-value-change-delta-down-color);\n}\n\n.ag-value-change-value {\n background-color: transparent;\n border-radius: 1px;\n padding-left: 1px;\n padding-right: 1px;\n transition: background-color 1s;\n}\n\n.ag-value-change-value-highlight {\n background-color: var(--ag-value-change-value-highlight-background-color);\n transition: background-color 0.1s;\n}\n\n.ag-cell-data-changed {\n background-color: var(--ag-value-change-value-highlight-background-color) !important;\n}\n\n.ag-cell-data-changed-animation {\n background-color: transparent;\n}\n\n.ag-cell-highlight {\n background-color: var(--ag-range-selection-highlight-color) !important;\n}\n\n.ag-row {\n height: var(--ag-row-height);\n background-color: var(--ag-background-color);\n color: var(--ag-data-color);\n border-bottom: var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width);\n}\n\n.ag-row-highlight-above::after, .ag-row-highlight-below::after {\n content: \"\";\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n left: 1px;\n}\n\n.ag-row-highlight-above::after {\n top: -1px;\n}\n\n.ag-row-highlight-above.ag-row-first::after {\n top: 0;\n}\n\n.ag-row-highlight-below::after {\n bottom: 0px;\n}\n\n.ag-row-odd {\n background-color: var(--ag-odd-row-background-color);\n}\n\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-row-selected::before {\n content: \"\";\n background-color: var(--ag-selected-row-background-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-row-hover:not(.ag-full-width-row)::before,\n.ag-row-hover.ag-full-width-row.ag-row-group::before {\n content: \"\";\n background-color: var(--ag-row-hover-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n}\n\n.ag-row-hover.ag-full-width-row.ag-row-group > * {\n position: relative;\n}\n\n.ag-row-hover.ag-row-selected::before {\n background-color: var(--ag-row-hover-color);\n background-image: linear-gradient(var(--ag-selected-row-background-color), var(--ag-selected-row-background-color));\n}\n\n.ag-column-hover {\n background-color: var(--ag-column-hover-color);\n}\n\n.ag-ltr .ag-right-aligned-cell {\n text-align: right;\n}\n.ag-rtl .ag-right-aligned-cell {\n text-align: left;\n}\n\n.ag-ltr .ag-right-aligned-cell .ag-cell-value,\n.ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto;\n}\n.ag-rtl .ag-right-aligned-cell .ag-cell-value,\n.ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto;\n}\n\n.ag-cell, .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n border: 1px solid transparent;\n line-height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.ag-row > .ag-cell-wrapper {\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n}\n\n.ag-row-dragging {\n cursor: move;\n opacity: 0.5;\n}\n\n.ag-cell-inline-editing {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n padding: 0;\n height: var(--ag-row-height);\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-popup-editor {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background-color: var(--ag-control-panel-background-color);\n padding: 0;\n}\n\n.ag-large-text-input {\n height: auto;\n padding: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rtl .ag-large-text-input textarea {\n resize: none;\n}\n\n.ag-details-row {\n padding: calc(var(--ag-grid-size) * 5);\n background-color: var(--ag-background-color);\n}\n\n.ag-layout-auto-height .ag-center-cols-clipper, .ag-layout-auto-height .ag-center-cols-container, .ag-layout-print .ag-center-cols-clipper, .ag-layout-print .ag-center-cols-container {\n min-height: 50px;\n}\n\n.ag-overlay-loading-wrapper {\n background-color: var(--ag-modal-overlay-background-color);\n}\n\n.ag-overlay-loading-center {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n}\n\n.ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px;\n}\n\n.ag-loading {\n display: flex;\n height: 100%;\n align-items: center;\n}\n.ag-ltr .ag-loading {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-loading {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-loading-icon {\n padding-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-loading-icon {\n padding-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-icon-loading {\n animation-name: spin;\n animation-duration: 1000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.ag-floating-top {\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-floating-bottom {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-cell {\n border-right: var(--ag-cell-horizontal-border);\n}\n.ag-rtl .ag-cell {\n border-left: var(--ag-cell-horizontal-border);\n}\n.ag-ltr .ag-cell {\n border-right-width: 1px;\n}\n.ag-rtl .ag-cell {\n border-left-width: 1px;\n}\n\n.ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell-range-selected:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: var(--ag-range-selection-chart-background-color) !important;\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category {\n background-color: var(--ag-range-selection-chart-category-background-color) !important;\n}\n\n.ag-cell-range-selected-1:not(.ag-cell-focus),\n.ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n\n.ag-cell-range-selected-2:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: var(--ag-range-selection-background-color-2);\n}\n\n.ag-cell-range-selected-3:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: var(--ag-range-selection-background-color-3);\n}\n\n.ag-cell-range-selected-4:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: var(--ag-range-selection-background-color-4);\n}\n\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: var(--ag-range-selection-border-color);\n border-top-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: var(--ag-range-selection-border-color);\n border-right-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: var(--ag-range-selection-border-color);\n border-bottom-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: var(--ag-range-selection-border-color);\n border-left-style: var(--ag-range-selection-border-style);\n}\n\n.ag-ltr .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-ltr .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-ltr .ag-cell-range-single-cell,\n.ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-rtl .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-rtl .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-rtl .ag-cell-range-single-cell,\n.ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: var(--ag-range-selection-border-color);\n border-style: var(--ag-range-selection-border-style);\n outline: initial;\n}\n\n.ag-cell.ag-selection-fill-top,\n.ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-right,\n.ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-right,\n.ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-cell.ag-selection-fill-bottom,\n.ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-left,\n.ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-left,\n.ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-fill-handle, .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-ltr .ag-fill-handle, .ag-ltr .ag-range-handle {\n right: -1px;\n}\n.ag-rtl .ag-fill-handle, .ag-rtl .ag-range-handle {\n left: -1px;\n}\n\n.ag-fill-handle {\n cursor: cell;\n}\n\n.ag-range-handle {\n cursor: nwse-resize;\n}\n\n.ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n\n.ag-menu {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n padding: 0;\n}\n\n.ag-menu-list {\n cursor: default;\n padding: var(--ag-grid-size) 0;\n}\n\n.ag-menu-separator {\n height: calc(var(--ag-grid-size) * 2 + 1px);\n}\n\n.ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-menu-option-active, .ag-compact-menu-option-active {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-menu-option-part, .ag-compact-menu-option-part {\n line-height: var(--ag-icon-size);\n padding: calc(var(--ag-grid-size) + 2px) 0;\n}\n\n.ag-menu-option-disabled, .ag-compact-menu-option-disabled {\n opacity: 0.5;\n}\n\n.ag-menu-option-icon, .ag-compact-menu-option-icon {\n width: var(--ag-icon-size);\n}\n.ag-ltr .ag-menu-option-icon, .ag-ltr .ag-compact-menu-option-icon {\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-menu-option-icon, .ag-rtl .ag-compact-menu-option-icon {\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-menu-option-text, .ag-compact-menu-option-text {\n padding-left: calc(var(--ag-grid-size) * 2);\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-menu-option-shortcut, .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-menu-option-shortcut, .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-menu-option-popup-pointer, .ag-compact-menu-option-popup-pointer {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-tabs {\n min-width: var(--ag-tab-min-width);\n}\n\n.ag-tabs-header {\n width: 100%;\n display: flex;\n}\n\n.ag-tab {\n border-bottom: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-bottom var(--ag-selected-tab-underline-transition-speed);\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-tab:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-tab:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-tab-selected {\n border-bottom-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-menu-header {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-filter-separator {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-menu:not(.ag-tabs) .ag-filter-select {\n min-width: calc(var(--ag-menu-min-width) - 2 * var(--ag-widget-container-horizontal-padding) - 2px);\n}\n\n.ag-tabs .ag-filter-select {\n min-width: calc(var(--ag-tab-min-width) - 2 * var(--ag-widget-container-horizontal-padding) - 2px);\n}\n\n.ag-filter-select .ag-picker-field-wrapper {\n width: 0;\n}\n\n.ag-filter-condition-operator {\n height: 17px;\n}\n\n.ag-ltr .ag-filter-condition-operator-or {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-condition-operator-or {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-set-filter-select-all {\n padding-top: var(--ag-widget-container-vertical-padding);\n}\n\n.ag-set-filter-list, .ag-filter-no-matches {\n height: calc(var(--ag-list-item-height) * 6);\n}\n\n.ag-set-filter-tree-list {\n height: calc(var(--ag-list-item-height) * 10);\n}\n\n.ag-set-filter-filter {\n margin-top: var(--ag-widget-container-vertical-padding);\n margin-left: var(--ag-widget-container-horizontal-padding);\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-to {\n margin-top: var(--ag-widget-vertical-spacing);\n}\n\n.ag-mini-filter {\n margin: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-set-filter-item {\n margin: 0px var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-ltr .ag-set-filter-add-group-indent {\n margin-left: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-set-filter-add-group-indent {\n margin-right: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: calc(1 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: calc(1 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: calc(2 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: calc(2 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: calc(3 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: calc(3 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: calc(4 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: calc(4 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: calc(5 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: calc(5 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: calc(6 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: calc(6 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: calc(7 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: calc(7 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: calc(8 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: calc(8 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: calc(9 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: calc(9 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-group-icons {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-set-filter-group-icons {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-apply-panel {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-filter-apply-panel-button {\n line-height: 1.5;\n}\n.ag-ltr .ag-filter-apply-panel-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-apply-panel-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-simple-filter-body-wrapper {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-simple-filter-body-wrapper > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-filter-no-matches {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-multi-filter-menu-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-multi-filter-group-title-bar {\n padding: calc(var(--ag-grid-size) * 2) var(--ag-grid-size);\n background-color: transparent;\n}\n\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-side-bar {\n position: relative;\n}\n\n.ag-tool-panel-wrapper {\n width: var(--ag-side-bar-panel-width);\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-side-buttons {\n padding-top: calc(var(--ag-grid-size) * 4);\n width: calc(var(--ag-icon-size) + 4px);\n position: relative;\n color: var(--ag-foreground-color);\n overflow: hidden;\n}\n\nbutton.ag-side-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n background: transparent;\n padding: calc(var(--ag-grid-size) * 2) 0 calc(var(--ag-grid-size) * 2) 0;\n width: 100%;\n margin: 0;\n min-height: calc(var(--ag-grid-size) * 18);\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: var(--ag-borders-side-button) var(--ag-border-color);\n border-bottom: var(--ag-borders-side-button) var(--ag-border-color);\n}\nbutton.ag-side-button-button:focus {\n box-shadow: none;\n}\n\n.ag-keyboard-focus .ag-side-button-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-side-button-button:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-selected button.ag-side-button-button {\n background-color: var(--ag-side-button-selected-background-color);\n}\n\n.ag-side-button-icon-wrapper {\n margin-bottom: 3px;\n}\n\n.ag-ltr .ag-side-bar-left,\n.ag-rtl .ag-side-bar-right {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-right var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-rtl .ag-side-bar-left,\n.ag-ltr .ag-side-bar-right {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-left var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 6);\n}\n\n.ag-ltr .ag-filter-toolpanel-header,\n.ag-ltr .ag-filter-toolpanel-search {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-header,\n.ag-rtl .ag-filter-toolpanel-search {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: var(--ag-icon-font-code-filter, \"\\f114\");\n position: absolute;\n}\n.ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 8);\n}\n\n.ag-filter-toolpanel-group-item {\n margin-top: calc(var(--ag-grid-size) * 0.5);\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-filter-toolpanel-search {\n height: var(--ag-header-height);\n}\n\n.ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0 {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-ltr .ag-filter-toolpanel-expand,\n.ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-expand,\n.ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-instance-filter {\n border-bottom: var(--ag-borders) var(--ag-border-color);\n border-top: var(--ag-borders) var(--ag-border-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-set-filter-group-icons {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-pivot-mode-panel {\n min-height: var(--ag-header-height);\n height: var(--ag-header-height);\n display: flex;\n}\n\n.ag-pivot-mode-select {\n display: flex;\n align-items: center;\n}\n.ag-ltr .ag-pivot-mode-select {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-pivot-mode-select {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-keyboard-focus .ag-column-select-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-header {\n height: var(--ag-header-height);\n align-items: center;\n padding: 0 var(--ag-widget-container-horizontal-padding);\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-panel-column-select {\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-group-icons,\n.ag-column-select-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-select-list .ag-list-item-hovered::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-column-select-list .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-column-select-list .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-header {\n background-color: var(--ag-header-background-color);\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-row {\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n}\n\n.ag-pinned-right-header {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-pinned-left-header {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-header-cell,\n.ag-header-group-cell {\n padding-left: var(--ag-cell-horizontal-padding);\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-header-cell.ag-header-cell-moving,\n.ag-header-group-cell.ag-header-cell-moving {\n background-color: var(--ag-header-cell-moving-background-color);\n}\n\n.ag-keyboard-focus .ag-header-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n.ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-group-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-header-expand-icon {\n cursor: pointer;\n}\n.ag-ltr .ag-header-expand-icon {\n padding-left: 4px;\n}\n.ag-rtl .ag-header-expand-icon {\n padding-right: 4px;\n}\n\n.ag-header-row:not(:first-child) .ag-header-cell,\n.ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover, .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-group-cell:first-of-type.ag-column-resizing,\n.ag-header-cell:not(.ag-column-hover):first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-hover):first-of-type.ag-column-resizing {\n background-color: var(--ag-header-cell-hover-background-color);\n}\n\n.ag-header-cell::after,\n.ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-separator-display);\n width: var(--ag-header-column-separator-width);\n height: var(--ag-header-column-separator-height);\n top: calc(50% - var(--ag-header-column-separator-height) * 0.5);\n background-color: var(--ag-header-column-separator-color);\n}\n.ag-ltr .ag-header-cell::after,\n.ag-ltr .ag-header-group-cell::after {\n right: 0;\n}\n.ag-rtl .ag-header-cell::after,\n.ag-rtl .ag-header-group-cell::after {\n left: 0;\n}\n\n.ag-header-cell-resize {\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-resize::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-resize-handle-display);\n width: var(--ag-header-column-resize-handle-width);\n height: var(--ag-header-column-resize-handle-height);\n top: calc(50% - var(--ag-header-column-resize-handle-height) * 0.5);\n background-color: var(--ag-header-column-resize-handle-color);\n}\n\n.ag-ltr .ag-header-viewport .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n.ag-rtl .ag-header-viewport .ag-header-cell-resize::after {\n right: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-left-header .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-right-header .ag-header-cell-resize::after {\n left: 50%;\n}\n\n.ag-ltr .ag-header-select-all {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-header-select-all {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-floating-filter-button {\n margin-left: calc(var(--ag-grid-size) * 3);\n}\n.ag-rtl .ag-floating-filter-button {\n margin-right: calc(var(--ag-grid-size) * 3);\n}\n\n.ag-floating-filter-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n appearance: none;\n background: transparent;\n border: none;\n height: var(--ag-icon-size);\n padding: 0;\n width: var(--ag-icon-size);\n}\n\n.ag-filter-loading {\n background-color: var(--ag-control-panel-background-color);\n height: 100%;\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n position: absolute;\n width: 100%;\n z-index: 1;\n}\n\n.ag-paging-panel {\n border-top: 1px solid;\n border-top-color: var(--ag-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height);\n}\n.ag-paging-panel > * {\n margin: 0 var(--ag-cell-horizontal-padding);\n}\n\n.ag-paging-button {\n cursor: pointer;\n}\n\n.ag-paging-button.ag-disabled {\n cursor: default;\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-keyboard-focus .ag-paging-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-paging-button:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-paging-button, .ag-paging-description {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-status-bar {\n border-top: var(--ag-borders) var(--ag-border-color);\n color: var(--ag-disabled-foreground-color);\n padding-right: calc(var(--ag-grid-size) * 4);\n padding-left: calc(var(--ag-grid-size) * 4);\n line-height: 1.5;\n}\n\n.ag-status-name-value-value {\n color: var(--ag-foreground-color);\n}\n\n.ag-status-bar-center {\n text-align: center;\n}\n\n.ag-status-name-value {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n padding-top: calc(var(--ag-grid-size) * 2);\n padding-bottom: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell {\n background: var(--ag-chip-background-color);\n border-radius: calc(var(--ag-grid-size) * 4);\n height: calc(var(--ag-grid-size) * 4);\n padding: 0 calc(var(--ag-grid-size) * 0.5);\n border: 1px solid transparent;\n}\n\n.ag-keyboard-focus .ag-column-drop-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-drop-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 2px;\n left: 2px;\n display: block;\n width: calc(100% - 4px);\n height: calc(100% - 4px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-drop-cell-text {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-column-drop-cell-button {\n min-width: calc(var(--ag-grid-size) * 4);\n margin: 0 calc(var(--ag-grid-size) * 0.5);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-cell-drag-handle {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell-ghost {\n opacity: 0.5;\n}\n\n.ag-column-drop-horizontal {\n background-color: var(--ag-control-panel-background-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-row-height);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-column-drop-horizontal {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-column-drop-horizontal-cell-separator {\n margin: 0 var(--ag-grid-size);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-horizontal-empty-message {\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-column-drop-vertical-list {\n padding-bottom: var(--ag-grid-size);\n padding-right: var(--ag-grid-size);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-cell {\n margin-top: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical {\n min-height: 50px;\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n.ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n\n.ag-column-drop-vertical-icon {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-empty-message {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: hidden;\n color: var(--ag-disabled-foreground-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-select-agg-func-popup {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background: var(--ag-background-color);\n height: calc(var(--ag-grid-size) * 5 * 3.5);\n padding: 0;\n}\n\n.ag-select-agg-func-virtual-list-item {\n cursor: default;\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-select-agg-func-virtual-list-item:hover {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-sort-indicator-container {\n display: flex;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-sort-indicator-icon {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-chart {\n position: relative;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-chart-components-wrapper {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-chart-title-edit {\n position: absolute;\n display: none;\n top: 0;\n left: 0;\n text-align: center;\n}\n\n.ag-chart-title-edit.currently-editing {\n display: inline-block;\n}\n\n.ag-chart-canvas-wrapper {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-charts-canvas {\n display: block;\n}\n\n.ag-chart-menu {\n position: absolute;\n top: 10px;\n width: 24px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.ag-ltr .ag-chart-menu {\n right: 20px;\n}\n.ag-rtl .ag-chart-menu {\n left: 20px;\n}\n\n.ag-chart-docked-container {\n position: relative;\n width: 0;\n min-width: 0;\n transition: min-width 0.4s;\n}\n\n.ag-chart-menu-hidden ~ .ag-chart-docked-container {\n max-width: 0;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu-header {\n flex: none;\n user-select: none;\n cursor: default;\n}\n\n.ag-chart-tabbed-menu-body {\n display: flex;\n flex: 1 1 auto;\n align-items: stretch;\n overflow: hidden;\n}\n\n.ag-chart-tab {\n width: 100%;\n overflow: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings {\n overflow-x: hidden;\n}\n\n.ag-chart-settings-wrapper {\n position: relative;\n flex-direction: column;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.ag-chart-settings-nav-bar {\n display: flex;\n align-items: center;\n width: 100%;\n height: 30px;\n padding: 0 10px;\n user-select: none;\n}\n\n.ag-chart-settings-card-selector {\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex: 1 1 auto;\n height: 100%;\n padding: 0 10px;\n}\n\n.ag-chart-settings-card-item {\n cursor: pointer;\n width: 10px;\n height: 10px;\n background-color: #000;\n position: relative;\n}\n.ag-chart-settings-card-item.ag-not-selected {\n opacity: 0.2;\n}\n.ag-chart-settings-card-item::before {\n content: \" \";\n display: block;\n position: absolute;\n background-color: transparent;\n left: 50%;\n top: 50%;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n}\n\n.ag-chart-settings-prev,\n.ag-chart-settings-next {\n position: relative;\n flex: none;\n}\n\n.ag-chart-settings-prev-button,\n.ag-chart-settings-next-button {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n\n.ag-chart-settings-mini-charts-container {\n position: relative;\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings-mini-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n overflow: hidden;\n}\n.ag-chart-settings-mini-wrapper.ag-animating {\n transition: left 0.3s;\n transition-timing-function: ease-in-out;\n}\n\n.ag-chart-mini-thumbnail {\n cursor: pointer;\n}\n\n.ag-chart-mini-thumbnail-canvas {\n display: block;\n}\n\n.ag-chart-data-wrapper,\n.ag-chart-format-wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n user-select: none;\n}\n\n.ag-chart-data-wrapper {\n height: 100%;\n overflow-y: auto;\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-empty-text {\n display: flex;\n top: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.ag-chart .ag-chart-menu {\n display: none;\n}\n\n.ag-chart-menu-hidden:hover .ag-chart-menu {\n display: block;\n}\n\n.ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n display: flex;\n flex-direction: row;\n overflow: auto;\n top: 5px;\n gap: calc(var(--ag-grid-size) * 3 - 8px);\n width: auto;\n}\n.ag-ltr .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n right: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: right;\n}\n.ag-rtl .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n left: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: left;\n}\n\n.ag-chart-menu-close {\n display: none;\n}\n\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n position: absolute;\n top: 50%;\n transition: transform 0.33s ease-in-out;\n padding: 0;\n display: block;\n cursor: pointer;\n border: none;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n left: 0px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close .ag-icon {\n padding: 14px 5px 14px 2px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n content: \"\";\n position: absolute;\n top: -40px;\n bottom: -40px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: 0px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: -10px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: -10px;\n}\n.ag-chart-tool-panel-button-enable .ag-icon-menu {\n display: none;\n}\n\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(3px, -50%);\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-ltr .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(5px, -50%);\n}\n\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(-3px, -50%);\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-rtl .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(-5px, -50%);\n}\n\n.ag-charts-font-size-color {\n display: flex;\n align-self: stretch;\n justify-content: space-between;\n}\n\n.ag-charts-data-group-item {\n position: relative;\n}\n\n.ag-chart-menu {\n border-radius: var(--ag-card-radius);\n background: var(--ag-background-color);\n}\n\n.ag-chart-menu-icon {\n opacity: 0.5;\n line-height: 24px;\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin: 2px 0;\n cursor: pointer;\n border-radius: var(--ag-card-radius);\n color: var(--ag-secondary-foreground-color);\n}\n.ag-chart-menu-icon:hover {\n opacity: 1;\n}\n\n.ag-chart-mini-thumbnail {\n border: 1px solid var(--ag-secondary-border-color);\n border-radius: 5px;\n margin: 5px;\n}\n.ag-chart-mini-thumbnail:nth-last-child(3), .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto;\n}\n.ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0;\n}\n.ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0;\n}\n.ag-chart-mini-thumbnail.ag-selected {\n border-color: var(--ag-minichart-selected-chart-color);\n}\n\n.ag-chart-settings-card-item {\n background: var(--ag-foreground-color);\n width: 8px;\n height: 8px;\n border-radius: 4px;\n}\n.ag-chart-settings-card-item.ag-selected {\n background-color: var(--ag-minichart-selected-page-color);\n}\n\n.ag-chart-data-column-drag-handle {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-charts-settings-group-title-bar,\n.ag-charts-data-group-title-bar,\n.ag-charts-format-top-level-group-title-bar {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-charts-settings-group-container {\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-data-group-container {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) var(--ag-widget-container-horizontal-padding);\n}\n.ag-charts-data-group-container .ag-charts-data-group-item:not(.ag-charts-format-sub-level-group) {\n height: var(--ag-list-item-height);\n}\n.ag-charts-data-group-container .ag-list-item-hovered::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-charts-data-group-container .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-charts-data-group-container .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-charts-format-top-level-group-container {\n margin-left: calc(var(--ag-grid-size) * 2);\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-format-top-level-group-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-charts-format-sub-level-group-container {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-charts-format-sub-level-group-container > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-charts-group-container.ag-group-container-horizontal {\n padding: var(--ag-grid-size);\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-menu-panel {\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px var(--ag-border-color);\n}\n.ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px var(--ag-border-color);\n}\n\n.ag-date-time-list-page-title-bar {\n display: flex;\n}\n\n.ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-labels-row,\n.ag-date-time-list-page-entries-row {\n display: flex;\n}\n\n.ag-date-time-list-page-column-label,\n.ag-date-time-list-page-entry {\n flex-basis: 0;\n flex-grow: 1;\n}\n\n.ag-date-time-list-page-entry {\n cursor: pointer;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-label {\n text-align: center;\n}\n\n.ag-input-field-input {\n width: 100%;\n min-width: 0;\n}\n\n.ag-checkbox-input-wrapper {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-checkbox-background-color);\n border-radius: var(--ag-checkbox-border-radius);\n display: inline-block;\n vertical-align: middle;\n flex: none;\n}\n.ag-checkbox-input-wrapper input, .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n}\n.ag-checkbox-input-wrapper:focus-within, .ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-checkbox-input-wrapper::after {\n content: var(--ag-icon-font-code-checkbox-unchecked, \"\\f108\");\n color: var(--ag-checkbox-unchecked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-checkbox-input-wrapper.ag-checked::after {\n content: var(--ag-icon-font-code-checkbox-checked, \"\\f106\");\n color: var(--ag-checkbox-checked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: var(--ag-icon-font-code-checkbox-indeterminate, \"\\f107\");\n color: var(--ag-checkbox-indeterminate-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\n.ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: var(--ag-toggle-button-width);\n height: var(--ag-toggle-button-height);\n background-color: var(--ag-toggle-button-off-background-color);\n border-radius: calc(var(--ag-toggle-button-height) * 0.5);\n position: relative;\n flex: none;\n border: var(--ag-toggle-button-border-width) solid;\n border-color: var(--ag-toggle-button-off-border-color);\n}\n.ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%;\n}\n.ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-toggle-button-input-wrapper.ag-checked {\n background-color: var(--ag-toggle-button-on-background-color);\n border-color: var(--ag-toggle-button-on-border-color);\n}\n.ag-toggle-button-input-wrapper::before {\n content: \" \";\n position: absolute;\n top: calc(0px - var(--ag-toggle-button-border-width));\n left: calc(0px - var(--ag-toggle-button-border-width));\n display: block;\n box-sizing: border-box;\n height: var(--ag-toggle-button-height);\n width: var(--ag-toggle-button-height);\n background-color: var(--ag-toggle-button-switch-background-color);\n border-radius: 100%;\n transition: left 100ms;\n border: var(--ag-toggle-button-border-width) solid;\n border-color: var(--ag-toggle-button-switch-border-color);\n}\n.ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - var(--ag-toggle-button-height));\n border-color: var(--ag-toggle-button-on-border-color);\n}\n\n.ag-radio-button-input-wrapper {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-checkbox-background-color);\n border-radius: var(--ag-checkbox-border-radius);\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: var(--ag-icon-size);\n}\n.ag-radio-button-input-wrapper input, .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n}\n.ag-radio-button-input-wrapper:focus-within, .ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-radio-button-input-wrapper::after {\n content: var(--ag-icon-font-code-radio-button-off, \"\\f126\");\n color: var(--ag-checkbox-unchecked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-radio-button-input-wrapper.ag-checked::after {\n content: var(--ag-icon-font-code-radio-button-on, \"\\f127\");\n color: var(--ag-checkbox-checked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\ninput[class^=ag-][type=range] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible;\n}\ninput[class^=ag-][type=range]::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n}\ninput[class^=ag-][type=range]::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n}\ninput[class^=ag-][type=range]::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n color: transparent;\n width: calc(100% - 2px);\n}\ninput[class^=ag-][type=range]::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n transform: translateY(calc(var(--ag-icon-size) * -0.5 + 1.5px));\n}\ninput[class^=ag-][type=range]::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n}\ninput[class^=ag-][type=range]::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n}\ninput[class^=ag-][type=range]:focus {\n outline: none;\n}\ninput[class^=ag-][type=range]:focus::-webkit-slider-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^=ag-][type=range]:focus::-ms-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^=ag-][type=range]:focus::-moz-ag-range-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^=ag-][type=range]:active::-webkit-slider-runnable-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-][type=range]:active::-moz-ag-range-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-][type=range]:active::-ms-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-][type=range]:disabled {\n opacity: 0.5;\n}\n\n@font-face {\n font-family: \"agGridAlpine\";\n src: url(data:font/woff2;charset=utf-8;base64,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);\n font-weight: normal;\n font-style: normal;\n}\n.ag-theme-alpine, .ag-theme-alpine-dark {\n --ag-alpine-active-color: #2196f3;\n --ag-selected-row-background-color: rgba(33, 150, 243, 0.3);\n --ag-row-hover-color: rgba(33, 150, 243, 0.1);\n --ag-column-hover-color: rgba(33, 150, 243, 0.1);\n --ag-input-focus-border-color: rgba(33, 150, 243, 0.4);\n --ag-range-selection-background-color: rgba(33, 150, 243, 0.2);\n --ag-range-selection-background-color-2: rgba(33, 150, 243, 0.36);\n --ag-range-selection-background-color-3: rgba(33, 150, 243, 0.49);\n --ag-range-selection-background-color-4: rgba(33, 150, 243, 0.59);\n --ag-background-color: #fff;\n --ag-foreground-color: #181d1f;\n --ag-border-color: #babfc7;\n --ag-secondary-border-color: #dde2eb;\n --ag-header-background-color: #f8f8f8;\n --ag-tooltip-background-color: #f8f8f8;\n --ag-odd-row-background-color: #fcfcfc;\n --ag-control-panel-background-color: #f8f8f8;\n --ag-subheader-background-color: #fff;\n --ag-invalid-color: #e02525;\n --ag-checkbox-unchecked-color: #999;\n --ag-checkbox-background-color: var(--ag-background-color);\n --ag-checkbox-checked-color: var(--ag-alpine-active-color);\n --ag-range-selection-border-color: var(--ag-alpine-active-color);\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-input-border-color: var(--ag-border-color);\n --ag-input-border-color-invalid: var(--ag-invalid-color);\n --ag-input-focus-box-shadow: 0 0 2px 0.1rem var(--ag-input-focus-border-color);\n --ag-disabled-foreground-color: rgba(24, 29, 31, 0.5);\n --ag-chip-background-color: rgba(24, 29, 31, 0.07);\n --ag-input-disabled-border-color: rgba(186, 191, 199, 0.3);\n --ag-input-disabled-background-color: rgba(186, 191, 199, 0.15);\n --ag-borders: solid 1px;\n --ag-border-radius: 3px;\n --ag-borders-side-button: none;\n --ag-side-button-selected-background-color: transparent;\n --ag-header-column-resize-handle-display: block;\n --ag-header-column-resize-handle-width: 2px;\n --ag-header-column-resize-handle-height: 30%;\n --ag-grid-size: 6px;\n --ag-icon-size: 16px;\n --ag-row-height: calc(var(--ag-grid-size) * 7);\n --ag-header-height: calc(var(--ag-grid-size) * 8);\n --ag-list-item-height: calc(var(--ag-grid-size) * 4);\n --ag-column-select-indent-size: var(--ag-icon-size);\n --ag-set-filter-indent-size: var(--ag-icon-size);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-cell-widget-spacing: calc(var(--ag-grid-size) * 2);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.5);\n --ag-toggle-button-height: 18px;\n --ag-toggle-button-width: 28px;\n --ag-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n --ag-font-size: 13px;\n --ag-icon-font-family: agGridAlpine;\n --ag-selected-tab-underline-color: var(--ag-alpine-active-color);\n --ag-selected-tab-underline-width: 2px;\n --ag-selected-tab-underline-transition-speed: 0.3s;\n --ag-tab-min-width: 240px;\n --ag-card-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n --ag-popup-shadow: var(--ag-card-shadow);\n --ag-side-bar-panel-width: 250px;\n}\n\n.ag-theme-alpine-dark {\n --ag-background-color: #181d1f;\n --ag-foreground-color: #fff;\n --ag-border-color: #68686e;\n --ag-secondary-border-color: rgba(88, 86, 82, 0.5);\n --ag-modal-overlay-background-color: rgba(24, 29, 31, 0.66);\n --ag-header-background-color: #222628;\n --ag-tooltip-background-color: #222628;\n --ag-odd-row-background-color: #222628;\n --ag-control-panel-background-color: #222628;\n --ag-subheader-background-color: #000;\n --ag-input-disabled-background-color: #282c2f;\n --ag-input-focus-box-shadow:\n 0 0 2px 0.5px rgba(255, 255, 255, 0.5),\n 0 0 4px 3px var(--ag-input-focus-border-color);\n --ag-card-shadow: 0 1px 20px 1px black;\n --ag-disabled-foreground-color: rgba(255, 255, 255, 0.5);\n --ag-chip-background-color: rgba(255, 255, 255, 0.07);\n --ag-input-disabled-border-color: rgba(104, 104, 110, 0.3);\n --ag-input-disabled-background-color: rgba(104, 104, 110, 0.07);\n}\n\n.ag-theme-alpine .ag-filter-toolpanel-header,\n.ag-theme-alpine .ag-filter-toolpanel-search,\n.ag-theme-alpine .ag-status-bar,\n.ag-theme-alpine .ag-header-row,\n.ag-theme-alpine .ag-panel-title-bar-title,\n.ag-theme-alpine .ag-multi-filter-group-title-bar, .ag-theme-alpine-dark .ag-filter-toolpanel-header,\n.ag-theme-alpine-dark .ag-filter-toolpanel-search,\n.ag-theme-alpine-dark .ag-status-bar,\n.ag-theme-alpine-dark .ag-header-row,\n.ag-theme-alpine-dark .ag-panel-title-bar-title,\n.ag-theme-alpine-dark .ag-multi-filter-group-title-bar {\n font-weight: 700;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-alpine .ag-row, .ag-theme-alpine-dark .ag-row {\n font-size: calc(var(--ag-font-size) + 1px);\n}\n.ag-theme-alpine input[class^=ag-]:not([type]),\n.ag-theme-alpine input[class^=ag-][type=text],\n.ag-theme-alpine input[class^=ag-][type=number],\n.ag-theme-alpine input[class^=ag-][type=tel],\n.ag-theme-alpine input[class^=ag-][type=date],\n.ag-theme-alpine input[class^=ag-][type=datetime-local],\n.ag-theme-alpine textarea[class^=ag-], .ag-theme-alpine-dark input[class^=ag-]:not([type]),\n.ag-theme-alpine-dark input[class^=ag-][type=text],\n.ag-theme-alpine-dark input[class^=ag-][type=number],\n.ag-theme-alpine-dark input[class^=ag-][type=tel],\n.ag-theme-alpine-dark input[class^=ag-][type=date],\n.ag-theme-alpine-dark input[class^=ag-][type=datetime-local],\n.ag-theme-alpine-dark textarea[class^=ag-] {\n min-height: calc(var(--ag-grid-size) * 4);\n border-radius: var(--ag-border-radius);\n}\n.ag-theme-alpine .ag-ltr input[class^=ag-]:not([type]), .ag-theme-alpine .ag-ltr input[class^=ag-][type=text], .ag-theme-alpine .ag-ltr input[class^=ag-][type=number], .ag-theme-alpine .ag-ltr input[class^=ag-][type=tel], .ag-theme-alpine .ag-ltr input[class^=ag-][type=date], .ag-theme-alpine .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-alpine .ag-ltr textarea[class^=ag-], .ag-theme-alpine-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-alpine-dark .ag-ltr textarea[class^=ag-] {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl input[class^=ag-]:not([type]), .ag-theme-alpine .ag-rtl input[class^=ag-][type=text], .ag-theme-alpine .ag-rtl input[class^=ag-][type=number], .ag-theme-alpine .ag-rtl input[class^=ag-][type=tel], .ag-theme-alpine .ag-rtl input[class^=ag-][type=date], .ag-theme-alpine .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-alpine .ag-rtl textarea[class^=ag-], .ag-theme-alpine-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-alpine-dark .ag-rtl textarea[class^=ag-] {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-tab, .ag-theme-alpine-dark .ag-tab {\n padding: calc(var(--ag-grid-size) * 1.5);\n transition: color 0.4s;\n flex: 1 1 auto;\n}\n.ag-theme-alpine .ag-tab-selected, .ag-theme-alpine-dark .ag-tab-selected {\n color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-menu, .ag-theme-alpine-dark .ag-menu {\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-theme-alpine .ag-menu-header, .ag-theme-alpine-dark .ag-menu-header {\n background-color: var(--ag-control-panel-background-color);\n padding-top: 1px;\n}\n.ag-theme-alpine .ag-tabs-header, .ag-theme-alpine-dark .ag-tabs-header {\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n.ag-theme-alpine .ag-charts-settings-group-title-bar,\n.ag-theme-alpine .ag-charts-data-group-title-bar,\n.ag-theme-alpine .ag-charts-format-top-level-group-title-bar, .ag-theme-alpine-dark .ag-charts-settings-group-title-bar,\n.ag-theme-alpine-dark .ag-charts-data-group-title-bar,\n.ag-theme-alpine-dark .ag-charts-format-top-level-group-title-bar {\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n line-height: calc(var(--ag-icon-size) + var(--ag-grid-size) - 2px);\n}\n.ag-theme-alpine .ag-chart-mini-thumbnail, .ag-theme-alpine-dark .ag-chart-mini-thumbnail {\n background-color: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-chart-settings-nav-bar, .ag-theme-alpine-dark .ag-chart-settings-nav-bar {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n.ag-theme-alpine .ag-ltr .ag-group-title-bar-icon, .ag-theme-alpine-dark .ag-ltr .ag-group-title-bar-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-group-title-bar-icon, .ag-theme-alpine-dark .ag-rtl .ag-group-title-bar-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-charts-format-top-level-group-toolbar {\n margin-top: var(--ag-grid-size);\n}\n.ag-theme-alpine .ag-ltr .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-ltr .ag-charts-format-top-level-group-toolbar {\n padding-left: calc(var(--ag-icon-size) * 0.5 + var(--ag-grid-size) * 2);\n}\n\n.ag-theme-alpine .ag-rtl .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-rtl .ag-charts-format-top-level-group-toolbar {\n padding-right: calc(var(--ag-icon-size) * 0.5 + var(--ag-grid-size) * 2);\n}\n\n.ag-theme-alpine .ag-charts-format-sub-level-group, .ag-theme-alpine-dark .ag-charts-format-sub-level-group {\n border-left: dashed 1px;\n border-left-color: var(--ag-border-color);\n padding-left: var(--ag-grid-size);\n margin-bottom: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-title-bar, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-title-bar {\n padding-top: 0;\n padding-bottom: 0;\n background: none;\n font-weight: 700;\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-container, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-container {\n padding-bottom: 0;\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-item:last-child, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-item:last-child {\n margin-bottom: 0;\n}\n.ag-theme-alpine.ag-dnd-ghost, .ag-theme-alpine-dark.ag-dnd-ghost {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 700;\n}\n.ag-theme-alpine .ag-side-buttons, .ag-theme-alpine-dark .ag-side-buttons {\n width: calc(var(--ag-grid-size) * 5);\n}\n.ag-theme-alpine .ag-standard-button, .ag-theme-alpine-dark .ag-standard-button {\n appearance: none;\n -webkit-appearance: none;\n border-radius: var(--ag-border-radius);\n border: 1px solid;\n border-color: var(--ag-alpine-active-color);\n color: var(--ag-alpine-active-color);\n background-color: var(--ag-background-color);\n font-weight: 600;\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-standard-button:hover, .ag-theme-alpine-dark .ag-standard-button:hover {\n border-color: var(--ag-alpine-active-color);\n background-color: var(--ag-row-hover-color);\n}\n.ag-theme-alpine .ag-standard-button:active, .ag-theme-alpine-dark .ag-standard-button:active {\n border-color: var(--ag-alpine-active-color);\n background-color: var(--ag-alpine-active-color);\n color: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-standard-button:disabled, .ag-theme-alpine-dark .ag-standard-button:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-theme-alpine .ag-column-drop-vertical, .ag-theme-alpine-dark .ag-column-drop-vertical {\n min-height: 75px;\n}\n.ag-theme-alpine .ag-column-drop-vertical-title-bar, .ag-theme-alpine-dark .ag-column-drop-vertical-title-bar {\n padding: calc(var(--ag-grid-size) * 2);\n padding-bottom: 0px;\n}\n.ag-theme-alpine .ag-column-drop-vertical-empty-message, .ag-theme-alpine-dark .ag-column-drop-vertical-empty-message {\n display: flex;\n align-items: center;\n border: dashed 1px;\n border-color: var(--ag-border-color);\n margin: calc(var(--ag-grid-size) * 2);\n padding: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-column-drop-empty-message, .ag-theme-alpine-dark .ag-column-drop-empty-message {\n color: var(--ag-foreground-color);\n opacity: 0.75;\n}\n.ag-theme-alpine .ag-status-bar, .ag-theme-alpine-dark .ag-status-bar {\n font-weight: normal;\n}\n.ag-theme-alpine .ag-status-name-value-value, .ag-theme-alpine-dark .ag-status-name-value-value {\n font-weight: 700;\n}\n.ag-theme-alpine .ag-paging-number, .ag-theme-alpine .ag-paging-row-summary-panel-number, .ag-theme-alpine-dark .ag-paging-number, .ag-theme-alpine-dark .ag-paging-row-summary-panel-number {\n font-weight: 700;\n}\n.ag-theme-alpine .ag-column-drop-cell-button, .ag-theme-alpine-dark .ag-column-drop-cell-button {\n opacity: 0.5;\n}\n.ag-theme-alpine .ag-column-drop-cell-button:hover, .ag-theme-alpine-dark .ag-column-drop-cell-button:hover {\n opacity: 0.75;\n}\n.ag-theme-alpine .ag-header-cell-menu-button:hover,\n.ag-theme-alpine .ag-side-button-button:hover,\n.ag-theme-alpine .ag-tab:hover,\n.ag-theme-alpine .ag-panel-title-bar-button:hover,\n.ag-theme-alpine .ag-header-expand-icon:hover,\n.ag-theme-alpine .ag-column-group-icons:hover,\n.ag-theme-alpine .ag-set-filter-group-icons:hover,\n.ag-theme-alpine .ag-group-expanded .ag-icon:hover,\n.ag-theme-alpine .ag-group-contracted .ag-icon:hover,\n.ag-theme-alpine .ag-chart-settings-prev:hover,\n.ag-theme-alpine .ag-chart-settings-next:hover,\n.ag-theme-alpine .ag-group-title-bar-icon:hover,\n.ag-theme-alpine .ag-column-select-header-icon:hover,\n.ag-theme-alpine .ag-floating-filter-button-button:hover,\n.ag-theme-alpine .ag-filter-toolpanel-expand:hover,\n.ag-theme-alpine .ag-chart-menu-icon:hover,\n.ag-theme-alpine .ag-chart-menu-close:hover, .ag-theme-alpine-dark .ag-header-cell-menu-button:hover,\n.ag-theme-alpine-dark .ag-side-button-button:hover,\n.ag-theme-alpine-dark .ag-tab:hover,\n.ag-theme-alpine-dark .ag-panel-title-bar-button:hover,\n.ag-theme-alpine-dark .ag-header-expand-icon:hover,\n.ag-theme-alpine-dark .ag-column-group-icons:hover,\n.ag-theme-alpine-dark .ag-set-filter-group-icons:hover,\n.ag-theme-alpine-dark .ag-group-expanded .ag-icon:hover,\n.ag-theme-alpine-dark .ag-group-contracted .ag-icon:hover,\n.ag-theme-alpine-dark .ag-chart-settings-prev:hover,\n.ag-theme-alpine-dark .ag-chart-settings-next:hover,\n.ag-theme-alpine-dark .ag-group-title-bar-icon:hover,\n.ag-theme-alpine-dark .ag-column-select-header-icon:hover,\n.ag-theme-alpine-dark .ag-floating-filter-button-button:hover,\n.ag-theme-alpine-dark .ag-filter-toolpanel-expand:hover,\n.ag-theme-alpine-dark .ag-chart-menu-icon:hover,\n.ag-theme-alpine-dark .ag-chart-menu-close:hover {\n color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-chart-menu-close, .ag-theme-alpine-dark .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-chart-menu-close:hover .ag-icon, .ag-theme-alpine-dark .ag-chart-menu-close:hover .ag-icon {\n border-color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-chart-menu-close .ag-icon, .ag-theme-alpine-dark .ag-chart-menu-close .ag-icon {\n background: var(--ag-header-background-color);\n border: 1px solid var(--ag-border-color);\n border-right: none;\n}\n.ag-theme-alpine .ag-chart-settings-card-item.ag-not-selected:hover, .ag-theme-alpine-dark .ag-chart-settings-card-item.ag-not-selected:hover {\n opacity: 0.35;\n}\n.ag-theme-alpine .ag-ltr .ag-panel-title-bar-button, .ag-theme-alpine-dark .ag-ltr .ag-panel-title-bar-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-panel-title-bar-button, .ag-theme-alpine-dark .ag-rtl .ag-panel-title-bar-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-container, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-container {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-container, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-container {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-filter-toolpanel-instance-filter {\n border: none;\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-instance-filter {\n border-left: dashed 1px;\n border-left-color: var(--ag-border-color);\n margin-left: calc(var(--ag-icon-size) * 0.5);\n}\n\n.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-instance-filter {\n border-right: dashed 1px;\n border-right-color: var(--ag-border-color);\n margin-right: calc(var(--ag-icon-size) * 0.5);\n}\n\n.ag-theme-alpine .ag-set-filter-list, .ag-theme-alpine-dark .ag-set-filter-list {\n padding-top: calc(var(--ag-grid-size) * 0.5);\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-alpine .ag-layout-auto-height .ag-center-cols-container, .ag-theme-alpine .ag-layout-print .ag-center-cols-clipper, .ag-theme-alpine .ag-layout-print .ag-center-cols-container, .ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-container, .ag-theme-alpine-dark .ag-layout-print .ag-center-cols-clipper, .ag-theme-alpine-dark .ag-layout-print .ag-center-cols-container {\n min-height: 150px;\n}\n.ag-theme-alpine .ag-overlay-no-rows-wrapper.ag-layout-auto-height, .ag-theme-alpine-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px;\n}\n.ag-theme-alpine .ag-date-time-list-page-entry-is-current, .ag-theme-alpine-dark .ag-date-time-list-page-entry-is-current {\n background-color: var(--ag-alpine-active-color);\n}\n\n.ag-theme-alpine-dark {\n color-scheme: dark;\n}\n\n@font-face {\n font-family: \"agGridBalham\";\n src: url(data:font/woff2;charset=utf-8;base64,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);\n font-weight: normal;\n font-style: normal;\n}\n.ag-theme-balham, .ag-theme-balham-dark {\n --ag-balham-active-color: #0091ea;\n --ag-foreground-color: #000;\n --ag-background-color: #fff;\n --ag-header-background-color: #f5f7f7;\n --ag-tooltip-background-color: #cbd0d3;\n --ag-subheader-background-color: #e2e9eb;\n --ag-control-panel-background-color: #f5f7f7;\n --ag-border-color: #bdc3c7;\n --ag-odd-row-background-color: #fcfdfe;\n --ag-row-hover-color: #ecf0f1;\n --ag-column-hover-color: #ecf0f1;\n --ag-input-border-color: #95a5a6;\n --ag-invalid-color: #e02525;\n --ag-input-disabled-background-color: #ebebeb;\n --ag-checkbox-unchecked-color: #7f8c8d;\n --ag-input-focus-border-color: #719ECE;\n --ag-input-focus-box-shadow: 0 0 2px 1px var(--ag-input-focus-border-color);\n --ag-range-selection-border-color: var(--ag-balham-active-color);\n --ag-checkbox-checked-color: var(--ag-balham-active-color);\n --ag-checkbox-background-color: var(--ag-background-color);\n --ag-secondary-foreground-color: rgba(0, 0, 0, 0.54);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.38);\n --ag-subheader-toolbar-background-color: rgba(226, 233, 235, 0.5);\n --ag-row-border-color: rgba(189, 195, 199, 0.58);\n --ag-chip-background-color: rgba(0, 0, 0, 0.1);\n --ag-range-selection-background-color: rgba(0, 145, 234, 0.2);\n --ag-range-selection-background-color-2: rgba(0, 145, 234, 0.36);\n --ag-range-selection-background-color-3: rgba(0, 145, 234, 0.49);\n --ag-range-selection-background-color-4: rgba(0, 145, 234, 0.59);\n --ag-selected-row-background-color: rgba(0, 145, 234, 0.28);\n --ag-header-column-separator-color: rgba(189, 195, 199, 0.5);\n --ag-input-disabled-border-color: rgba(149, 165, 166, 0.3);\n --ag-header-column-separator-display: block;\n --ag-header-column-separator-height: 50%;\n --ag-grid-size: 4px;\n --ag-icon-size: 16px;\n --ag-row-height: calc(var(--ag-grid-size) * 7);\n --ag-header-height: calc(var(--ag-grid-size) * 8);\n --ag-list-item-height: calc(var(--ag-grid-size) * 6);\n --ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-input-height: calc(var(--ag-grid-size) * 4);\n --ag-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n --ag-font-size: 12px;\n --ag-icon-font-family: agGridBalham;\n --ag-border-radius: 2px;\n --ag-checkbox-border-radius: 3px;\n --ag-card-shadow: none;\n}\n\n.ag-theme-balham-dark {\n --ag-balham-active-color: #00B0FF;\n --ag-foreground-color: #F5F5F5;\n --ag-background-color: #2d3436;\n --ag-header-background-color: #1c1c1c;\n --ag-tooltip-background-color: #1c1f20;\n --ag-subheader-background-color: #111;\n --ag-control-panel-background-color: #202020;\n --ag-border-color: #424242;\n --ag-odd-row-background-color: #262c2e;\n --ag-row-hover-color: #3d4749;\n --ag-column-hover-color: #3d4749;\n --ag-input-border-color: #f0f0f0;\n --ag-input-disabled-background-color: rgba(48, 46, 46, 0.3);\n --ag-modal-overlay-background-color: rgba(45, 52, 54, 0.66);\n --ag-checkbox-unchecked-color: #ecf0f1;\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-disabled-foreground-color: rgba(245, 245, 245, 0.38);\n --ag-subheader-toolbar-background-color: rgba(17, 17, 17, 0.5);\n --ag-row-border-color: #5c5c5c;\n --ag-chip-background-color: rgba(245, 245, 245, 0.08);\n --ag-range-selection-background-color: rgba(0, 176, 255, 0.2);\n --ag-range-selection-background-color-2: rgba(0, 176, 255, 0.36);\n --ag-range-selection-background-color-3: rgba(0, 176, 255, 0.49);\n --ag-range-selection-background-color-4: rgba(0, 176, 255, 0.59);\n --ag-selected-row-background-color: rgba(0, 176, 255, 0.28);\n --ag-header-column-separator-color: rgba(66, 66, 66, 0.5);\n --ag-input-disabled-border-color: rgba(240, 240, 240, 0.3);\n --ag-header-foreground-color: rgba(245, 245, 245, 0.64);\n --ag-toggle-button-off-background-color: transparent;\n --ag-toggle-button-off-border-color: var(--ag-foreground-color);\n --ag-range-selection-chart-category-background-color: rgba(26, 177, 74, 0.5);\n --ag-range-selection-chart-background-color: rgba(45, 166, 255, 0.5);\n --ag-input-focus-box-shadow: 0 0 4px 1.5px var(--ag-input-focus-border-color);\n}\n\n.ag-theme-balham .ag-filter-toolpanel-header,\n.ag-theme-balham .ag-filter-toolpanel-search,\n.ag-theme-balham .ag-status-bar,\n.ag-theme-balham .ag-header-row,\n.ag-theme-balham .ag-multi-filter-group-title-bar, .ag-theme-balham-dark .ag-filter-toolpanel-header,\n.ag-theme-balham-dark .ag-filter-toolpanel-search,\n.ag-theme-balham-dark .ag-status-bar,\n.ag-theme-balham-dark .ag-header-row,\n.ag-theme-balham-dark .ag-multi-filter-group-title-bar {\n font-weight: 600;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-balham .ag-ltr input[class^=ag-]:not([type]), .ag-theme-balham .ag-ltr input[class^=ag-][type=text], .ag-theme-balham .ag-ltr input[class^=ag-][type=number], .ag-theme-balham .ag-ltr input[class^=ag-][type=tel], .ag-theme-balham .ag-ltr input[class^=ag-][type=date], .ag-theme-balham .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-balham .ag-ltr textarea[class^=ag-], .ag-theme-balham-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-balham-dark .ag-ltr textarea[class^=ag-] {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-rtl input[class^=ag-]:not([type]), .ag-theme-balham .ag-rtl input[class^=ag-][type=text], .ag-theme-balham .ag-rtl input[class^=ag-][type=number], .ag-theme-balham .ag-rtl input[class^=ag-][type=tel], .ag-theme-balham .ag-rtl input[class^=ag-][type=date], .ag-theme-balham .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-balham .ag-rtl textarea[class^=ag-], .ag-theme-balham-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-balham-dark .ag-rtl textarea[class^=ag-] {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-column-drop-vertical-empty-message, .ag-theme-balham .ag-status-bar, .ag-theme-balham-dark .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-status-bar {\n font-weight: 600;\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-balham.ag-dnd-ghost, .ag-theme-balham-dark.ag-dnd-ghost {\n font-size: var(--ag-font-size);\n font-weight: 600;\n}\n.ag-theme-balham .ag-tab, .ag-theme-balham-dark .ag-tab {\n border: 1px solid transparent;\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n margin: var(--ag-grid-size);\n margin-bottom: -1px;\n}\n.ag-theme-balham .ag-tab-selected, .ag-theme-balham-dark .ag-tab-selected {\n background-color: var(--ag-background-color);\n border-color: var(--ag-border-color);\n border-bottom-color: transparent;\n}\n.ag-theme-balham .ag-tabs-header, .ag-theme-balham-dark .ag-tabs-header {\n border-bottom: 1px solid var(--ag-border-color);\n}\n.ag-theme-balham .ag-column-drop-cell, .ag-theme-balham-dark .ag-column-drop-cell {\n height: calc(var(--ag-grid-size) * 6);\n}\n.ag-theme-balham .ag-column-drop-vertical-title, .ag-theme-balham-dark .ag-column-drop-vertical-title {\n color: var(--ag-foreground-color);\n}\n.ag-theme-balham .ag-column-drop-vertical-cell, .ag-theme-balham-dark .ag-column-drop-vertical-cell {\n margin-left: calc(var(--ag-grid-size) * 2);\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical-cell-text, .ag-theme-balham-dark .ag-column-drop-vertical-cell-text {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical-icon, .ag-theme-balham-dark .ag-column-drop-vertical-icon {\n color: var(--ag-secondary-foreground-color);\n}\n.ag-theme-balham .ag-ltr .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-rtl .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-column-drop-horizontal, .ag-theme-balham-dark .ag-column-drop-horizontal {\n height: var(--ag-header-height);\n}\n.ag-theme-balham .ag-column-drop-empty, .ag-theme-balham-dark .ag-column-drop-empty {\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-balham .ag-column-drop-horizontal-cell-text, .ag-theme-balham-dark .ag-column-drop-horizontal-cell-text {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical, .ag-theme-balham-dark .ag-column-drop-vertical {\n padding-top: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-menu-header, .ag-theme-balham-dark .ag-menu-header {\n background-color: var(--ag-header-background-color);\n}\n.ag-theme-balham .ag-overlay-loading-center, .ag-theme-balham-dark .ag-overlay-loading-center {\n background-color: var(--ag-background-color);\n border: 1px solid var(--ag-border-color);\n color: var(--ag-foreground-color);\n padding: calc(var(--ag-grid-size) * 4);\n}\n.ag-theme-balham .ag-tooltip, .ag-theme-balham-dark .ag-tooltip {\n border: none;\n}\n.ag-theme-balham .ag-panel-title-bar-button-icon, .ag-theme-balham-dark .ag-panel-title-bar-button-icon {\n font-size: calc(var(--ag-icon-size) + var(--ag-grid-size));\n}\n.ag-theme-balham .ag-chart-data-section,\n.ag-theme-balham .ag-chart-format-section, .ag-theme-balham-dark .ag-chart-data-section,\n.ag-theme-balham-dark .ag-chart-format-section {\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-balham .ag-group-toolbar, .ag-theme-balham-dark .ag-group-toolbar {\n background-color: var(--ag-subheader-toolbar-background-color);\n}\n.ag-theme-balham .ag-chart-tab, .ag-theme-balham-dark .ag-chart-tab {\n padding-top: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-balham .ag-charts-format-sub-level-group-item, .ag-theme-balham-dark .ag-charts-format-sub-level-group-item {\n margin-bottom: calc(var(--ag-grid-size) * 1.5);\n}\n.ag-theme-balham .ag-chart-menu-close, .ag-theme-balham-dark .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-balham .ag-chart-menu-close:hover .ag-icon, .ag-theme-balham-dark .ag-chart-menu-close:hover .ag-icon {\n border-color: var(--ag-border-color);\n}\n.ag-theme-balham .ag-chart-menu-close .ag-icon, .ag-theme-balham-dark .ag-chart-menu-close .ag-icon {\n background: var(--ag-header-background-color);\n border: 1px solid var(--ag-secondary-border-color);\n border-right: none;\n}\n\n.ag-theme-balham-dark {\n color-scheme: dark;\n}\n\n@font-face {\n font-family: \"agGridMaterial\";\n src: url(data:font/woff2;charset=utf-8;base64,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);\n font-weight: normal;\n font-style: normal;\n}\n.ag-theme-material {\n --ag-material-primary-color: #3f51b5;\n --ag-material-accent-color: #ff4081;\n --ag-foreground-color: rgba(0, 0, 0, 0.87);\n --ag-secondary-foreground-color: rgba(0, 0, 0, 0.54);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.38);\n --ag-background-color: #fff;\n --ag-header-background-color: #fff;\n --ag-tooltip-background-color: #fff;\n --ag-subheader-background-color: #eee;\n --ag-subheader-toolbar-background-color: rgba(238, 238, 238, 0.5);\n --ag-header-cell-hover-background-color: #f2f2f2;\n --ag-chip-background-color: #e2e2e2;\n --ag-range-selection-background-color: rgba(122, 134, 203, 0.1);\n --ag-range-selection-background-color-2: rgba(122, 134, 203, 0.19);\n --ag-range-selection-background-color-3: rgba(122, 134, 203, 0.27);\n --ag-range-selection-background-color-4: rgba(122, 134, 203, 0.34);\n --ag-range-selection-highlight-color: #fce4ec;\n --ag-row-hover-color: #fafafa;\n --ag-column-hover-color: #fafafa;\n --ag-control-panel-background-color: #fafafa;\n --ag-selected-row-background-color: #eee;\n --ag-checkbox-unchecked-color: #333;\n --ag-value-change-value-highlight-background-color: #00acc1;\n --ag-side-button-selected-background-color: transparent;\n --ag-range-selection-border-color: var(--ag-material-primary-color);\n --ag-checkbox-checked-color: var(--ag-material-accent-color);\n --ag-borders: none;\n --ag-borders-critical: solid 1px;\n --ag-border-color: #e2e2e2;\n --ag-grid-size: 8px;\n --ag-icon-size: 18px;\n --ag-header-height: calc(var(--ag-grid-size) * 7);\n --ag-row-height: calc(var(--ag-grid-size) * 6);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-list-item-height: calc(var(--ag-grid-size) * 4);\n --ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));\n --ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);\n --ag-checkbox-border-radius: 2px;\n --ag-toggle-button-switch-border-width: 2px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);\n --ag-font-family: \"Roboto\", sans-serif;\n --ag-font-size: 13px;\n --ag-icon-font-family: agGridMaterial;\n --ag-selected-tab-underline-color: var(--ag-material-primary-color);\n --ag-selected-tab-underline-width: 2px;\n --ag-input-focus-border-color: var(--ag-material-primary-color);\n --ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n --ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --ag-card-radius: 2px;\n --ag-invalid-color: #e02525;\n}\n\n.ag-theme-material .ag-filter-toolpanel-header,\n.ag-theme-material .ag-filter-toolpanel-search,\n.ag-theme-material .ag-status-bar,\n.ag-theme-material .ag-header-row,\n.ag-theme-material .ag-panel-title-bar-title,\n.ag-theme-material .ag-multi-filter-group-title-bar {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-material .ag-tab {\n height: calc(var(--ag-grid-size) * 4.5);\n flex: 1 1 auto;\n}\n.ag-theme-material .ag-tabs-header,\n.ag-theme-material .ag-column-drop-horizontal {\n background-color: var(--ag-subheader-background-color);\n}\n.ag-theme-material .ag-tabs-body {\n padding: calc(var(--ag-grid-size) * 0.5) 0;\n}\n.ag-theme-material .ag-tabs-body .ag-menu-list {\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-theme-material .ag-header-cell, .ag-theme-material .ag-header-group-cell {\n transition: background-color 0.5s;\n}\n.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing {\n bottom: 0;\n}\n.ag-theme-material .ag-cell-inline-editing {\n padding: var(--ag-grid-size);\n height: calc(var(--ag-row-height) + var(--ag-grid-size) * 3);\n border-color: var(--ag-border-color) !important;\n}\n.ag-theme-material .ag-has-focus .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n.ag-theme-material .ag-side-button-button {\n color: var(--ag-foreground-color);\n}\n.ag-theme-material .ag-column-drop-vertical {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n padding-top: var(--ag-grid-size);\n}\n.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n.ag-theme-material .ag-column-drop-vertical-cell {\n margin-left: 0;\n}\n.ag-theme-material .ag-column-drop-vertical-empty-message {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-status-bar {\n border: solid 1px;\n border-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-panel-column-select {\n border-top: solid 1px;\n border-top-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select, .ag-theme-material .ag-column-select-header {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select-header {\n height: var(--ag-header-height);\n}\n.ag-theme-material .ag-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.75) var(--ag-grid-size);\n}\n.ag-theme-material .ag-charts-format-sub-level-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.5) var(--ag-grid-size);\n}\n.ag-theme-material .ag-chart-data-section,\n.ag-theme-material .ag-chart-format-section {\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-material .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-material .ag-chart-menu-close .ag-icon {\n background: var(--ag-subheader-background-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]),\n.ag-theme-material input[class^=ag-][type=text],\n.ag-theme-material input[class^=ag-][type=number],\n.ag-theme-material input[class^=ag-][type=tel],\n.ag-theme-material input[class^=ag-][type=date],\n.ag-theme-material input[class^=ag-][type=datetime-local],\n.ag-theme-material textarea[class^=ag-] {\n background: transparent;\n color: var(--ag-foreground-color);\n font-family: inherit;\n font-size: inherit;\n height: calc(var(--ag-grid-size) * 5);\n padding-bottom: var(--ag-grid-size);\n border-width: 0;\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):focus,\n.ag-theme-material input[class^=ag-][type=text]:focus,\n.ag-theme-material input[class^=ag-][type=number]:focus,\n.ag-theme-material input[class^=ag-][type=tel]:focus,\n.ag-theme-material input[class^=ag-][type=date]:focus,\n.ag-theme-material input[class^=ag-][type=datetime-local]:focus,\n.ag-theme-material textarea[class^=ag-]:focus {\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-material-primary-color);\n outline: none;\n box-shadow: none;\n}\n.ag-theme-material input[class^=ag-]:not([type])::placeholder,\n.ag-theme-material input[class^=ag-][type=text]::placeholder,\n.ag-theme-material input[class^=ag-][type=number]::placeholder,\n.ag-theme-material input[class^=ag-][type=tel]::placeholder,\n.ag-theme-material input[class^=ag-][type=date]::placeholder,\n.ag-theme-material input[class^=ag-][type=datetime-local]::placeholder,\n.ag-theme-material textarea[class^=ag-]::placeholder {\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):disabled,\n.ag-theme-material input[class^=ag-][type=text]:disabled,\n.ag-theme-material input[class^=ag-][type=number]:disabled,\n.ag-theme-material input[class^=ag-][type=tel]:disabled,\n.ag-theme-material input[class^=ag-][type=date]:disabled,\n.ag-theme-material input[class^=ag-][type=datetime-local]:disabled,\n.ag-theme-material textarea[class^=ag-]:disabled {\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):invalid,\n.ag-theme-material input[class^=ag-][type=text]:invalid,\n.ag-theme-material input[class^=ag-][type=number]:invalid,\n.ag-theme-material input[class^=ag-][type=tel]:invalid,\n.ag-theme-material input[class^=ag-][type=date]:invalid,\n.ag-theme-material input[class^=ag-][type=datetime-local]:invalid,\n.ag-theme-material textarea[class^=ag-]:invalid {\n border-width: 0;\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-invalid-color);\n color: var(--ag-invalid-color);\n}\n.ag-theme-material .ag-standard-button {\n appearance: none;\n background-color: transparent;\n border: 0;\n color: var(--ag-material-primary-color);\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n padding: 0;\n text-transform: uppercase;\n}\n.ag-theme-material .ag-standard-button:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-theme-material.ag-dnd-ghost {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n}\n.ag-theme-material .ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-theme-material .ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 7);\n}\n.ag-theme-material .ag-ltr .ag-filter-apply-panel-button {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-filter-apply-panel-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-material .ag-layout-auto-height .ag-center-cols-container, .ag-theme-material .ag-layout-print .ag-center-cols-clipper, .ag-theme-material .ag-layout-print .ag-center-cols-container {\n min-height: 150px;\n}\n.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px;\n}\n.ag-theme-material .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 0 1px var(--ag-material-primary-color);\n}\n\n\r\n\r\ndiv.gantt {\r\n font-family: tahoma, arial, verdana, Sans-serif;\r\n font-size: 10px;\r\n color: #656565;\r\n}\r\n\r\n.gantt table {\r\n border-collapse: collapse;\r\n}\r\n\r\n.gantt td {\r\n padding: 0px;\r\n}\r\n\r\n\r\n\r\n.gmajorheading,\r\n.gminorheading,\r\n.gminorheadingwkend,\r\n.gtaskcell,\r\n.gtaskcellwkend {\r\n height: 19px;\r\n font-size: 12px;\r\n border: #efefef 1px solid;\r\n text-align: center;\r\n cursor: default\r\n}\r\n\r\n.gtasklist {\r\n height: 19px;\r\n min-width: 5px;\r\n max-width: 5px;\r\n width: 5px;\r\n border: #efefef 1px solid;\r\n border-right: none;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.gtaskheading,\r\n.gmajorheading,\r\n.gminorheading {\r\n background-color: #ffffff;\r\n font-weight: bold;\r\n font-size: 9px;\r\n white-space: nowrap;\r\n}\r\n\r\n.gtaskcellwkend,\r\n.gminorheadingwkend {\r\n background-color: #f7f7f7;\r\n font-weight: bold;\r\n font-size: 9px;\r\n white-space: nowrap;\r\n}\r\n\r\ntd.gtaskcell {\r\n text-align: left\r\n}\r\n\r\ntd.gspanning {\r\n border-left: none;\r\n border-right: none;\r\n}\r\n\r\n.gtaskcelldiv {\r\n position: relative;\r\n}\r\n\r\n\r\n\r\n.gtaskheading,\r\n.gname,\r\n.gtaskname,\r\n.gresource,\r\n.gduration,\r\n.gpccomplete,\r\n.gstartdate,\r\n.gplanstartdate,\r\n.gplanenddate,\r\n.gcost,\r\n.genddate {\r\n height: 18px;\r\n white-space: nowrap;\r\n border: #efefef 1px solid;\r\n}\r\n\r\n.gtaskbarcontainer.gplan {\r\n position: absolute !important;\r\n top: 0px;\r\n opacity: 0.3;\r\n background: white;\r\n z-index: 10000;\r\n border: 1px solid black;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.gstartdate div,\r\n.gplanstartdate,\r\n.gplanenddate,\r\n.gstartdate,\r\n.genddate {\r\n text-align: center;\r\n min-width: 70px;\r\n width: 105px;\r\n max-width: 105px;\r\n font-size: 10px;\r\n}\r\n\r\n.gtaskheading {\r\n text-align: center;\r\n}\r\n\r\n.gtaskname div,\r\n\r\n\r\n.gtaskname {\r\n min-width: 170px;\r\n max-width: 170px;\r\n width: 170px;\r\n font-size: 9px;\r\n border-left: none;\r\n}\r\n\r\n.gtaskheading,\r\n.gtaskname {\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n}\r\n\r\n.gselector {\r\n text-align: left;\r\n white-space: nowrap;\r\n min-width: 170px;\r\n max-width: 170px;\r\n width: 170px;\r\n}\r\n\r\n.gformlabel {\r\n position: relative;\r\n top: 0px;\r\n cursor: pointer;\r\n border: #ffffff 1px solid;\r\n margin-left: 2px;\r\n padding-left: 2px;\r\n padding-right: 2px;\r\n}\r\n\r\nspan.gformlabel:hover,\r\nspan.gselected {\r\n background-color: #dbecff;\r\n border: #cccccc 1px solid;\r\n}\r\n\r\nspan.gfoldercollapse {\r\n color: #000000;\r\n cursor: pointer;\r\n font-weight: bold;\r\n font-size: 12px;\r\n font-family: Courier, \"Courier New\", monospace;\r\n}\r\n\r\n.gtasktableh,\r\n.gtasktable {\r\n border-right: #efefef 1px solid;\r\n}\r\n\r\n.gcharttableh,\r\n.gtasktableh,\r\n.gtasktable,\r\n.gcharttable {\r\n border-collapse: collapse;\r\n}\r\n\r\n.gcharttable {\r\n border: #efefef 1px solid;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.ggroupitem {\r\n background-color: #fbfbfb;\r\n font-weight: bold;\r\n}\r\n\r\n.gmileitem,\r\n.glineitem {\r\n background-color: #ffffff;\r\n}\r\n\r\n\r\n\r\n.gitemhighlight td {\r\n background-image: none;\r\n background-color: #fffde5;\r\n}\r\n\r\n\r\n\r\n.gmilecaption,\r\n.ggroupcaption,\r\n.gcaption {\r\n font-weight: normal;\r\n font-size: 9px;\r\n text-align: left;\r\n white-space: nowrap;\r\n top: 1px;\r\n position: absolute;\r\n top: 2px;\r\n}\r\n\r\n.ggroupcaption,\r\n.gcaption {\r\n right: -126px;\r\n}\r\n\r\n\r\n\r\n.gtaskcomplete {\r\n float: left;\r\n overflow: hidden;\r\n}\r\n\r\n\r\n\r\n.gtaskcomplete {\r\n height: 5px;\r\n background-color: #000000;\r\n margin-top: 4px;\r\n opacity: 0.4;\r\n filter: alpha(opacity=40);\r\n}\r\n\r\n\r\n\r\n.gmilestone {\r\n font-size: 14px;\r\n position: absolute;\r\n top: -2px;\r\n}\r\n\r\n.gmdtop {\r\n top: 2px;\r\n overflow: hidden;\r\n width: 0px;\r\n height: 0px;\r\n border-bottom: 5px solid black;\r\n border-left: 5px solid transparent;\r\n border-top: 5px solid transparent;\r\n border-right: 5px solid transparent;\r\n}\r\n\r\n.gmdbottom {\r\n top: 2px;\r\n overflow: hidden;\r\n width: 0px;\r\n height: 0px;\r\n border-top: 5px solid black;\r\n border-left: 5px solid transparent;\r\n border-bottom: 5px solid transparent;\r\n border-right: 5px solid transparent;\r\n}\r\n\r\n\r\n\r\n.ggroupblack,\r\n.gtaskblue,\r\n.gtaskred,\r\n.gtaskgreen,\r\n.gtaskyellow,\r\n.gtaskpurple,\r\n.gtaskpink {\r\n height: 13px;\r\n filter: alpha(opacity=90);\r\n opacity: 0.9;\r\n margin-top: 1px;\r\n}\r\n\r\n\r\n\r\n.ggroupblack {\r\n height: 7px;\r\n background: #000000;\r\n margin-top: 2px;\r\n}\r\n\r\n.ggroupblackendpointleft {\r\n overflow: hidden;\r\n width: 0px;\r\n height: 0px;\r\n top: 2px;\r\n border-top: 4px solid black;\r\n border-left: 4px solid transparent;\r\n border-bottom: 4px solid transparent;\r\n border-right: 4px solid transparent;\r\n float: left;\r\n}\r\n\r\n.ggroupblackendpointright {\r\n overflow: hidden;\r\n width: 0px;\r\n height: 0px;\r\n top: 2px;\r\n border-top: 4px solid black;\r\n border-left: 4px solid transparent;\r\n border-bottom: 4px solid transparent;\r\n border-right: 4px solid transparent;\r\n float: right;\r\n}\r\n\r\n.ggroupblackcomplete {\r\n float: left;\r\n overflow: hidden;\r\n height: 3px;\r\n filter: alpha(opacity=80);\r\n opacity: 0.8;\r\n background-color: #777777;\r\n margin-top: 2px;\r\n margin-bottom: 2px;\r\n}\r\n\r\n.gtaskblue {\r\n background: rgb(58, 132, 195);\r\n \r\n background: linear-gradient(to bottom, rgba(58, 132, 195, 1) 0%, rgba(65, 154, 214, 1) 20%, rgba(75, 184, 240, 1) 40%, rgba(58, 139, 194, 1) 70%, rgba(38, 85, 139, 1) 100%);\r\n \r\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4bb8f0', endColorstr='#3a84c3', GradientType=0);\r\n \r\n}\r\n\r\n.gtaskred {\r\n background: rgb(196, 58, 58);\r\n \r\n background: linear-gradient(to bottom, rgba(196, 58, 58, 1) 0%, rgba(211, 65, 65, 1) 20%, rgba(239, 76, 76, 1) 40%, rgba(196, 58, 58, 1) 70%, rgba(135, 37, 37, 1) 100%);\r\n \r\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ef4c4c', endColorstr='#c43a3a', GradientType=0);\r\n \r\n}\r\n\r\n.gtaskgreen {\r\n background: rgb(80, 193, 58);\r\n \r\n background: linear-gradient(to bottom, rgba(80, 193, 58, 1) 0%, rgba(88, 209, 64, 1) 20%, rgba(102, 237, 75, 1) 40%, rgba(80, 193, 58, 1) 70%, rgba(53, 132, 37, 1) 100%);\r\n \r\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66ED4B', endColorstr='#50c13a', GradientType=0);\r\n \r\n}\r\n\r\n.gtaskyellow {\r\n background: rgb(247, 228, 56);\r\n \r\n background: linear-gradient(to bottom, rgba(247, 228, 56, 1) 0%, rgba(239, 239, 55, 1) 20%, rgba(255, 255, 58, 1) 40%, rgba(242, 236, 55, 1) 70%, rgba(241, 218, 54, 1) 100%);\r\n \r\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffff3a', endColorstr='#f7e438', GradientType=0);\r\n \r\n}\r\n\r\n.gtaskpurple {\r\n background: rgb(193, 58, 193);\r\n \r\n background: linear-gradient(to bottom, rgba(193, 58, 193, 1) 0%, rgba(211, 65, 211, 1) 20%, rgba(239, 76, 239, 1) 40%, rgba(193, 58, 193, 1) 70%, rgba(137, 38, 137, 1) 100%);\r\n \r\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ef4cef', endColorstr='#892689', GradientType=0);\r\n \r\n}\r\n\r\n.gtaskpink {\r\n background: rgb(249, 177, 245);\r\n \r\n background: linear-gradient(to bottom, rgba(249, 177, 245, 1) 0%, rgba(247, 192, 243, 1) 20%, rgba(247, 202, 244, 1) 40%, rgba(249, 192, 246, 1) 70%, rgba(252, 174, 247, 1) 100%);\r\n \r\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7caf4', endColorstr='#fcaef7', GradientType=0);\r\n \r\n}\r\n\r\n.gtaskbluecomplete,\r\n.gtaskredcomplete,\r\n.gtaskgreencomplete,\r\n.gtaskyellowcomplete,\r\n.gtaskpurplecomplete,\r\n.gtaskpinkcomplete {\r\n float: left;\r\n overflow: hidden;\r\n height: 5px;\r\n filter: alpha(opacity=40);\r\n opacity: 0.4;\r\n background-color: #000000;\r\n margin-top: 4px;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n@media print {\r\n .ggroupblack {\r\n height: 0px;\r\n border-top: 7px solid;\r\n border-color: #000000;\r\n }\r\n .gtaskblue {\r\n height: 0px;\r\n border-top: 13px solid;\r\n border-color: rgb(58, 132, 195);\r\n }\r\n .gtaskred {\r\n height: 0px;\r\n border-top: 13px solid;\r\n border-color: rgb(196, 58, 58);\r\n }\r\n .gtaskgreen {\r\n height: 0px;\r\n border-top: 13px solid;\r\n border-color: rgb(80, 193, 58);\r\n }\r\n .gtaskyellow {\r\n height: 0px;\r\n border-top: 13px solid;\r\n border-color: rgb(247, 228, 56);\r\n }\r\n .gtaskpurple {\r\n height: 0px;\r\n border-top: 13px solid;\r\n border-color: rgb(193, 58, 193);\r\n }\r\n .gtaskpink {\r\n height: 0px;\r\n border-top: 13px solid;\r\n border-color: rgb(249, 177, 245);\r\n }\r\n .gtaskbluecomplete,\r\n .gtaskredcomplete,\r\n .gtaskgreencomplete,\r\n .gtaskyellowcomplete,\r\n .gtaskpurplecomplete,\r\n .gtaskpinkcomplete {\r\n height: 0px;\r\n filter: alpha(opacity=40);\r\n opacity: 0.4;\r\n margin-top: -9px;\r\n border-top: 5px solid;\r\n border-color: #000000;\r\n }\r\n .ggroupblackcomplete {\r\n height: 0px;\r\n filter: alpha(opacity=80);\r\n opacity: 0.8;\r\n margin-top: -5px;\r\n border-top: 3px solid;\r\n border-color: #777777;\r\n }\r\n}\r\n\r\n\r\n\r\n.glinev {\r\n border-left: 1px solid;\r\n width: 0px;\r\n}\r\n\r\n.glineh {\r\n border-top: 1px solid;\r\n height: 0px;\r\n}\r\n\r\n.gDepFS,\r\n.gDepSS,\r\n.gDepSF,\r\n.gDepFF {\r\n border-color: #ff0000;\r\n}\r\n\r\n.gDepFSArw,\r\n.gDepSSArw {\r\n overflow: hidden;\r\n width: 0px;\r\n height: 0px;\r\n border-bottom: 4px solid transparent;\r\n border-left: 4px solid #ff0000;\r\n border-top: 4px solid transparent;\r\n border-right: 4px solid transparent;\r\n}\r\n\r\n.gDepFFArw,\r\n.gDepSFArw {\r\n overflow: hidden;\r\n width: 0px;\r\n height: 0px;\r\n border-bottom: 4px solid transparent;\r\n border-left: 4px solid transparent;\r\n border-top: 4px solid transparent;\r\n border-right: 4px solid #ff0000;\r\n}\r\n\r\n.gCurDate {\r\n border-color: #0000ff;\r\n}\r\n\r\ndiv.gtaskbarcontainer {\r\n z-index: 1;\r\n position: absolute;\r\n top: 0px\r\n}\r\n\r\n.JSGanttToolTip {\r\n position: absolute;\r\n display: block;\r\n z-index: 2;\r\n}\r\n\r\n.JSGanttToolTipcont {\r\n font-family: tahoma, arial, verdana;\r\n font-size: 10px;\r\n display: block;\r\n background: #ffffff;\r\n color: #656565\r\n}\r\n\r\n.gTaskInfo {\r\n background: #dbecff;\r\n width: 400px;\r\n border: #656565 1px solid;\r\n border-radius: 10px;\r\n padding: 4px 6px 4px 6px;\r\n float: left;\r\n}\r\n\r\n.gTtTitle {\r\n display: block;\r\n font-size: 12px;\r\n font-weight: bold;\r\n color: #404040;\r\n margin-left: 4px;\r\n margin-bottom: 1em;\r\n}\r\n\r\n.gTaskLabel {\r\n font-size: 11px;\r\n font-weight: bold;\r\n color: #656565;\r\n margin-left: 4px;\r\n}\r\n\r\n.gTaskText {\r\n position: absolute;\r\n left: 90px;\r\n padding-top: 1px;\r\n font-size: 10px;\r\n font-weight: normal;\r\n color: #656565;\r\n}\r\n\r\n.gTaskNotes {\r\n font-size: 11px;\r\n font-weight: normal;\r\n color: #323232;\r\n padding: 0 15px;\r\n display: block;\r\n}\r\n\r\n.gTIn {\r\n padding-top: 10px;\r\n}\r\n\r\n.gantt {\r\n min-width: 632px;\r\n \r\n}\r\n\r\n.gchartcontainer {\r\n \r\n line-height: 1;\r\n \r\n}\r\n\r\n.gcontainercol {\r\n position: relative;\r\n}\r\n\r\n\r\n\r\n.glistgrid {\r\n min-width: 132px;\r\n \r\n float: left;\r\n \r\n padding-right: 0px;\r\n padding-left: 0px;\r\n padding-bottom: 0px;\r\n padding-top: 0px;\r\n background-color: #ffffff;\r\n overflow: hidden;\r\n}\r\n\r\n.glistlbl {\r\n min-width: 132px;\r\n \r\n float: left;\r\n \r\n padding-right: 0px;\r\n padding-left: 0px;\r\n padding-bottom: 0px;\r\n padding-top: 0px;\r\n background-color: #ffffff;\r\n overflow: hidden;\r\n}\r\n\r\n.glabelfooter {\r\n clear: both;\r\n}\r\n\r\n.ggridfooter {\r\n clear: both;\r\n}\r\n\r\n.rhscrpad {\r\n width: 150px;\r\n position: absolute;\r\n top: 0px;\r\n height: 1px;\r\n}\r\n\r\n.gchartgrid {\r\n padding-right: 0px;\r\n padding-left: 0px;\r\n padding-bottom: 0px;\r\n padding-top: 0px;\r\n background-color: #ffffff;\r\n position: relative;\r\n overflow: auto;\r\n min-height: 0%;\r\n}\r\n\r\n.gchartlbl {\r\n padding-right: 0px;\r\n padding-left: 0px;\r\n padding-bottom: 0px;\r\n padding-top: 0px;\r\n background-color: #ffffff;\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n\r\n\r\n.gantt {\r\n _height: 100%\r\n}\r\n\r\n\r\n\r\ndiv .gantt {\r\n \r\n}\r\n\r\ndiv.gchartlbl,\r\ndiv.gchartgrid {\r\n \r\n}\r\n\r\n\r\n\r\ndiv.glistlbl,\r\ndiv.glistgrid {\r\n *right: 0px;\r\n \r\n _right: 532px;\r\n \r\n _margin-left: -532px;\r\n \r\n float: left;\r\n}\r\n\r\ndiv.gchartgrid {\r\n *padding-bottom: 20px;\r\n *overflow-y: hidden;\r\n}\r\n\r\n\r\n\r\ntd.gmajorheading div {\r\n *overflow: hidden;\r\n}\r\n\r\n\r\n\r\ntd.gspanning div {\r\n *overflow: hidden;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.ggroupblackendpointleft {\r\n _border-top: 4px solid black;\r\n _border-left: 4px solid pink;\r\n _border-bottom: 4px solid pink;\r\n _border-right: 4px solid pink;\r\n _filter: chroma(color=pink);\r\n}\r\n\r\n.ggroupblackendpointright {\r\n _border-top: 4px solid black;\r\n _border-left: 4px solid pink;\r\n _border-bottom: 4px solid pink;\r\n _border-right: 4px solid pink;\r\n _filter: chroma(color=pink);\r\n}\r\n\r\n.gmdtop {\r\n _border-left: 5px solid pink;\r\n _border-top: 5px solid pink;\r\n _border-right: 5px solid pink;\r\n _filter: chroma(color=pink);\r\n}\r\n\r\n.gmdbottom {\r\n _border-left: 5px solid pink;\r\n _border-bottom: 5px solid pink;\r\n _border-right: 5px solid pink;\r\n _filter: chroma(color=pink);\r\n}\r\n\r\n.gDepFSArw,\r\n.gDepSSArw {\r\n _border-bottom: 4px solid pink;\r\n _border-top: 4px solid pink;\r\n _border-right: 4px solid pink;\r\n _filter: chroma(color=pink);\r\n}\r\n\r\n.gDepFFArw,\r\n.gDepSFArw {\r\n _border-bottom: 4px solid pink;\r\n _border-left: 4px solid pink;\r\n _border-top: 4px solid pink;\r\n _filter: chroma(color=pink);\r\n}\r\n\r\n\r\n\r\n.glinediv {\r\n position: absolute;\r\n top: 0px;\r\n left: 0px;\r\n}\r\n\r\n.gantt-inputtable {\r\n width: 100%;\r\n max-height: 16px;\r\n}\r\n\r\n.gadditional,\r\n.gresource,\r\n.gduration,\r\n.gpccomplete,\r\n.gcost {\r\n text-align: center;\r\n width: 70px;\r\n max-width: 70px;\r\n font-size: 10px;\r\n}\r\n\r\n@media print {\r\n \r\n html,\r\n .gchartgrid {\r\n overflow: unset !important;\r\n }\r\n .glistgrid{\r\n float: none !important;\r\n }\r\n}\r\n\r\n\n\n\n.calendar {\n padding: 4px;\n -webkit-border-radius: 4px;\n -moz-border-radius: 4px;\n border-radius: 4px;\n direction: ltr;\n overflow-x: hidden;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n \n \n \n}\n.calendar:after {\n \n clear: both;\n content: \"\";\n display: block;\n}\n.calendar .calendar-rtl {\n direction: rtl;\n}\n.calendar .calendar-rtl .calendar-rtl table tr td span {\n float: right;\n}\n.calendar table {\n margin: auto;\n border-spacing: 0;\n}\n.calendar table td,\n.calendar table th {\n text-align: center;\n width: 20px;\n height: 20px;\n border: none;\n padding: 4px 5px;\n font-size: 12px;\n}\n.calendar .calendar-header {\n width: 100%;\n margin-bottom: 20px;\n border: 1px solid #ddd;\n}\n.calendar .calendar-header table {\n width: 100%;\n}\n.calendar .calendar-header table th {\n font-size: 22px;\n padding: 5px 10px;\n cursor: pointer;\n}\n.calendar .calendar-header table th:hover {\n background: #eeeeee;\n}\n.calendar .calendar-header table th.disabled,\n.calendar .calendar-header table th.disabled:hover {\n background: none;\n cursor: default;\n color: white;\n}\n.calendar .calendar-header table th.prev,\n.calendar .calendar-header table th.next {\n width: 20px;\n}\n.calendar .calendar-header .year-title {\n font-weight: bold;\n text-align: center;\n height: 20px;\n width: auto;\n}\n.calendar .calendar-header .year-neighbor {\n opacity: 0.4;\n}\n@media (max-width: 991px) {\n .calendar .calendar-header .year-neighbor {\n display: none;\n }\n}\n.calendar .calendar-header .year-neighbor2 {\n opacity: 0.2;\n}\n@media (max-width: 767px) {\n .calendar .calendar-header .year-neighbor2 {\n display: none;\n }\n}\n.calendar .months-container {\n width: 100%;\n display: none;\n}\n.calendar .months-container .month-container {\n float: left;\n text-align: center;\n height: 200px;\n padding: 0;\n}\n.calendar .months-container .month-container.month-2 {\n width: 16.66666667%;\n}\n.calendar .months-container .month-container.month-3 {\n width: 25%;\n}\n.calendar .months-container .month-container.month-4 {\n width: 33.33333333%;\n}\n.calendar .months-container .month-container.month-6 {\n width: 50%;\n}\n.calendar .months-container .month-container.month-12 {\n width: 100%;\n}\n.calendar table.month th.month-title {\n font-size: 16px;\n padding-bottom: 5px;\n}\n.calendar table.month th.day-header {\n font-size: 14px;\n}\n.calendar table.month tr td,\n.calendar table.month tr th {\n padding: 0;\n}\n.calendar table.month tr td.hidden,\n.calendar table.month tr th.hidden {\n display: none;\n}\n.calendar table.month td.week-number {\n cursor: default;\n font-weight: bold;\n border-right: 1px solid #eee;\n padding: 5px;\n}\n.calendar table.month td.day.round-left {\n -webkit-border-radius: 8px 0 0 8px;\n -moz-border-radius: 8px 0 0 8px;\n border-radius: 8px 0 0 8px;\n}\n.calendar table.month td.day.round-right {\n webkit-border-radius: 0 8px 8px 0 ;\n -moz-border-radius: 0 8px 8px 0;\n border-radius: 0 8px 8px 0;\n}\n.calendar table.month td.day .day-content {\n -webkit-border-radius: 4px;\n -moz-border-radius: 4px;\n border-radius: 4px;\n padding: 5px 6px;\n}\n.calendar table.month td.old,\n.calendar table.month td.new,\n.calendar table.month td.old:hover,\n.calendar table.month td.new:hover {\n background: none;\n cursor: default;\n}\n.calendar table.month td.disabled,\n.calendar table.month td.disabled:hover {\n color: #dddddd;\n}\n.calendar table.month td.disabled .day-content:hover,\n.calendar table.month td.disabled:hover .day-content:hover {\n background: none;\n cursor: default;\n}\n.calendar table.month td.range .day-content {\n background: rgba(0, 0, 0, 0.2);\n -webkit-border-radius: 0;\n -moz-border-radius: 0;\n border-radius: 0;\n}\n.calendar table.month td.range.range-start .day-content {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.calendar table.month td.range.range-end .day-content {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.calendar .calendar-loading-container {\n position: relative;\n text-align: center;\n min-height: 200px;\n}\n.calendar .calendar-loading-container .calendar-loading {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}\n.calendar .calendar-spinner {\n margin: 20px auto;\n width: 80px;\n text-align: center;\n}\n.calendar .calendar-spinner > div {\n width: 16px;\n height: 16px;\n margin: 5px;\n background-color: #333;\n border-radius: 100%;\n display: inline-block;\n -webkit-animation: sk-bouncedelay 1s infinite ease-in-out both;\n animation: sk-bouncedelay 1s infinite ease-in-out both;\n}\n.calendar .calendar-spinner > div.bounce1 {\n -webkit-animation-delay: -0.32s;\n animation-delay: -0.32s;\n}\n.calendar .calendar-spinner > div.bounce2 {\n -webkit-animation-delay: -0.16s;\n animation-delay: -0.16s;\n}\n\n.calendar-context-menu,\n.calendar-context-menu .submenu {\n border: 1px solid #ddd;\n background-color: white;\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);\n position: absolute;\n display: none;\n}\n.calendar-context-menu .item {\n position: relative;\n}\n.calendar-context-menu .item .content {\n padding: 5px 10px;\n cursor: pointer;\n display: table;\n width: 100%;\n white-space: nowrap;\n}\n.calendar-context-menu .item .content:hover {\n background: #eee;\n}\n.calendar-context-menu .item .content .text {\n display: table-cell;\n}\n.calendar-context-menu .item .content .arrow {\n display: table-cell;\n padding-left: 10px;\n text-align: right;\n}\n.calendar-context-menu .item .submenu {\n left: 100%;\n top: -1px;\n \n}\n.calendar-context-menu .item:hover > .submenu {\n display: block;\n}\n.table-striped .calendar table.month tr td,\n.table-striped .calendar table.month tr th {\n background-color: transparent;\n}\ntable.month td.day .day-content:hover {\n background: rgba(0, 0, 0, 0.2);\n cursor: pointer;\n}\n@-webkit-keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n }\n}\n@keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}\n\n\n.webbpm .btn {\n font-size: 14px;\n margin-bottom: 5px;\n}\n\n.webbpm .btn-link, .webbpm .btn-link > .btn,\n.webbpm .btn-link:hover, .webbpm .btn-link:hover > .btn,\n.webbpm .btn-link:focus, .webbpm .btn-link:focus > .btn,\n.webbpm .btn-link:active,.webbpm .btn-link:active > .btn {\n color: #337AB7;\n border: medium none;\n background: transparent;\n box-shadow: none;\n}\n\n.webbpm .btn-link:hover, .webbpm .btn-link:hover > .btn,\n.webbpm .btn-link:focus, .webbpm .btn-link:focus > .btn {\n text-decoration: underline;\n}\n\n.webbpm .btn-link > .btn {\n margin: 0;\n padding: 0;\n text-align: left;\n}\n\n\n.webbpm .signverification button {\n position: relative;\n padding-right: 40px;\n}\n.webbpm .signverification button::after {\n position: absolute;\n content: url(\"../img/icons/wax_seal.png\");\n top: 2px;\n right: 10px;\n}\n\n.webbpm .signverification-success button {\n position: relative;\n padding-right: 40px;\n}\n.webbpm .signverification-success button::after {\n position: absolute;\n content: url(\"../img/icons/wax_seal_yes.png\");\n top: 2px;\n right: 10px;\n}\n\n.webbpm .signverification-fail button {\n position: relative;\n padding-right: 40px;\n}\n.webbpm .signverification-fail button::after {\n position: absolute;\n content: url(\"../img/icons/wax_seal_no.png\");\n top: 2px;\n right: 10px;\n}\n\n.webbpm check-box label.control-label {\n float: none;\n width: auto;\n padding-top: 0;\n margin-right: 0;\n}\n\n.webbpm check-box label > span {\n width: 150px;\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\n\n.webbpm check-box label > input {\n margin-top: 4px;\n}\n\n.webbpm check-box.fixed-label-medium label > span {\n width: 240px;\n}\n.webbpm check-box.fixed-label label > span {\n width: 190px;\n}\n.webbpm check-box.fixed-label-small label > span {\n width: 140px;\n}\n.webbpm check-box.fixed-label-mini label > span {\n width: 90px;\n}\n.webbpm check-box.fixed-label-extra-mini label > span {\n width: 50px;\n}\n\n.webbpm check-box.free-label label > span,\n.webbpm check-box.fixed-label-medium > .form-group > label,\n.webbpm check-box.fixed-label > .form-group > label,\n.webbpm check-box.fixed-label-small > .form-group > label,\n.webbpm check-box.fixed-label-mini > .form-group > label,\n.webbpm check-box.fixed-label-extra-mini > .form-group > label {\n width: auto;\n}\n\n.webbpm check-box.check-invert label {\n display: flex;\n}\n.webbpm check-box.check-invert label > span {\n margin-left: 10px;\n margin-right: 0;\n order: 2;\n}\n\n.webbpm .date > div {\n width: 190px;\n}\n\n.webbpm .date.calendar > div {\n width: auto;\n}\n\n.webbpm .date input[type=\"text\"] {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.webbpm .mini > .date input {\n width: 90px;\n}\n.webbpm .extra-mini > .date input {\n width: 55px;\n}\n\n\n.webbpm .date .bootstrap-datetimepicker-widget {\n color: #333;\n font-size: 14px;\n border: 1px solid #ccc;\n padding: 10px 10px 0 10px;\n}\n\n.webbpm .date .bootstrap-datetimepicker-widget table thead tr:last-of-type th {\n padding-top: 4px;\n padding-bottom: 2px;\n}\n\n.webbpm .date .bootstrap-datetimepicker-widget table td.day {\n height: 25px;\n line-height: 25px;\n width: 25px;\n}\n\n.webbpm .date .bootstrap-datetimepicker-widget.dropdown-menu {\n width: 240px;\n}\n\n.webbpm .bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {\n border-bottom-color: #eee;\n}\n.webbpm .bootstrap-datetimepicker-widget.dropdown-menu.top:after {\n border-top-color: #eee;\n}\n\n.webbpm .bootstrap-datetimepicker-widget table td .btn,\n.webbpm .bootstrap-datetimepicker-widget table th .btn {\n text-align: center;\n}\n\n.webbpm .bootstrap-datetimepicker-widget table td.day:hover,\n.webbpm .bootstrap-datetimepicker-widget table td.hour:hover,\n.webbpm .bootstrap-datetimepicker-widget table td.minute:hover,\n.webbpm .bootstrap-datetimepicker-widget table td.second:hover {\n background-color: #ddd;\n}\n\n.webbpm .bootstrap-datetimepicker-widget table td.active,\n.webbpm .bootstrap-datetimepicker-widget table td.active:hover {\n background-color: #337ab7;\n}\n\n.webbpm .bootstrap-datetimepicker-widget table td span:hover {\n background: #dcdcdc;\n}\n.webbpm .fieldset {\n padding: 0;\n margin: 0;\n margin-bottom: 15px;\n border: 1px solid #ccc;\n box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.webbpm .fieldset > .layout_disabled {\n margin-top: 3px;\n}\n\n.webbpm .fieldset > .legend {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n padding: 5px 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.webbpm .fieldset > .legend + div {\n padding: 55px 15px 10px;\n}\n\n.webbpm .fieldset > .legend.ng-hide + div {\n padding-top: 10px;\n}\n\n.webbpm .fieldset > .legend + div > div:last-child,\n.webbpm .fieldset > .legend + div > div:last-child .form-group > label {\n margin-bottom: 0;\n}\n\n.webbpm .legend {\n display: block;\n width: auto;\n padding: 0;\n margin-bottom: 0px;\n font-size: 21px;\n line-height: inherit;\n border: 0;\n border-bottom: 0px solid #e5e5e5;\n}\n.webbpm .files-view {\n width: 320px;\n}\n\n.webbpm .files-view .files-view-wrapper {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin-bottom: 15px;\n}\n\n.webbpm .files-view-item {\n position: relative;\n text-align: center;\n width: 80px;\n margin: 15px 25px 0 0;\n}\n\n.webbpm .files-view-item .file-icon-preview {\n position: relative;\n width: 80px;\n height: 80px;\n}\n.webbpm .files-view-item .file-icon-preview::before {\n content: \"\";\n position: absolute;\n width: 80px;\n height: 80px;\n left: 0;\n background-image: url(\"../img/filepreview/placeholder.png\");\n}\n\n.webbpm .files-view-thumbnail {\n width: 80px;\n height: 80px;\n display: block;\n position: relative;\n font-size: 80px;\n text-align: center;\n margin: 0 auto;\n cursor: pointer;\n overflow: hidden;\n}\n.webbpm .files-view-thumbnail img {\n display: block;\n max-height: 100%;\n height: auto;\n margin: 0 auto;\n}\n.webbpm .files-view-thumbnail::before {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.webbpm .files-view-name {\n font-size: 12px;\n color: #428bca;\n width: 100%;\n margin-top: 4px;\n text-align: center;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.webbpm .files-view-name:hover {\n color: #014c8c;\n text-decoration: underline;\n}\n\n.webbpm .files-view-remove {\n cursor: pointer;\n top: -15px;\n right: 4px;\n position: absolute;\n}\n\n.webbpm .files-view .btn {\n position: absolute;\n top: -10px;\n right: -10px;\n width: 25px;\n height: 25px;\n padding: 0;\n margin: 0;\n border-radius: 20px !important;\n background-color: #ddd;\n background-image: url(\"../img/close-file.png\") !important;\n background-repeat: no-repeat !important;\n background-position: 4px 4px !important;\n}\n\n.webbpm .files-view-list .files-view-wrapper {\n flex-direction: column;\n}\n\n.webbpm .files-view-list .file-icon-preview {\n display: none;\n}\n\n.webbpm .files-view-list .files-view-item {\n width: max-content;\n}\n\n.webbpm .files-view-list .files-view-name {\n position: relative;\n font-size: 14px;\n padding-left: 20px;\n margin-top: 0;\n}\n.webbpm .files-view-list .files-view-name::before {\n content: \"\";\n position: absolute;\n width: 16px;\n height: 16px;\n left: 0;\n top: 2px;\n background-image: url(\"../img/filepreview/file.png\"); \n}\n.webbpm .files-view-list .files-view-name.file-avi::before {\n background-image: url(\"../img/filepreview/avi.png\");\n}\n.webbpm .files-view-list .files-view-name.file-doc::before {\n background-image: url(\"../img/filepreview/doc.png\");\n}\n.webbpm .files-view-list .files-view-name.file-docx::before {\n background-image: url(\"../img/filepreview/docx.png\");\n}\n.webbpm .files-view-list .files-view-name.file-gif::before {\n background-image: url(\"../img/filepreview/gif.png\");\n}\n.webbpm .files-view-list .files-view-name.file-jpg::before {\n background-image: url(\"../img/filepreview/jpg.png\");\n}\n.webbpm .files-view-list .files-view-name.file-mp4::before {\n background-image: url(\"../img/filepreview/mp4.png\");\n}\n.webbpm .files-view-list .files-view-name.file-odp::before {\n background-image: url(\"../img/filepreview/odp.png\");\n}\n.webbpm .files-view-list .files-view-name.file-ods::before {\n background-image: url(\"../img/filepreview/ods.png\");\n}\n.webbpm .files-view-list .files-view-name.file-odt::before {\n background-image: url(\"../img/filepreview/odt.png\");\n}\n.webbpm .files-view-list .files-view-name.file-pdf::before {\n background-image: url(\"../img/filepreview/pdf.png\");\n}\n.webbpm .files-view-list .files-view-name.file-png::before {\n background-image: url(\"../img/filepreview/png.png\");\n}\n.webbpm .files-view-list .files-view-name.file-ppt::before {\n background-image: url(\"../img/filepreview/ppt.png\");\n}\n.webbpm .files-view-list .files-view-name.file-pptx::before {\n background-image: url(\"../img/filepreview/pptx.png\");\n}\n.webbpm .files-view-list .files-view-name.file-rar::before {\n background-image: url(\"../img/filepreview/rar.png\");\n}\n.webbpm .files-view-list .files-view-name.file-txt::before {\n background-image: url(\"../img/filepreview/txt.png\");\n}\n.webbpm .files-view-list .files-view-name.file-xls::before {\n background-image: url(\"../img/filepreview/xls.png\");\n}\n.webbpm .files-view-list .files-view-name.file-xlsx::before {\n background-image: url(\"../img/filepreview/xlsx.png\");\n}\n.webbpm .files-view-list .files-view-name.file-zip::before {\n background-image: url(\"../img/filepreview/zip.png\");\n}\n\n.webbpm .files-view-list .btn.clear {\n top: -2px; \n right: -30px;\n}\n\n.webbpm .files-view-list.files-without-icon .files-view-name {\n padding-left: 0;\n}\n.webbpm .files-view-list.files-without-icon .files-view-name::before {\n display: none;\n}\n\n.webbpm .file-upload {\n display: inline-flex !important;\n white-space: nowrap;\n}\n\n.webbpm .file-upload > .file-name,\n.webbpm .file-upload > .file-btn {\n display: inline-block;\n vertical-align: middle;\n}\n\n.webbpm .file-upload button-component {\n margin-left: 5px;\n}\n\n.webbpm .file-upload .choose-file-btn,\n.webbpm .file-upload .download-btn,\n.webbpm .file-upload .clear {\n width: 34px;\n height: 34px;\n margin-bottom: 0;\n background-repeat: no-repeat !important;\n background-position: 50% 50% !important;\n}\n\n.webbpm .file-upload .choose-file-btn {\n background-image: url(\"../img/upload.png\") !important;\n}\n.webbpm .file-upload .download-btn {\n background-image: url(\"../img/download.png\") !important;\n}\n.webbpm .file-upload .clear {\n background-image: url(\"../img/delete.png\") !important;\n}\n\n\n\n.webbpm form-component {\n flex: 1 1 auto;\n}\n\n.webbpm .gtaskname,\n.webbpm .gtaskname div,\n.webbpm .gtaskname div > span,\n.webbpm .gresource,\n.webbpm .gduration,\n.webbpm .gpccomplete,\n.webbpm .gstartdate,\n.webbpm .gstartdate div,\n.webbpm .gcost,\n.webbpm .gplanstartdate,\n.webbpm .gplanenddate,\n.webbpm .genddate,\n.webbpm .genddate div,\n.webbpm .gmilecaption,\n.webbpm .ggroupcaption,\n.webbpm .gcaption,\n.webbpm .gmajorheading,\n.webbpm .gminorheading,\n.webbpm .gtaskcellwkend,\n.webbpm .gminorheadingwkend,\n.webbpm .gadditional,\n.webbpm .gresource,\n.webbpm .gduration,\n.webbpm .gpccomplete,\n.webbpm .gcost {\n font-size: 12px;\n font-weight: normal;\n}\n\n.webbpm .gtaskname .gselector {\n font-size: 0px;\n}\n\n.webbpm .gtaskheading,\n.webbpm .ggroupitem {\n font-size: 12px;\n font-weight: normal;\n font-family: SegoeB;\n}\n\n.webbpm .gmajorheading {\n font-size: 12px;\n}\n.webbpm .gminorheading,\n.webbpm .gminorheadingwkend {\n font-size: 10px;\n}\n\n.webbpm .gadditional.gantt-additional-cell {\n width: 100px;\n max-width: 100px;\n border: 1px solid #efefef;\n}\n\n.webbpm .gadditional.gantt-additional-cell > div,\n.webbpm .gtaskname > div {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n padding-left: 2px;\n padding-right: 2px;\n}\n\n.webbpm .gantt-group,\n.webbpm .gantt-task-ASSIGNED,\n.webbpm .gantt-task-CHECKING,\n.webbpm .gantt-task-COMPLETED,\n.webbpm .gantt-task-ARCHIVED {\n height: 13px;\n}\n\n.webbpm .gantt-group {\n height: 7px;\n background: #000000;\n margin-top: 2px;\n}\n\n.webbpm .gantt-groupendpointleft {\n float: left;\n overflow: hidden;\n width: 0px;\n height: 0px;\n top: 2px;\n border-top: 4px solid black;\n border-left: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-right: 4px solid transparent;\n}\n\n.webbpm .gantt-groupendpointright {\n float: right;\n overflow: hidden;\n width: 0px;\n height: 0px;\n top: 2px;\n border-top: 4px solid black;\n border-left: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-right: 4px solid transparent;\n}\n\n.webbpm .gtaskbarcontainer {\n display: table;\n}\n.webbpm .gantt-task-ASSIGNED,\n.webbpm .gantt-task-CHECKING,\n.webbpm .gantt-task-COMPLETED,\n.webbpm .gantt-task-ARCHIVED {\n display: table-cell;\n vertical-align: middle;\n}\n\n.webbpm .gantt-task-ASSIGNED {\n background: #3bcaf2; \n}\n\n.webbpm .gantt-task-CHECKING {\n background: #f6dc7b; \n}\n\n.webbpm .gantt-task-COMPLETED {\n background: #8ce262; \n}\n\n.webbpm .gantt-task-ARCHIVED {\n background: #cdcdcd; \n}\n\n.webbpm .gantt-task-ASSIGNEDcomplete,\n.webbpm .gantt-task-CHECKINGcomplete,\n.webbpm .gantt-task-COMPLETEDcomplete,\n.webbpm .gantt-task-ARCHIVEDcomplete {\n display: none;\n overflow: hidden;\n height: 5px;\n background-color: #000000;\n filter: alpha(opacity=30);\n opacity: 0.3;\n}\n\n.webbpm .gantt-groupcomplete {\n display: none;\n overflow: hidden;\n height: 3px;\n background-color: #fff;\n filter: alpha(opacity=50);\n opacity: 0.5\n}\n\n.webbpm .gDepFS,\n.webbpm .gDepSS,\n.webbpm .gDepSF,\n.webbpm .gDepFF {\n border-color: #6b7580;\n}\n.webbpm .gDepFSArw,\n.webbpm .gDepSSArw {\n border-left-color: #6b7580;\n}\n\n.webbpm span.gselected,\n.webbpm span.gformlabel:hover {\n border: 1px solid #c6cdd3;\n background-color: #e0e5e9;\n}\n\n.webbpm .gCurDate {\n border-color: #78858c;\n}\n\n.webbpm grid {\n margin-bottom: 15px;\n}\n\n.webbpm grid,\n.webbpm grid-v2,\n.webbpm tree-grid,\n.webbpm paging-grid,\n.webbpm link-field,\n.webbpm static-column-grid,\n.webbpm in-memory-static-column-grid,\n.webbpm route-param-filter-grid,\n.webbpm in-memory-route-param-filter-grid,\n.webbpm static-column-tree-grid,\n.webbpm static-column-link-field,\n.webbpm auto-height-grid,\n.webbpm no-initial-loading-grid,\n.webbpm editable-one-to-many-field,\n.webbpm .tree-grid,\n.webbpm .paging-grid,\n.webbpm .static-column-grid,\n.webbpm .in-memory-static-column-grid,\n.webbpm .route-param-filter-grid,\n.webbpm .in-memory-route-param-filter-grid,\n.webbpm .static-column-tree-grid,\n.webbpm .static-column-link-field,\n.webbpm .auto-height-grid,\n.webbpm .editable-one-to-many-field {\n display: flex;\n width: 100%;\n height: 300px;\n}\n\n.webbpm editable-grid {\n flex: 1 1 auto;\n}\n\n.webbpm .grid,\n.webbpm .link-field {\n display: flex;\n width: 100%; \n height: 100%;\n}\n\n.webbpm .grid > ag-grid-angular,\n.webbpm .link-field > ag-grid-angular {\n width: 100%;\n height: 100%;\n}\n\n.webbpm .link-field .link-field-label {\n display: block;\n}\n\n.webbpm ag-grid-angular .ag-root-wrapper {\n border: 0;\n}\n\n.webbpm ag-grid-angular .ag-root {\n border: 1px solid #ccc;\n}\n\n.webbpm ag-grid-angular .ag-header {\n color: #fff;\n background: #b9c0ca;\n border-bottom: 1px solid #ccc;\n font-weight: 600;\n line-height: 1.4;\n}\n\n.webbpm ag-grid-angular .ag-header-cell {\n text-align: left;\n}\n\n.webbpm ag-grid-angular .ag-header-cell,\n.webbpm ag-grid-angular .ag-header-group-cell {\n padding-left: 2px;\n padding-right: 2px;\n}\n\n.webbpm ag-grid-angular .ag-row {\n border-bottom: 0;\n}\n\n.webbpm ag-grid-angular .ag-row-odd {\n background-color: #eceeef;\n}\n\n.webbpm ag-grid-angular .ag-row-even {\n background-color: #fff;\n}\n\n.webbpm ag-grid-angular .ag-row.ag-row-selected {\n background-color: #bcedfc !important;\n}\n.webbpm ag-grid-angular .ag-row.ag-row-selected::before {\n display: none;\n}\n\n.webbpm ag-grid-angular .ag-root .ag-cell-no-focus {\n border-top: 2px solid transparent;\n border-bottom: 1px dotted #ccc;\n border-right: 1px dotted #ccc;\n}\n\n.webbpm ag-grid-angular .ag-row > div:last-of-type {\n border-right: 0;\n}\n\n.webbpm ag-grid-angular .wb-row-disabled {\n color: #999;\n}\n\n.webbpm ag-grid-angular .ag-row.wb-row-unselectable {\n background-color: #999;\n}\n\n.webbpm ag-grid-angular .wb-cell-disabled {\n color: #999;\n}\n\n.webbpm ag-grid-angular .ag-cell-focus {\n border-right: none;\n border: 1px solid transparent;\n}\n\n.webbpm ag-grid-angular .ag-cell-not-inline-editing {\n padding-left: 2px;\n padding-right: 2px;\n}\n\n.webbpm ag-grid-angular .ag-row-group-indent-1 {\n padding-left: 16px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-2 {\n padding-left: 32px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-3 {\n padding-left: 48px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-4 {\n padding-left: 64px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-5 {\n padding-left: 80px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-6 {\n padding-left: 96px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-7 {\n padding-left: 112px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-8 {\n padding-left: 128px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-9 {\n padding-left: 144px;\n}\n.webbpm ag-grid-angular .ag-row-group-indent-10 {\n padding-left: 160px;\n}\n\n\n.webbpm editable-grid ag-grid-angular {\n position: static;\n}\n\n.webbpm editable-grid .ag-popup-editor {\n z-index: auto;\n}\n\n.webbpm editable-grid .ag-cell.ag-cell-value.wb-invalid {\n border-color: #e46161;\n}\n\n.webbpm text-field-grid-editor label ~ .component-float,\n.webbpm number-field-grid-editor label ~ .component-float {\n width: auto;\n}\n\n.webbpm ag-grid-angular .ag-floating-bottom {\n border-top: 0;\n}\n\n.webbpm ag-grid-angular .ag-header-cell .ag-sort-indicator-container {\n display: flex;\n align-items: center;\n}\n\n.webbpm ag-grid-angular .ag-header-cell .ag-sort-indicator-container .ag-sort-indicator-icon.ag-sort-order {\n display: block;\n font-size: 9px;\n margin-top: -5px;\n}\n\n.webbpm ag-grid-angular .ag-header-cell .ag-header-checkbox-container {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.webbpm ag-grid-angular .ag-header-cell .ag-header-icon .ag-icon {\n display: flex;\n align-items: center;\n}\n\n.webbpm ag-grid-angular .ag-checkbox-input-wrapper:focus-within, \n.webbpm ag-grid-angular .ag-checkbox-input-wrapper:active {\n box-shadow: none;\n}\n\n.webbpm ag-grid-angular {\n position: static;\n}\n\n.webbpm .ag-icon-cell-clear-button {\n background-color: transparent;\n background-image: url(\"../img/grid/clear_cell.png\") !important;\n background-position: center;\n background-repeat: no-repeat;\n background-size: 18px 18px;\n height: 18px;\n opacity: 1;\n width: 18px;\n display: inline-block;\n}\n\n.webbpm .ag-grid-cell-wrap-text {\n white-space: normal !important;\n}\n\n\n.webbpm grid .grid,\n.webbpm paging-grid .grid {\n position: relative;\n}\n\n.webbpm grid .grid > ag-grid-angular,\n.webbpm paging-grid .grid > ag-grid-angular {\n height: auto !important;\n}\n\n.webbpm grid .ag-paging-panel .btn,\n.webbpm paging-grid .ag-paging-panel .btn {\n margin-bottom: 0;\n}\n\n.webbpm grid .ag-paging-panel input,\n.webbpm grid .ag-paging-panel select,\n.webbpm paging-grid .ag-paging-panel input,\n.webbpm paging-grid .ag-paging-panel select {\n height: 32px;\n}\n\n.webbpm paging-grid .fa-play.btnPrevious,\n.webbpm grid .fa-play.btnPrevious,\n.webbpm paging-editable-grid .fa-play.btnPrevious {\n -webkit-transform: rotateY(180deg);\n -moz-transform: rotateY(180deg);\n -ms-transform: rotateY(180deg);\n -o-transform: rotateY(180deg);\n transform: rotateY(180deg);\n}\n\n\n.webbpm .grid-loading-in-progress {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: #000;\n opacity: 0.2;\n z-index: 1;\n padding-top: 100px;\n}\n\n.webbpm .grid-loading-in-progress .progress-indicator {\n background: url(\"../img/progress.gif\") no-repeat center;\n width: 60px;\n height: 60px;\n}\n\n\n.webbpm ag-grid-angular .ag-root-wrapper {\n overflow: visible;\n}\n\n.webbpm ag-grid-angular .ag-root-wrapper-body.ag-layout-normal {\n height: auto;\n}\n\n.grid-configuration {\n width: 520px;\n}\n.grid-configuration .modal-body {\n height: 600px;\n overflow-y: scroll;\n margin-bottom: 15px;\n}\n.grid-configuration .table>.thead {\n display: table-header-group;\n}\n.ag-header-cell:hover .grid-setting-icon {\n display: block;\n}\n.grid-setting-icon {\n display: none;\n position: absolute;\n right: 0;\n vertical-align: middle;\n padding-left: 22px;\n width: 22px;\n height: 22px;\n background: url(../img/icons/menu.png) no-repeat;\n}\n.grid-setting-checkbox {\n cursor: pointer;\n background-color: transparent;\n background-position: center;\n background-repeat: no-repeat;\n background-size: 12px 12px;\n height: 12px;\n opacity: 1;\n width: 12px;\n display: inline-block;\n}\n.webbpm grid-configurator-dialog ag-grid-angular .ag-row ,\n.webbpm grid-configurator-dialog ag-grid-angular .ag-row.ag-row-selected {\n color: #212121 !important;\n background-color: #fff !important;\n}\n\n\n.webbpm iframe-window {\n display: flex;\n}\n\n.webbpm iframe-window > iframe {\n width: 100%;\n height: 100%;\n}\n\n.webbpm .many-to-many .link-field {\n position: relative;\n}\n\n.webbpm .many-to-many .link-field .msg{\n bottom: 20px;\n}\n\n.webbpm .many-to-many .link-field .msg > .arrow {\n top: auto;\n bottom: -4px;\n border-top: 4px solid #8fbfd8;\n border-bottom: none;\n}\n\n.webbpm .many-to-many .link-field .msg > .arrow::before {\n border-top: 2px solid #c3defa;\n border-bottom: none;\n top: -4px;\n}\n\n.webbpm .many-to-many .modal-dialog {\n width: 800px;\n}\n\n.webbpm .many-to-many-move-buttons button.btn {\n width: 32px;\n height: 32px;\n padding: 4px 0 6px 0;\n margin: 2px;\n text-align: center;\n}\n\n.webbpm .many-to-many-move-buttons button input {\n width: 32px;\n height: 32px;\n padding: 6px;\n text-align: center;\n}\n\n.webbpm .many-to-many-grids-panel grid,\n.webbpm .many-to-many-grids-panel link-field,\n.webbpm .many-to-many-imitation grid,\n.webbpm .many-to-many-imitation link-field,\n.webbpm .many-to-many-imitation in-memory-static-column-grid,\n.webbpm .many-to-many-imitation static-column-link-field {\n width: 45%;\n}\n\n.webbpm .many-to-many-grids-panel .grid,\n.webbpm .many-to-many-grids-panel .link-field,\n.webbpm .many-to-many-grids-panel .grid > .ag-theme-balham,\n.webbpm .many-to-many-grids-panel .link-field > .ag-theme-balham,\n.webbpm .many-to-many-grids-panel .many-to-many-move-buttons .btn,\n.webbpm .many-to-many-imitation .grid,\n.webbpm .many-to-many-imitation .link-field,\n.webbpm .many-to-many-imitation .grid > .ag-theme-balham,\n.webbpm .many-to-many-imitation .link-field > .ag-theme-balham,\n.webbpm .many-to-many-imitation .many-to-many-move-buttons .btn {\n width: 100%;\n}\n\n.webbpm .many-to-many-grids-panel .many-to-many-move-buttons,\n.webbpm .many-to-many-imitation .many-to-many-move-buttons {\n width: 10%;\n}\n\n.webbpm .many-to-many-imitation grid,\n.webbpm .many-to-many-imitation link-field {\n height: 500px;\n}\n\n.webbpm .many-to-many.button-right link-field {\n margin-right: 5px;\n}\n\n.webbpm .many-to-many.button-right button {\n margin-left: auto;\n}\n\n\n@media screen and (min-width: 1280px) {\n .webbpm .many-to-many-grids-panel grid,\n .webbpm .many-to-many-grids-panel link-field,\n .webbpm .many-to-many-imitation grid,\n .webbpm .many-to-many-imitation link-field,\n .webbpm .many-to-many-imitation in-memory-static-column-grid,\n .webbpm .many-to-many-imitation static-column-link-field {\n width: 46.5%;\n }\n .webbpm .many-to-many-grids-panel .many-to-many-move-buttons,\n .webbpm .many-to-many-imitation .many-to-many-move-buttons {\n width: 7%;\n }\n}\n@media screen and (min-width: 1600px) {\n .webbpm .many-to-many-grids-panel grid,\n .webbpm .many-to-many-grids-panel link-field,\n .webbpm .many-to-many-imitation grid,\n .webbpm .many-to-many-imitation link-field,\n .webbpm .many-to-many-imitation in-memory-static-column-grid,\n .webbpm .many-to-many-imitation static-column-link-field {\n width: 47.5%;\n }\n .webbpm .many-to-many-grids-panel .many-to-many-move-buttons,\n .webbpm .many-to-many-imitation .many-to-many-move-buttons {\n width: 5%;\n }\n}\n\n.webbpm .radio-btn {\n position: relative;\n width: auto;\n clear: both;\n}\n\n.webbpm .radio-btn > label {\n display: block;\n width: auto;\n font-size: 14px;\n font-weight: normal;\n}\n\n.webbpm .form-group input[type=\"radio\"] {\n box-shadow: none;\n}\n\n.webbpm [class*=\"fixed-label\"] label ~ .radio-content label {\n width: auto;\n}\n\n.webbpm ul.nav-radios > li ul.nav-radios {\n margin-left: 15px;\n}\n\n.webbpm .form-group .form-radio-group {\n display: flex;\n flex-direction: row;\n}\n\n.webbpm .form-group .form-radio-group * {\n font-size: 14px;\n}\n\n.webbpm .form-group .form-radio-group + .form-radio-group > .control-label,\n.webbpm .form-group .radio-btn .control-label + .control-label {\n padding-top: 0;\n}\n\n.webbpm .radio-horizontal .form-group .form-radio-group + .form-radio-group > .control-label,\n.webbpm .radio-horizontal .form-group .radio-btn .control-label + .control-label {\n padding-top: 5px;\n}\n\n.webbpm .form-group label.radio-group {\n display: flex;\n}\n\n.webbpm .radio-btn ,\n.webbpm .radio-content {\n display: flex;\n flex-direction: column;\n}\n.webbpm .radio-horizontal .radio-btn,\n.webbpm .radio-horizontal .radio-content {\n flex-direction: row;\n}\n\n.webbpm .radio-block .radio-content label,\n.webbpm .radio-block .radio-btn label {\n width: auto;\n}\n\n.webbpm .radio-horizontal > .form-group .radio-content > *,\n.webbpm .radio-horizontal > .form-group .radio-btn > * {\n margin-left: 12px;\n}\n\n.webbpm .radio-horizontal > .form-group .radio-btn label:first-of-type,\n.webbpm .radio-horizontal > .form-group .radio-content div:first-of-type {\n margin-left: 0;\n}\n\n.webbpm .radio-horizontal > .form-group .radio-content label {\n width: auto;\n margin-right: 5px;\n}\n\n.webbpm .radio-horizontal > .form-group .radio-group,\n.webbpm .radio-block label.radio-group { \n display: inline-flex;\n}\n\n.webbpm .radio-horizontal > .form-group .control-label > span,\n.webbpm .radio-block.radio-horizontal > .form-group .control-label > span {\n min-width: auto;\n}\n\n.webbpm .radio-block .control-label {\n font-weight: normal;\n}\n\n.webbpm .radio-block .control-label > span {\n display: inline-block;\n vertical-align: top;\n}\n\n.webbpm .radio-block .control-label > input[type=\"radio\"] {\n margin-top: 6px;\n margin-right: 2px;\n}\n\n.webbpm select {\n padding: 5px 12px;\n color: #555;\n background-color: #fff;\n border: 1px solid #ccc;\n box-shadow: none;\n border-radius: 0;\n}\n\n.webbpm .selectize-input {\n padding-right: 20px;\n}\n\n.webbpm [page-object].red-border .selectize-input {\n border-color: #e46161 !important;\n}\n\n.webbpm .selectize-control.single .selectize-input::after {\n right: 5px;\n}\n\n.webbpm .selectize-control.plugin-clear_button .selectize-input {\n padding-right: 40px;\n}\n.webbpm .selectize-control.plugin-clear_button .clearAll {\n right: 20px;\n}\n\n.webbpm auto-complete .selectize-control.single .selectize-input {\n position: relative;\n padding-right: 30px;\n}\n.webbpm auto-complete .selectize-control.single .selectize-input::after {\n content: \"\\f52a\";\n display: block;\n position: absolute;\n font-family: bootstrap-icons;\n font-size: 16px;\n right: 8px;\n top: 8px;\n height: auto;\n width: auto;\n margin: 0;\n border: 0;\n}\n\n.webbpm .selectize-control .selectize-input.disabled {\n background-color: #eee;\n opacity: 1;\n}\n\n.webbpm .selectize-control.form-control,\n.webbpm .selectize-dropdown.form-control {\n border: 0;\n padding: 0;\n}\n.webbpm .selectize-control.form-control {\n font-size: 0;\n}\n.webbpm .selectize-dropdown,\n.webbpm .selectize-input,\n.webbpm .selectize-input input {\n font-size: 14px;\n}\n\n.webbpm .selectize-dropdown-content {\n background-color: #fff;\n border: 1px solid #CCC;\n}\n\n.webbpm .selectize-control.single .selectize-input > .item {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.webbpm .selectize-dropdown .active {\n color: #fff;\n background-color: #4797cc;\n}\n\n.webbpm .selectize-dropdown .more_values {\n color: #fff;\n padding: 7px 8px;\n}\n\n.webbpm .selectize-dropdown .more_values {\n background-color: #e46161;\n}\n\n.webbpm .selectize-dropdown .more_values p {\n margin: 0;\n}\n\n.webbpm tab-container {\n display: flex;\n flex: 1 1 auto;\n}\n\n.webbpm tab-container > div {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n}\n\n.webbpm tab-container .tab-active {\n flex: 1 1 auto;\n}\n\n.webbpm tab-container .tab-active > div {\n height: 100%;\n width: 100%;\n}\n\n.webbpm .nav-tabs {\n margin-bottom: 0;\n}\n\n.webbpm .nav-tabs .nav-item + .nav-item {\n margin-left: 0.2rem;\n}\n\n.webbpm .nav-tabs ~ .tab-active > .active {\n padding: 15px;\n border: 1px solid #CCD1D7;\n border-radius: 4px;\n background: #fff;\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.webbpm .nav-tabs ~ .tab-active > .active::after {\n display: block;\n clear: both;\n content: \" \";\n}\n\n.webbpm .nav-tabs ~ .tab-active > .active > * {\n margin-bottom: 15px;\n}\n.webbpm .nav-tabs ~ .tab-active > .active > *:last-child {\n margin-bottom: 0;\n}\n\n.webbpm .nav-tabs .active .nav-link {\n background-color: #fff;\n border-color: #CCD1D7 #CCD1D7 transparent;\n}\n\n\n.webbpm tab-container.tab-menu {\n display: table;\n width: 100%;\n}\n\n.webbpm .tab-menu > div > tab-item {\n display: none;\n}\n\n.webbpm .tab-menu > div > .nav-tabs,\n.webbpm .tab-menu > div > .tab-active {\n display: table-cell;\n vertical-align: top;\n}\n\n.webbpm .tab-menu > div > .nav-tabs ~ .tab-active {\n width: 100%;\n border-radius: 4px;\n}\n\n.webbpm .tab-menu > div > .nav-tabs {\n min-width: 200px;\n border-bottom: 0;\n}\n\n.webbpm .tab-menu > div > .nav-tabs > li {\n float: none;\n list-style: outside none none;\n padding: 5px 10px 5px 25px;\n margin: 0px;\n line-height: 1.2em;\n border: 1px solid transparent;\n background: transparent url(\"../img/list-marker.png\") no-repeat scroll 10px 10px;\n}\n\n.webbpm .tab-menu > div > .nav-tabs > li.menu-header {\n text-transform: uppercase;\n font-weight: bold;\n}\n\n.webbpm .tab-menu > div > .nav-tabs > li > a {\n color: #000;\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n.webbpm .tab-menu > div > .nav-tabs > li.active {\n background-color: #fff;\n border-width: 1px 0px 1px 1px;\n border-style: solid none solid solid;\n border-color: #CCD1D7 transparent #CCD1D7 #CCD1D7;\n -moz-border-top-colors: none;\n -moz-border-right-colors: none;\n -moz-border-bottom-colors: none;\n -moz-border-left-colors: none;\n border-image: none;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n margin-right: -1px;\n position: relative;\n}\n\n.webbpm .tab-menu > div > .nav-tabs > li.active > a {\n color: #000;\n font-weight: bold;\n}\n\n.webbpm .tab-menu > div > .nav-tabs > li.active > a,\n.webbpm .tab-menu > div > .nav-tabs > li.active > a:hover,\n.webbpm .tab-menu > div > .nav-tabs > li.active > a:focus {\n border: 0;\n background: transparent;\n}\n\n.webbpm .tab-menu > div > .nav-tabs > li.active::after {\n display: block;\n content: \"\";\n clear: both;\n width: 1px;\n background: #fff;\n position: absolute;\n right: -1px;\n top: 0;\n bottom: 0;\n}\n\n.webbpm .tab-menu-extra {\n margin-left: 200px;\n}\n\n.webbpm .nav-tabs {\n margin-bottom: 0;\n}\n\n.webbpm .nav-tabs ~ tab-item>div::after {\n display: block;\n clear: both;\n content: \" \";\n}\n\n.webbpm .nav-tabs ~ tab-item>div > * {\n margin-bottom: 15px;\n}\n.webbpm .nav-tabs ~ tab-item>div > *:last-child,\n.webbpm .nav-tabs ~ tab-item>div > * > *:last-child {\n margin-bottom: 0;\n}\n\n.webbpm .nav-tabs > li.active > a,\n.webbpm .nav-tabs > li.active > a:hover,\n.webbpm .nav-tabs > li.active > a:focus {\n color: #333;\n background-color: #f9f9fa;\n}\n\n.webbpm .nav-tabs .nav-link {\n color: #888;\n cursor: pointer;\n}\n.webbpm .nav-tabs .nav-link.active {\n color: #000 !important;\n border-color: #ccc #ccc transparent !important;\n cursor: default;\n}\n\n.webbpm .nav-tabs .nav-link:focus,\n.webbpm .nav-tabs .nav-link:hover {\n border-color: transparent transparent #ccc;\n background-color: #eee;\n}\n\n.webbpm text>div {\n display: flex;\n}\n\n.webbpm text>div > div:last-of-type{\n overflow: hidden;\n}\n\n.webbpm text label {\n margin-bottom: 0;\n}\n\n.webbpm text.title>div > div {\n padding-top: 0;\n padding-bottom: 0;\n}\n.webbpm text-field .dropdown-content {\n width: 100%;\n}\n\n.webbpm .dropdown-content {\n position: relative;\n}\n\n.webbpm .dropdown-content .dropdown-content-text {\n position: absolute;\n z-index: 2;\n left: 0;\n width: 100%;\n border: 1px solid #ccc;\n background-color: #fff;\n}\n\n.dropdown {\n position: relative;\n display: inline-block;\n}\n\n.dropdown-content div.option {\n padding: 5px 10px;\n display: block;\n}\n\n.dropdown-content div.option.active {\n background-color: #ddd;\n}\n.webbpm textarea {\n resize: vertical;\n}\n.webbpm .tree-list-item {\n position: relative;\n}\n\n.webbpm tree-list {\n display: block;\n max-height: 100px;\n overflow-y: auto;\n margin-bottom: 10px;\n}\n\n.webbpm tree-list .tree-list-item {\n padding-right: 20px;\n margin-bottom: 5px;\n}\n\n.webbpm tree-list .tree-list-item > .ui-select-clear {\n top: 0;\n right: 0;\n}\n\n.hyper-link a.link {\n text-decoration: underline;\n cursor: pointer;\n}", "\r\n@font-face {\r\n font-display: block;\r\n font-family: \"bootstrap-icons\";\r\n src: url(\"../../../node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff2?24e3eb84d0bcaf83d77f904c78ac1f47\") format(\"woff2\"),\r\n url(\"../../../node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff?24e3eb84d0bcaf83d77f904c78ac1f47\") format(\"woff\");\r\n}\r\n\r\n\r\n@font-face {\r\n font-family: 'FontAwesome';\r\n src: url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0');\r\n src: url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),\r\n url('../../../node_modules/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'GilroyL';\r\n src: url('../fonts/gilroy-light.otf');\r\n}\r\n@font-face {\r\n font-family: 'Gilroy';\r\n src: url('../fonts/gilroy-regular.ttf');\r\n}\r\n@font-face {\r\n font-family: 'GilroyM';\r\n src: url('../fonts/gilroy-medium.ttf');\r\n}\r\n@font-face {\r\n font-family: 'GilroySB';\r\n src: url('../fonts/gilroy-semibold.ttf');\r\n}\r\n@font-face {\r\n font-family: 'GilroyEB';\r\n src: url('../fonts/gilroy-extrabold.otf');\r\n}", ":root {\r\n --white: #ffffff;\r\n --black: #000000;\r\n --color-text-primary: #404954;\r\n --color-link: #1c92ea;\r\n --color-link-hover: #1b84d2;\r\n --bg-light: #f5f7fa;\r\n --bg-secondary: #4c5969;\r\n --border-light: #e3e6ed;\r\n\r\n --size-text-primary: 16px;\r\n --size-text-secondary: 14px;\r\n}\r\n\r\n* {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n*, *:before, *:after {\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n\r\n.webbpm .form-signin label {\r\n width: 160px;\r\n margin-right: 0;\r\n}\r\n\r\n.webbpm .progress {\r\n position: absolute;\r\n width: 64px;\r\n height: 64px;\r\n margin-bottom: 0 !important;\r\n background: url(\"../img/progress.gif\") no-repeat 0 0;\r\n}\r\n\r\n.webbpm > .progress {\r\n top: 50%;\r\n left: 50%;\r\n margin-top: -30px;\r\n margin-left: -30px;\r\n}\r\n\r\n.webbpm .search-task-progress-bar {\r\n text-align: center;\r\n}\r\n\r\n.webbpm .modal-body .progress,\r\n.webbpm .search-task-progress-bar .progress {\r\n position: relative;\r\n top: 0;\r\n margin-top: 0;\r\n}\r\n\r\n\r\n.webbpm .fl-left {\r\n float: left;\r\n}\r\n\r\n.webbpm .fl-right {\r\n float: right;\r\n}\r\n\r\n.webbpm .anchor {\r\n float: none;\r\n clear: both;\r\n}\r\n\r\n.webbpm :is(ul, ol) li {\r\n list-style: none;\r\n}\r\n\r\n.webbpm :is(h1, h2, h3) {\r\n margin: 0;\r\n font-weight: normal;\r\n}\r\n.webbpm h1 {\r\n font-size: 2.33em;\r\n}\r\n.webbpm h2 {\r\n font-size: 2em;\r\n}\r\n.webbpm h3 {\r\n font-size: 1.5em;\r\n}\r\n\r\n.webbpm .table {\r\n display: table;\r\n}\r\n\r\n.webbpm .tr {\r\n display: table-row;\r\n}\r\n\r\n.webbpm .td, .webbpm .th {\r\n display: table-cell;\r\n}\r\n\r\n\r\nhtml, .webbpm {\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n}\r\n\r\n.webbpm {\r\n background-color: #f9f9fa;\r\n font-family: Arial;\r\n font-size: var(--size-text-secondary);\r\n min-height: 0;\r\n padding: 0;\r\n}\r\n\r\n.webbpm .wrapper {\r\n height: 100%;\r\n min-height: 100%;\r\n position: relative;\r\n}\r\n\r\n.webbpm .container {\r\n width: 100%;\r\n max-width: 100%;\r\n height: auto;\r\n margin: 0;\r\n padding: 67px 0 0;\r\n position: absolute;\r\n top: 0px;\r\n left: 0;\r\n right: 0;\r\n bottom: 50px;\r\n border: 0;\r\n overflow: hidden;\r\n\r\n [ng-include=\"taskPageFile\"] {\r\n position: relative;\r\n min-height: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n }\r\n .container-inside {\r\n font-family: Arial;\r\n font-size: var(--size-text-secondary);\r\n position: relative;\r\n height: 100%;\r\n overflow: auto;\r\n }\r\n}\r\n\r\n.webbpm footer {\r\n position: absolute;\r\n color: var(--black);\r\n font-size: 12px;\r\n bottom: 0;\r\n left: 15px;\r\n right: 15px;\r\n height: 50px;\r\n padding: 15px 0;\r\n border-top: 1px solid #c1c1c1;\r\n background: transparent;\r\n\r\n span + span {\r\n padding-left: 20px;\r\n }\r\n}\r\n\r\n.webbpm .logo {\r\n display: inline-block;\r\n margin: 0;\r\n float: left;\r\n\r\n a {\r\n width: 200px;\r\n height: 67px;\r\n position: absolute;\r\n background: url(\"../img/logo.png\") no-repeat 0 0;\r\n }\r\n}\r\n\r\n.webbpm .header {\r\n position: absolute;\r\n color: var(--white);\r\n font-family: Corbel;\r\n font-size: var(--size-text-secondary);\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n height: 67px;\r\n min-height: 67px;\r\n line-height: normal;\r\n border: 0;\r\n padding: 0;\r\n background: #b9c0ca;\r\n z-index: 997;\r\n\r\n .nav .nav-link {\r\n color: var(--white);\r\n float: none;\r\n display: block;\r\n line-height: 60px;\r\n padding: 0 15px 0 60px;\r\n text-shadow: none;\r\n cursor: pointer;\r\n }\r\n\r\n .nav .nav-link:hover {\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n.webbpm .dropdown-menu {\r\n background-color: #eee;\r\n}\r\n\r\n.webbpm .nav .nav-item .dropdown-menu:after {\r\n border-bottom: 6px solid #eee;\r\n}\r\n\r\n.webbpm .inner {\r\n overflow-y: auto;\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .webbpm .navbar .nav > * {\r\n float: left;\r\n }\r\n}\r\n\r\n@media (max-width: 767px) {\r\n .webbpm .dropdown-menu > div > button {\r\n color: #d1dbe5;\r\n }\r\n}\r\n\r\n\r\n.webbpm .user-department,\r\n.webbpm .user-info {\r\n color: #5a6473;\r\n}\r\n\r\n.webbpm .user-info > * {\r\n display: inline-block;\r\n margin-left: 5px;\r\n}\r\n\r\n.webbpm [log-out] {\r\n max-width: 40%;\r\n margin-right: 15px;\r\n}\r\n\r\n.webbpm .content {\r\n padding: 0 20px;\r\n}\r\n\r\n.webbpm .inner {\r\n min-height: 100%;\r\n height: 100%;\r\n overflow-y : scroll;\r\n}\r\n\r\n\r\n.task-list {\r\n font-size: 0;\r\n height: 100%;\r\n min-height: 100%;\r\n}\r\n\r\n.task-list > div {\r\n display: block;\r\n float: left;\r\n height: 100%;\r\n min-height: 100%;\r\n font-size: var(--size-text-secondary);\r\n}\r\n\r\n.task-list-tree-panel {\r\n width: 20%;\r\n background: #e9edf2;\r\n border-right: 1px solid #b9c1ca;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter {\r\n position: relative;\r\n margin-top: 15px;\r\n z-index: 10;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li {\r\n position: relative;\r\n padding: 8px 10px;\r\n margin: 2px 10px;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li::before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0px;\r\n bottom: 0px;\r\n right: 0;\r\n top: 0;\r\n border: 1px solid rgb(206, 212, 219);\r\n border-radius: 4px;\r\n background-color: var(--white);\r\n opacity: 0.6;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li label:hover {\r\n cursor: pointer;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li label {\r\n position: relative;\r\n width: 100%;\r\n margin: 0;\r\n z-index: 11;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li label input[type=\"radio\"] {\r\n float: left;\r\n margin-top: 2px;\r\n margin-right: 4px;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li label span {\r\n float: right;\r\n background-color: #bbb;\r\n padding: 0px 4px;\r\n border-radius: 3px;\r\n min-width: 25px;\r\n text-align: center;\r\n color: var(--white);\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li.ontime label span {\r\n background-color: #a0c367;\r\n}\r\n\r\n.task-list-tree-panel .task-list-filter li.overdue label span {\r\n background-color: #fc2d2d;\r\n}\r\n\r\n.task-list-header {\r\n border-bottom: 1px solid #b9c1ca;\r\n background-color: #ccd6e0;\r\n height: 30px;\r\n line-height: 30px;\r\n color: #565968;\r\n font-size: var(--size-text-secondary);\r\n padding: 0 12px;\r\n}\r\n\r\n.structure-box {\r\n padding: 15px;\r\n}\r\n\r\n.task-list-workplace {\r\n width: 80%;\r\n padding: 15px 15px 0;\r\n overflow-y: auto;\r\n}\r\n\r\n\r\n\r\n.task-tbl {\r\n background: var(--white);\r\n width: 100%;\r\n border-collapse: collapse;\r\n}\r\n\r\n.task-tbl .td, .task-tbl .th {\r\n border: 1px solid #b9c1ca;\r\n padding: 10px 15px;\r\n}\r\n\r\n.task-tbl .th {\r\n color: #565968;\r\n}\r\n\r\n.task-tbl .td {\r\n color: #333;\r\n}\r\n\r\n.task-tbl .thead {\r\n background: #ccd6e0;\r\n}\r\n\r\n.task-tbl > .tr:hover {\r\n cursor: pointer;\r\n background: #e9edf2;\r\n}\r\n\r\n.task-tbl .tr.task-ontime > .td.task,\r\n.task-tbl .tr.task-overdue > .td.task {\r\n position: relative;\r\n padding-left: 20px;\r\n}\r\n\r\n.task-tbl .tr.task-ontime > .td.task::before,\r\n.task-tbl .tr.task-overdue > .td.task::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 12px;\r\n left: 5px;\r\n width: 10px;\r\n height: 10px;\r\n background-color: #a0c367;\r\n border-radius: 10px;\r\n z-index: 1;\r\n}\r\n\r\n.task-tbl .tr.task-overdue > .td.task::before {\r\n background-color: #ff0000;\r\n}\r\n\r\n\r\n\r\n.webbpm #toast-container {\r\n font-size: 12px;\r\n bottom: auto;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n max-height: 95%;\r\n}\r\n\r\n.webbpm #toast-container .toast:hover {\r\n box-shadow: 0 0 12px #999999;\r\n}\r\n\r\n.webbpm #toast-container .ngx-toastr {\r\n min-width: 540px;\r\n opacity: 0.9;\r\n}\r\n\r\n.webbpm #toast-container .toast-error {\r\n background-color: #d9534f;\r\n}\r\n\r\n.webbpm #toast-container .toast-close-button {\r\n text-shadow: none;\r\n}\r\n\r\n.webbpm .toast-message > div {\r\n display: none;\r\n}\r\n\r\n.webbpm .toast-message > .active {\r\n display: block;\r\n}\r\n\r\n.webbpm .toast-message > .active::after {\r\n display: block;\r\n content: \"\";\r\n float: none;\r\n clear: both;\r\n}\r\n\r\n.webbpm .toast-message > .active a {\r\n float: right;\r\n margin: 5px 0;\r\n}\r\n\r\n.webbpm .toast-message > .toast-msg-close.active ~ .toast-msg-text {\r\n display: block;\r\n font-size: 0.8em;\r\n}\r\n\r\n.webbpm .toast-message a:not([href]):not([tabindex]) {\r\n text-decoration: underline;\r\n}\r\n\r\n\r\n\r\n.webbpm .container .task-not-found-page {\r\n position: relative;\r\n display: table;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.webbpm .container .task-not-found-container {\r\n display: table-cell;\r\n color: var(--black);\r\n font-size: 1.8em;\r\n background-color: #c9d4e0;\r\n text-align: center;\r\n vertical-align: middle;\r\n}\r\n\r\n.webbpm .container .task-not-found-container > div {\r\n display: inline-block;\r\n}\r\n\r\n.webbpm .container .task-not-found-container > div:first-child {\r\n color: var(--white);\r\n font-size: 7.8em;\r\n font-weight: bold;\r\n}\r\n\r\n.webbpm .container .task-not-found-container > div:last-child {\r\n text-align: left;\r\n margin-left: 40px;\r\n}\r\n\r\n.webbpm .container .task-not-found-container h2 {\r\n font-size: 2em;\r\n margin-bottom: 10px;\r\n}\r\n\r\n\r\n.webbpm .container .task-not-found-container a {\r\n cursor: pointer;\r\n}\r\n\r\n\r\n\r\n.webbpm.mobile .task-list-tree-panel,\r\n.webbpm.mobile footer {\r\n display: none;\r\n}\r\n\r\n.webbpm.mobile .task-list-workplace {\r\n margin-left: 0;\r\n}\r\n\r\n.webbpm.mobile .container {\r\n bottom: 0;\r\n}\r\n\r\n.webbpm.mobile form {\r\n overflow: hidden;\r\n}\r\n\r\n.webbpm.mobile .form-signin {\r\n width: auto;\r\n padding: 20px;\r\n margin: 40px 20px;\r\n border-radius: 4px;\r\n}\r\n\r\n.webbpm.mobile .form-signin h1,\r\n.webbpm.mobile .form-signin h2 {\r\n margin-left: 0;\r\n}\r\n\r\n.webbpm.mobile .form-signin label {\r\n text-align: left;\r\n}\r\n\r\n.webbpm.mobile .form-signin input[type=\"text\"],\r\n.webbpm.mobile .form-signin input[type=\"password\"] {\r\n width: 100%;\r\n}\r\n\r\n.webbpm.mobile .form-signin .login-btn-box {\r\n width: auto;\r\n margin-right: 0;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.webbpm .task-list {\r\n height: auto;\r\n min-height: auto;\r\n}\r\n\r\n.webbpm .task-list > .task-list-tree-panel {\r\n background: var(--white);\r\n border-right: 0;\r\n}\r\n\r\n.webbpm .task-list > .task-list-tree-panel,\r\n.webbpm .task-list > .task-list-workplace {\r\n font-size: var(--size-text-secondary);\r\n float: none;\r\n width: 100%;\r\n height: auto;\r\n min-height: auto;\r\n}\r\n\r\n.webbpm .task-list-tree-panel .task-list-filter {\r\n font-family: Corbel;\r\n margin: 0;\r\n box-shadow: 0px 4px 10px -5px rgba(40, 40, 40, 0.3);\r\n\r\n ul {\r\n margin: 0;\r\n }\r\n\r\n li {\r\n display: inline-block;\r\n padding: 12px 0px;\r\n margin: 0;\r\n\r\n &:first-of-type {\r\n font-size: 1.4em;\r\n font-weight: bold;\r\n width: 197px;\r\n padding: 0 15px;\r\n }\r\n\r\n &::before {\r\n display: none;\r\n }\r\n\r\n label {\r\n font-size: 1.3em;\r\n font-weight: normal;\r\n }\r\n\r\n label div {\r\n display: inline-block;\r\n width: 10px;\r\n height: 10px;\r\n border-radius: 10px;\r\n margin-right: 8px;\r\n }\r\n\r\n &.ontime label div {\r\n background-color: #2da6a1;\r\n }\r\n\r\n &.overdue label div {\r\n background-color: #9c5d7a;\r\n }\r\n\r\n label input[type=\"radio\"] {\r\n float: none;\r\n display: none;\r\n }\r\n\r\n label span {\r\n float: none;\r\n color: var(--black);\r\n font-weight: normal;\r\n text-align: left;\r\n min-width: auto;\r\n padding: 5px 15px;\r\n border-radius: 0;\r\n background-color: transparent;\r\n }\r\n\r\n label input[type=\"radio\"].ng-valid-parse ~ span {\r\n background-color: #eaedf2;\r\n\r\n }\r\n }\r\n}\r\n\r\n\r\n.webbpm .dialog-stack-trace {\r\n overflow-x: auto;\r\n overflow-y: auto;\r\n max-height: 300px;\r\n}\r\n.webbpm .dialog-show-button {\r\n text-decoration: underline;\r\n cursor: pointer;\r\n}\r\n.webbpm .dialog-error-number {\r\n font-size: 1.25rem;\r\n}\r\n.webbpm .dialog-error-title {\r\n font-size: 1rem;\r\n}\r\n\r\n\r\n.webbpm :is(.form-signin, .form-signup, .confirm) { \r\n color: #333;\r\n width: 580px;\r\n padding: 80px 100px;\r\n margin: 20px auto;\r\n border: 1px solid var(--bg-light);\r\n background: var(--white);\r\n}\r\n\r\n.webbpm .form-signin.esia {\r\n width: 450px;\r\n text-align: center;\r\n padding: 45px 55px 35px 55px;\r\n}\r\n\r\n.webbpm .form-signin h1,\r\n.webbpm .form-signin h2,\r\n.webbpm .form-signup h2,\r\n.webbpm .confirm h2 {\r\n text-align: center;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.webbpm .form-signin.esia :is(h1, h2) {\r\n margin-left: 0;\r\n}\r\n\r\n.webbpm .form-signin label,\r\n.webbpm .form-signup label {\r\n margin-bottom: 0;\r\n}\r\n\r\n.webbpm .form-signin input {\r\n width: 240px;\r\n font-size: var(--size-text-secondary);\r\n display: inline-block;\r\n}\r\n\r\n.webbpm .form-signin.esia input {\r\n width: 160px;\r\n margin-top: 40px;\r\n}\r\n\r\n.webbpm :is(.form-signin, .form-signup) .row {\r\n display: flex; \r\n margin: 0 0 20px;\r\n}\r\n\r\n.webbpm .registration-link, \r\n.webbpm .login-link {\r\n margin-right: 20px;\r\n font-size: var(--size-text-secondary);\r\n}\r\n\r\n.webbpm .form-signin .row.registration {\r\n flex-direction: row;\r\n}\r\n\r\n.webbpm .form-signin .login-btn-box {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n}\r\n\r\n.webbpm .form-signin .row.registration > * + *,\r\n.webbpm .form-signin .login-btn-box .password,\r\n.webbpm .form-signin .login-btn-box .btn + .btn {\r\n margin-left: 10px;\r\n}\r\n\r\n.webbpm .input-group > .input-group-append > .input-group-text {\r\n border-radius: 0;\r\n}\r\n\r\n.webbpm .form-signin .register-btn-box,\r\n.webbpm .form-signup .register-btn-box,\r\n.webbpm .form-signup .reset-password-btn-box {\r\n width: 220px;\r\n}\r\n\r\n.webbpm .form-signup .row international-phone-number .flagInput .btn {\r\n border-left: 1px solid #c6cdd3;\r\n}\r\n.webbpm .form-signup .row international-phone-number .flagInput ~ input {\r\n border-left: none;\r\n}\r\n\r\n.webbpm .form-signin .has-error .help-block {\r\n padding-left: 125px;\r\n font-size: var(--size-text-secondary);\r\n}\r\n\r\n.webbpm .form-signup .has-account a {\r\n margin-left: 10px;\r\n}\r\n\r\n\r\n.form-signup .has-account {\r\n flex-direction: row;\r\n}\r\n\r\n.form-signup .has-account a span,\r\n.confirm a span {\r\n margin-right: 4px;\r\n}\r\n\r\n.form-signup .dropbtn.btn {\r\n margin-bottom: 0;\r\n}\r\n\r\n.form-signup .input-group-text {\r\n border-left-width: 0;\r\n}\r\n\r\n.form-signup input.ng-invalid.ng-touched,\r\n.form-signup input.ng-invalid.ng-dirty {\r\n border-color: red !important;\r\n}\r\n\r\n.form-signup .msg-alert {\r\n color: red;\r\n font-size: 11px;\r\n padding: 3px 0 0;\r\n}\r\n\r\n.form-signup .consent {\r\n color: #929292;\r\n font-size: 13px;\r\n margin-top: 20px;\r\n}\r\n\r\n\r\n\r\n.webbpm .error_message {\r\n width: 650px;\r\n margin: 0 auto;\r\n margin-top: 10%;\r\n}\r\n\r\n.webbpm .error_title {\r\n position: relative;\r\n color: #9c5d7a;\r\n font-size: 5.5em;\r\n font-weight: bold;\r\n margin-left: 100px;\r\n line-height: 1;\r\n}\r\n.webbpm .error_title::before {\r\n position: absolute;\r\n content: \"\";\r\n left: -100px;\r\n width: 75px;\r\n height: 75px;\r\n border-radius: 40px;\r\n background-color: #9c5d7a;\r\n background-image: url(\"../img/access_denied.png\");\r\n background-repeat: no-repeat;\r\n background-position: 50% 50%;\r\n}\r\n\r\n.webbpm .error_title_long {\r\n margin-bottom: 20px;\r\n font-size: 2.5em;\r\n}\r\n\r\n.webbpm .error_body {\r\n font-size: 2em;\r\n line-height: 1.2;\r\n margin: 5px 0 0 100px;\r\n}\r\n\r\n\r\n.flag {\r\n background-image: url('./../img/country-flags.jpg') !important;\r\n}\r\n\r\n\r\n", ".webbpm.ervu_dashboard {\r\n --black: #070e1a;\r\n --color-text-primary: #f4fcff;\r\n --color-text-secondary: #b1daea;\r\n --color-text-mute: #6b7e9b;\r\n --color-primary-5: rgba(244, 252, 255, 0.05);\r\n --color-primary-20: rgba(244, 252, 255, 0.2);\r\n\r\n --color-success: #00db5d;\r\n --color-error: #f91e11;\r\n --color-dark: #070e1a;\r\n --color-dark-20: rgba(7, 14, 26, 0.2); \r\n\r\n --btn-border: #00f0ff;\r\n --btn-bg: linear-gradient(40deg, rgba(8, 131, 198, 1) 0%, rgba(32, 181, 219, 1) 100%);\r\n --btn-shadow: 0 20px 40px -20px rgba(11, 175, 218, 0.4);\r\n\r\n --border-light: rgba(8, 131, 198, 0.6);\r\n --border-dark: rgba(1, 83, 111, 1);\r\n --bg-blur-40: blur(20px);\r\n --bg-blur-20: blur(10px);\r\n --bg-shadow: 4px 4px 2px 0 rgba(3, 20, 36, 0.4);\r\n --bg-block: \r\n linear-gradient(180deg, rgba(8, 131, 198, 0) 0%, rgba(8, 131, 198, 0.07) 33%, rgba(8, 131, 198, 0.2) 100%),\r\n linear-gradient(180deg, rgba(19, 46, 55, 0.16) 0%, rgba(19, 46, 55, 0.32) 100%),\r\n radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 80%);\r\n --bg-group: rgba(8, 131, 198, 0.25);\r\n \r\n \r\n --bg-brick: rgba(9, 91, 120, 0.6);\r\n\r\n --size-text-title: min(1.6vw, 2rem); \r\n --size-text-subtitle: min(1.2vw, 1.5rem); \r\n --size-text-addprimary: min(1vw, 1.25rem); \r\n --size-text-primary: min(0.9vw, 1.125rem); \r\n --size-text-secondary: min(0.7vw, 0.875rem); \r\n\r\n --size-num-title: min(3vw, 3.75rem); \r\n --size-num-subtitle: min(2.4vw, 3rem); \r\n --size-num-addtitle: min(2vw, 2.5rem); \r\n --size-num-primary: min(1.6vw, 2rem); \r\n --size-num-secondary: min(1.2vw, 1.5rem); \r\n\r\n --indent-huge: min(2.4vw, 3rem); \r\n --indent-xlarge: min(2vw, 2.5rem); \r\n --indent-large: min(1.6vw, 2rem); \r\n --indent-medium: min(1.2vw, 1.5rem); \r\n --indent-xbase: min(1vw, 1.25rem); \r\n --indent-base: min(0.8vw, 1rem); \r\n --indent-small: min(0.6vw, 0.75rem); \r\n --indent-mini: min(0.4vw, 0.5rem); \r\n --indent-xmini: min(0.2vw, 0.25rem); \r\n\r\n --h-header: min(3.9vw, 4.875rem); \r\n --w-screen: min(2vw, 2.5rem); \r\n}\r\n\r\n.webbpm.ervu_dashboard {\r\n display: flex;\r\n flex-direction: column;\r\n color: var(--color-text-primary);\r\n font-family: 'Gilroy';\r\n background: var(--color-dark) url('../img/bg_image.png') no-repeat center 0 fixed;\r\n -webkit-background-size: cover;\r\n -moz-background-size: cover;\r\n -o-background-size: cover;\r\n background-size: cover;\r\n}\r\n.webbpm.ervu_dashboard .wrapper {\r\n background: \r\n radial-gradient(circle at 0% 0%, rgba(16, 67, 77, 0.35) 0%, rgba(8, 37, 43, 0) 37%),\r\n radial-gradient(circle at 100% 0%, rgba(16, 67, 77, 0.35) 0%, rgba(8, 37, 43, 0) 37%),\r\n radial-gradient(circle at 50% 0%, rgba(8, 37, 43, 0.8) 0%, rgba(8, 37, 43, 0.6) 30%, rgba(8, 37, 43, 0) 80%),\r\n radial-gradient(circle at 50% 0%, rgba(8, 37, 43, 0.8) 0%, rgba(8, 37, 43, 0) 73%),\r\n radial-gradient(circle at 50% 50%, rgba(8, 37, 43, 0) 47%, rgba(3, 22, 26, 1) 100%); \r\n}\r\n\r\n.webbpm.ervu_dashboard .container {\r\n padding: var(--h-header) 0 0;\r\n bottom: 0;\r\n}\r\n.webbpm.ervu_dashboard .container-inside {\r\n font-family: 'Gilroy';\r\n font-size: var(--size-text-primary); \r\n padding: 0 var(--w-screen) var(--indent-mini) var(--w-screen);\r\n}\r\n\r\n.webbpm.ervu_dashboard .header-logo {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n margin-left: var(--w-screen);\r\n}\r\n.webbpm.ervu_dashboard .header-logo .logo a {\r\n width: 100px;\r\n height: var(--h-header);\r\n background: url('../../../src/resources/img/logo-full.svg') no-repeat 0 50%;\r\n background-size: auto 100%;\r\n}\r\n.webbpm.ervu_dashboard .header-logo .logo-title {\r\n font-family: 'GilroySB';\r\n margin-left: min(6vw, 7.5rem); \r\n}\r\n\r\n.webbpm.ervu_dashboard .header-menu {\r\n display: flex;\r\n flex-direction: row;\r\n margin-left: auto;\r\n margin-right: var(--w-screen);\r\n}\r\n.webbpm.ervu_dashboard .header-menu process, \r\n.webbpm.ervu_dashboard .header-menu process + div, \r\n.webbpm.ervu_dashboard .header-menu admin-menu {\r\n}\r\n\r\n.webbpm.ervu_dashboard .header-menu .update-data {\r\n color: var(--color-text-primary);\r\n opacity: 0.4;\r\n margin-right: 16px;\r\n}\r\n.webbpm.ervu_dashboard .header-menu .logout {\r\n max-width: max-content;\r\n}\r\n.webbpm.ervu_dashboard .header-menu .logout > button {\r\n color: var(--color-text-primary);\r\n line-height: 1.3;\r\n padding: var(--indent-mini) var(--indent-xbase);\r\n border: 1px solid var(--color-success);\r\n background-color: var(--color-dark-20);\r\n outline: none;\r\n} \r\n.webbpm.ervu_dashboard .header-menu .logout .nav-link {\r\n padding-right: 0;\r\n border-radius: var(--indent-medium) 0 0 var(--indent-medium);\r\n border-right: 0;\r\n}\r\n.webbpm.ervu_dashboard .header-menu .logout .exit {\r\n border-radius: 0 var(--indent-medium) var(--indent-medium) 0;\r\n border-left: 0;\r\n}\r\n\r\n.webbpm.ervu_dashboard .header {\r\n display: flex;\r\n font-family: 'Gilroy';\r\n font-size: var(--size-text-primary);\r\n width: 100%;\r\n height: auto;\r\n min-height: var(--h-header);\r\n background: transparent;\r\n}\r\n.webbpm.ervu_dashboard .header > div > * {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.webbpm.ervu_dashboard .header .dropdown-menu.show {\r\n top: var(--h-header) !important;\r\n right: 0px !important;\r\n left: auto !important;\r\n transform: none !important;\r\n margin: 0; \r\n border: 0;\r\n border-radius: 0 0 10px 10px;\r\n background-color: var(--white);\r\n box-shadow: 0 8px 12px rgb(77 72 91 / 5%), 0 6px 10px rgb(77 72 91 / 0%);\r\n}\r\n.webbpm.ervu_dashboard .header .dropdown-menu.show .dropdown-menu-inner {\r\n max-height: calc(100vh - 140px);\r\n overflow-y: auto;\r\n}\r\n\r\n.webbpm.ervu_dashboard .header :is(process, admin-menu) .dropdown-menu.show {\r\n top: 49px !important;\r\n}\r\n\r\n.webbpm.ervu_dashboard .header .logout .dropdown-menu.show {\r\n width: 300px;\r\n}\r\n\r\n.webbpm.ervu_dashboard .dropdown-menu-inner:hover {\r\n background-color: transparent;\r\n}\r\n\r\n.webbpm.ervu_dashboard .dropdown-item {\r\n padding: 4px 20px;\r\n}\r\n.webbpm.ervu_dashboard .dropdown-item:hover,\r\n.webbpm.ervu_dashboard .dropdown-item:focus,\r\n.webbpm.ervu_dashboard .dropdown-item:active {\r\n color: var(--color-link);\r\n background-color: transparent;\r\n outline: transparent;\r\n}\r\n\r\n\r\n.webbpm.ervu_dashboard :is(.form-signin, .form-signup, .confirm) {\r\n color: var(--color-text-primary);\r\n width: 560px;\r\n padding: 60px 80px;\r\n margin: 30px auto;\r\n border: 0;\r\n border-radius: 20px;\r\n border: 1px solid var(--color-text-secondary);\r\n background-color: var(--color-dark-20);\r\n box-shadow: var(--bg-shadow);\r\n backdrop-filter: var(--bg-blur-40); \r\n}\r\n\r\n.webbpm.ervu_dashboard :is(.form-signin, .form-signup) .row.title {\r\n position: relative;\r\n padding: 0;\r\n}\r\n\r\n.webbpm.ervu_dashboard .form-signin h1,\r\n.webbpm.ervu_dashboard .form-signin h2,\r\n.webbpm.ervu_dashboard .form-signup h2,\r\n.webbpm.ervu_dashboard .confirm h2 {\r\n font-family: 'GilroySB';\r\n font-size: 32px;\r\n text-align: left;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.webbpm.ervu_dashboard :is(.form-signin, .form-signup, .confirm) .logo {\r\n position: absolute;\r\n top: -10px; \r\n right: 0;\r\n width: 145px;\r\n height: 40px;\r\n background: none;\r\n}\r\n\r\n.webbpm.ervu_dashboard .form-signin .row.registration > * + *,\r\n.webbpm.ervu_dashboard .form-signin .login-btn-box .password,\r\n.webbpm.ervu_dashboard .form-signin .login-btn-box .btn + .btn {\r\n margin-left: 20px;\r\n}\r\n\r\n\r\n* {\r\n scrollbar-width: thin;\r\n scrollbar-color: var(--color-dark) transparent;\r\n}\r\n*::-webkit-scrollbar {\r\n width: 8px;\r\n height: 8px;\r\n background-color: transparent;\r\n}\r\n*::-webkit-scrollbar-thumb {\r\n border-radius: 8px;\r\n background-color: var(--color-dark);\r\n}\r\n*::-webkit-scrollbar-track {\r\n height: 8px;\r\n background-color: transparent;\r\n}\r\n\r\n@media ((max-width: 780px) or (orientation: portrait)) {\r\n .webbpm.ervu_dashboard {\r\n --size-text-title: 2rem; \r\n --size-text-subtitle: 1.5rem; \r\n --size-text-addprimary: 1.25rem; \r\n --size-text-primary: 1.125rem; \r\n --size-text-secondary: 0.875rem; \r\n\r\n --size-num-title: 3.75rem; \r\n --size-num-subtitle: 3rem; \r\n --size-num-addtitle: 2.5rem; \r\n --size-num-primary: 2rem; \r\n --size-num-secondary: 1.5rem; \r\n\r\n --indent-huge: 3rem; \r\n --indent-xlarge: 2.5rem; \r\n --indent-large: 2rem; \r\n --indent-medium: 1.5rem; \r\n --indent-xbase: 1.25rem; \r\n --indent-base: 1rem; \r\n --indent-small: 0.75rem; \r\n --indent-mini: 0.5rem; \r\n --indent-xmini: 0.25rem; \r\n\r\n --h-header: 4.875rem; \r\n --w-screen: 1rem; \r\n }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n .webbpm.ervu_dashboard {\r\n --size-text-title: 1.75rem; \r\n --size-text-primary: 1rem; \r\n\r\n --size-num-title: 3rem; \r\n --size-num-subtitle: 2.5rem; \r\n --size-num-addtitle: 2rem; \r\n --size-num-primary: 1.75rem; \r\n }\r\n}\r\n", "@charset \"utf-8\";\r\n\r\n.webbpm .horizontal-container > * {\r\n padding-right: var(--indent-mini);\r\n}\r\n\r\n.webbpm.ervu_dashboard .bread-crumb .form-group {\r\n margin-bottom: 0;\r\n}\r\n.webbpm.ervu_dashboard .bread-crumb label {\r\n margin-right: 0;\r\n}\r\n.webbpm.ervu_dashboard .bread-crumb .btn {\r\n font-size: var(--size-text-primary);\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n background-color: transparent;\r\n box-shadow: none !important;\r\n}\r\n\r\n.webbpm.ervu_dashboard .top-btn-block {\r\n margin: var(--indent-small) 0 var(--indent-mini) 0;\r\n}\r\n\r\n.webbpm.ervu_dashboard .top-btn-block .form-group {\r\n margin-bottom: 0;\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .component-float {\r\n display: block;\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) {\r\n padding-right: 0;\r\n border-radius: 20px;\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) + :is(button-component, static-route-navigation-button) {\r\n margin-left: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) .btn {\r\n position: relative;\r\n font-size: var(--size-text-primary);\r\n line-height: 1.3;\r\n padding: var(--indent-mini) var(--indent-xlarge) var(--indent-mini) var(--indent-xbase);\r\n margin-bottom: 0;\r\n border-radius: 100px;\r\n border: 0;\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button)::after {\r\n position: absolute;\r\n content: \"\\f285\";\r\n position: absolute;\r\n font-family: bootstrap-icons !important;\r\n font-weight: 800 !important;\r\n font-size: var(--size-text-secondary);\r\n top: 50%;\r\n transform: translateY(-50%);\r\n margin-left: var(--indent-small); \r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control {\r\n font-size: inherit;\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input {\r\n display: flex;\r\n min-height: max-content;\r\n padding: var(--indent-mini) var(--indent-xlarge) var(--indent-mini) var(--indent-xbase);\r\n border-radius: 100px;\r\n border: 0;\r\n background: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input::after {\r\n position: absolute;\r\n content: \"\\f282\";\r\n color: var(--color-text-primary);\r\n font-family: bootstrap-icons !important;\r\n font-weight: 800 !important;\r\n font-size: var(--size-text-secondary);\r\n top: calc((50% - var(--size-text-secondary)/ 2));\r\n right: var(--indent-base);\r\n height: auto;\r\n width: auto;\r\n border: 0;\r\n}\r\n\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input.dropdown-active {\r\n background-color: var(--color-success);\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input.dropdown-active::after {\r\n transform: rotate(180deg);\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input .item, \r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input input {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-primary);\r\n line-height: 1.3 !important;\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input .item {\r\n display: block;\r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input input::-webkit-input-placeholder, \r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input input::placeholder {\r\n color: var(--color-text-primary); \r\n}\r\n.webbpm.ervu_dashboard .top-btn-block .selectize-control .selectize-input .selectize-dropdown-content {\r\n background: var(--color-dark-20);\r\n}\r\n\r\n.webbpm.ervu_dashboard :is(.arrow-btn, .delete-btn) .btn {\r\n position: relative;\r\n display: grid;\r\n place-items: center;\r\n width: min(1.8vw, 2.25rem); \r\n height: min(1.8vw, 2.25rem); \r\n padding: 0;\r\n margin: 0 calc(var(--indent-xmini)*(-1)) 0 var(--indent-mini);\r\n border-radius: 100px;\r\n border: 0;\r\n background-color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard :is(.arrow-btn, .delete-btn) .btn::before {\r\n position: absolute;\r\n position: absolute;\r\n color: var(--color-dark);\r\n font-family: bootstrap-icons !important;\r\n font-weight: 800 !important;\r\n font-size: var(--size-text-secondary);\r\n top: 50%;\r\n transform: translateY(-50%);\r\n -webkit-text-stroke-width: thin;\r\n}\r\n.webbpm.ervu_dashboard .arrow-btn .btn::before {\r\n content: \"\\f285\";\r\n}\r\n.webbpm.ervu_dashboard .delete-btn .btn::before {\r\n content: \"\\f659\";\r\n}\r\n\r\n.webbpm.ervu_dashboard :is(.title, .subtitle) {\r\n font-size: var(--size-text-title);\r\n font-family: 'GilroyM';\r\n line-height: 1.1;\r\n padding: 0;\r\n}\r\n.webbpm.ervu_dashboard :is(.title, .subtitle) .form-group {\r\n margin-bottom: 0; \r\n}\r\n.webbpm.ervu_dashboard .title {\r\n font-size: var(--size-text-title);\r\n margin-bottom: var(--indent-medium); \r\n}\r\n.webbpm.ervu_dashboard .subtitle {\r\n font-size: var(--size-text-subtitle);\r\n margin-bottom: var(--indent-base); \r\n}\r\n\r\n.webbpm.ervu_dashboard .mute {\r\n color: var(--color-text-mute);\r\n font-family: 'GilroyM';\r\n}\r\n\r\n.webbpm.ervu_dashboard .success > div > div:last-of-type {\r\n color: var(--color-success);\r\n}\r\n.webbpm.ervu_dashboard .error > div > div:last-of-type {\r\n color: var(--color-error);\r\n} \r\n\r\n.webbpm.ervu_dashboard .pull-bottom {\r\n display: flex;\r\n align-items: flex-end;\r\n}\r\n\r\n.webbpm.ervu_dashboard .lined {\r\n padding-top: var(--indent-xbase);\r\n margin-top: var(--indent-xbase);\r\n border-top: 1px solid var(--color-primary-20);\r\n}\r\n\r\n.webbpm.ervu_dashboard .text-invert.mute > div > div:last-of-type {\r\n line-height: inherit !important;\r\n font-size: inherit !important;\r\n}\r\n.webbpm.ervu_dashboard .text-invert > div {\r\n flex-direction: row-reverse;\r\n}\r\n.webbpm.ervu_dashboard .text-invert > div label {\r\n width: auto;\r\n padding-left: 2px;\r\n margin-right: 0;\r\n}\r\n.webbpm.ervu_dashboard .text-invert > div > div:last-of-type {\r\n font-family: 'GilroyM';\r\n overflow: visible;\r\n}\r\n\r\n.webbpm.ervu_dashboard [class*=\"btn-text-\"] .btn {\r\n position: relative;\r\n color: var(--black);\r\n font-family: 'GilroyM';\r\n font-size: var(--size-text-primary);\r\n padding-left: var(--indent-xbase);\r\n padding-right: var(--indent-xlarge);\r\n margin-bottom: 0;\r\n border: 0;\r\n border-radius: 100px;\r\n background-color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard [class*=\"btn-text-\"] .btn::after {\r\n content: \"\";\r\n position: absolute;\r\n font-family: bootstrap-icons !important;\r\n font-weight: 800 !important;\r\n font-size: var(--size-text-secondary);\r\n top: 50%;\r\n transform: translateY(-50%);\r\n margin-left: var(--indent-small);\r\n -webkit-text-stroke-width: thin;\r\n}\r\n.webbpm.ervu_dashboard .btn-text-arrow-r .btn::after {\r\n content: \"\\f285\";\r\n}\r\n.webbpm.ervu_dashboard .btn-text-close .btn::after {\r\n content: \"\\f659\";\r\n}\r\n\r\n.webbpm.ervu_dashboard text label {\r\n width: min(7.5vw, 9.375rem) ; \r\n}\r\n.webbpm.ervu_dashboard text.num-addtitle > div > div:first-child {\r\n color: var(--color-text-secondary);\r\n align-items: center;\r\n} \r\n.webbpm.ervu_dashboard text.num-addtitle > div > div:last-child {\r\n font-family: 'GilroySB';\r\n font-size: var(--size-num-primary);\r\n line-height: normal;\r\n}\r\n\r\n.webbpm.ervu_dashboard .selectize-dropdown {\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content {\r\n max-height: min-content;\r\n border-radius: 24px;\r\n border: 1px solid var(--color-text-secondary);\r\n background: \r\n linear-gradient(180deg, rgba(19, 46, 55, 0.5) 0%, rgba(19, 46, 55, 0.7) 100%), \r\n linear-gradient(180deg, rgba(8, 131, 198, 0.5) 0%, rgba(8, 131, 198, 0.7) 100%);\r\n backdrop-filter: var(--bg-blur-40);\r\n box-shadow: var(--bg-shadow);\r\n}\r\n.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content .option {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-primary);\r\n padding: var(--indent-base) var(--indent-xbase);\r\n}\r\n.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content .option.active {\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard .selectize-dropdown .selectize-dropdown-content .option + .option {\r\n border-top: 1px solid rgba(244, 252, 255, 0.05);\r\n}\r\n\r\n.webbpm.ervu_dashboard tab-container .nav-tabs {\r\n border: 0;\r\n}\r\n.webbpm.ervu_dashboard tab-container .nav-tabs .nav-item + .nav-item {\r\n margin-left: var(--indent-small);\r\n}\r\n.webbpm.ervu_dashboard tab-container .nav-tabs .nav-link {\r\n color: var(--color-text-mute);\r\n padding: 0;\r\n border: 0;\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard tab-container .nav-tabs .active .nav-link {\r\n color: var(--color-success);\r\n padding-bottom: var(--indent-xmini);\r\n border-bottom: 2px solid var(--color-success);\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard tab-container .nav-tabs ~ .tab-active > .active {\r\n padding: 0;\r\n margin: var(--indent-base) 0 0;\r\n border: 0;\r\n background-color: transparent;\r\n}\r\n\r\n.webbpm.ervu_dashboard .brick-group {\r\n color: var(--color-text-secondary);\r\n line-height: 1;\r\n padding: var(--indent-mini) var(--indent-base);\r\n border-radius: 8px;\r\n border: 1px solid var(--color-primary-20);\r\n background-color: var(--bg-brick);\r\n}\r\n.webbpm.ervu_dashboard .brick-group text {\r\n display: flex;\r\n align-items: center;\r\n}\r\n.webbpm.ervu_dashboard .brick-group text:first-child {\r\n flex: 1;\r\n}\r\n.webbpm.ervu_dashboard .brick-group text .form-group {\r\n margin-bottom: 0;\r\n} \r\n.webbpm.ervu_dashboard .brick-group text .form-group > div {\r\n align-items: center;\r\n white-space: nowrap;\r\n}\r\n.webbpm.ervu_dashboard .brick-group text.text-invert .form-group > div:last-child {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-subtitle);\r\n}\r\n.webbpm.ervu_dashboard .vertical-container > .brick-group + .brick-group {\r\n margin-top: var(--indent-mini);\r\n}\r\n.webbpm.ervu_dashboard .horizontal-container > .brick-group + .brick-group {\r\n margin-left: var(--indent-mini);\r\n}\r\n\r\n.webbpm.ervu_dashboard .list-group {\r\n padding: var(--indent-small) var(--indent-base);\r\n border-radius: 8px;\r\n border: 0;\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard .list-group + .list-group {\r\n margin-top: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard .list-group > div > * + text {\r\n margin: var(--indent-base) 0 var(--indent-mini);\r\n}\r\n.webbpm.ervu_dashboard .list-group .list-group + .list-group {\r\n margin-top: var(--indent-mini);\r\n}\r\n.webbpm.ervu_dashboard .list-group .horizontal-container {\r\n align-items: center;\r\n}\r\n.webbpm.ervu_dashboard .list-group vbox:first-child {\r\n flex: 1;\r\n}\r\n.webbpm.ervu_dashboard .list-group text .form-group {\r\n align-items: baseline;\r\n margin-bottom: 0;\r\n}\r\n.webbpm.ervu_dashboard .list-group .mute {\r\n white-space: nowrap;\r\n}\r\n\r\n.webbpm.ervu_dashboard .list-plain > .vertical-container > hbox + hbox {\r\n margin-top: var(--indent-xbase);\r\n}\r\n.webbpm.ervu_dashboard .list-plain .horizontal-container > text {\r\n flex: 1;\r\n color: var(--color-text-secondary);\r\n font-family: 'GilroyM';\r\n font-size: var(--size-text-subtitle);\r\n line-height: normal;\r\n}\r\n.webbpm.ervu_dashboard .list-plain .horizontal-container > text + * {\r\n flex: 1;\r\n}\r\n.webbpm.ervu_dashboard .list-plain label {\r\n width: auto;\r\n margin-right: 0;\r\n}\r\n.webbpm.ervu_dashboard .list-plain .form-group {\r\n align-items: baseline;\r\n margin-bottom: 0;\r\n}\r\n.webbpm.ervu_dashboard .list-plain .text-invert:not(.mute) > div > div:first-of-type {\r\n color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard .list-plain .text-invert > div > div:last-of-type {\r\n font-family: 'GilroySB';\r\n font-size: var(--size-num-subtitle);\r\n line-height: 1;\r\n}\r\n.webbpm.ervu_dashboard .list-plain .mute {\r\n white-space: nowrap;\r\n}\r\n.webbpm.ervu_dashboard .list-plain.list-plan-small .horizontal-container {\r\n align-items: center;\r\n}\r\n.webbpm.ervu_dashboard .list-plain.list-plan-small .horizontal-container > text {\r\n color: var(--color-text-primary);\r\n font-family: 'Gilroy';\r\n font-size: var(--size-text-primary);\r\n padding-top: 0;\r\n}\r\n.webbpm.ervu_dashboard .list-plain.list-plan-small .horizontal-container > text + * {\r\n flex: 0 1 auto;\r\n}\r\n.webbpm.ervu_dashboard .list-plain.list-plan-small .text-invert > div > div:last-of-type {\r\n font-size: var(--size-num-primary);\r\n line-height: normal;\r\n}\r\n.webbpm.ervu_dashboard .list-common text label {\r\n color: var(--color-text-secondary);\r\n width: auto;\r\n}\r\n.webbpm.ervu_dashboard .list-common text > div > div:last-of-type {\r\n flex: 1;\r\n justify-content: end;\r\n overflow: visible;\r\n}\r\n\r\n.webbpm.ervu_dashboard .graph-chart .chart-content {\r\n width: min(10vw, 12.5rem);\r\n height: min(7vw, 9rem);\r\n}\r\n.webbpm.ervu_dashboard :is(.graph-donut, .graph-donut-large) {\r\n display: flex;\r\n justify-content: center;\r\n}\r\n.webbpm.ervu_dashboard .graph-donut .chart-content {\r\n width: min(8vw, 11rem);\r\n height: min(8vw, 11rem);\r\n}\r\n.webbpm.ervu_dashboard .graph-donut-medium .chart-content {\r\n width: min(10vw, 13.5rem);\r\n height: min(10vw, 13.5rem);\r\n}\r\n.webbpm.ervu_dashboard .graph-donut-large .chart-content {\r\n width: min(14vw, 18.5rem);\r\n height: min(14vw, 18.5rem);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend .horizontal-container {\r\n align-items: center;\r\n}\r\n.webbpm.ervu_dashboard .graph-legend .horizontal-container > text {\r\n flex: 1;\r\n}\r\n.webbpm.ervu_dashboard .graph-legend .horizontal-container > text.text-invert:not(.mute) > div > div:last-of-type {\r\n font-size: var(--size-num-primary);\r\n} \r\n.webbpm.ervu_dashboard .graph-legend .mute {\r\n margin-top: var(--indent-small);\r\n} \r\n.webbpm.ervu_dashboard .graph-legend .lined {\r\n padding-top: var(--indent-small);\r\n margin-top: var(--indent-small);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-column > .vertical-container > * + * {\r\n padding-top: var(--indent-small);\r\n margin-top: var(--indent-small);\r\n border-top: 1px solid var(--color-primary-20); \r\n}\r\n.webbpm.ervu_dashboard .graph-legend-column > .vertical-container > hbox [class*=\"legend-col\"] {\r\n margin-top: var(--indent-xmini);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-column > .vertical-container .text-invert:not(.mute) {\r\n font-size: var(--size-num-primary);\r\n margin-top: var(--indent-xmini);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-column > .vertical-container .text-invert:not(.mute) label {\r\n font-size: var(--size-text-primary);\r\n color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-column > .vertical-container .text-invert > div {\r\n justify-content: flex-end;\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox {\r\n padding-right: 0;\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox + vbox {\r\n padding-left: var(--indent-base);\r\n margin-left: var(--indent-base);\r\n border-left: 1px solid var(--color-primary-20);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container {\r\n height: 100%;\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container [class*=\"legend-col\"] {\r\n padding-bottom: var(--indent-base);\r\n margin-bottom: auto;\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container .text-invert:not(.mute) {\r\n font-size: var(--size-num-primary);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox > .vertical-container .text-invert:not(.mute) label {\r\n font-size: var(--size-text-primary);\r\n color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-right {\r\n color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard .graph-legend-right .text-invert > div {\r\n justify-content: flex-end; \r\n}\r\n.webbpm.ervu_dashboard .graph-legend-right .text-invert > div > div:last-of-type {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-num-primary);\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] ervu-chart-v2 ~ hbox, \r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] > div > hbox {\r\n margin-top: var(--indent-mini);\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .form-group {\r\n align-items: baseline;\r\n line-height: normal;\r\n margin-bottom: 0;\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .mute {\r\n white-space: nowrap;\r\n} \r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] [class*=\"legend-col\"] {\r\n position: relative;\r\n padding-left: var(--indent-large);\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] [class*=\"legend-col\"]::before {\r\n content: \"\";\r\n position: absolute;\r\n width: var(--indent-base);\r\n height: var(--indent-base);\r\n top: var(--indent-xmini);\r\n left: 0;\r\n border-radius: var(--indent-base);\r\n} \r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-green::before {\r\n background-color: var(--color-success);\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-red::before {\r\n background-color: var(--color-error);\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-yellow::before {\r\n background-color: #ffc737;\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-blue-lt::before {\r\n background-color: #00f0ff;\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-blue::before {\r\n background-color: #17a8fa;\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-lila::before {\r\n background-color: #e24fd4;\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-coral::before {\r\n background-color: #ff4f5e;\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-orange::before {\r\n background-color: #d98200;\r\n}\r\n.webbpm.ervu_dashboard [class*=\"graph-legend\"] .legend-col-orange-dk::before {\r\n background-color: #db5c00;\r\n}\r\n\r\n.webbpm.ervu_dashboard .pers-group .vertical-container > text:first-child {\r\n color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard .pers-group .vertical-container > text:nth-child(2) {\r\n font-family: 'GilroySB';\r\n font-size: var(--size-num-subtitle);\r\n line-height: 1;\r\n margin-top: var(--indent-mini);\r\n}\r\n.webbpm.ervu_dashboard .pers-group .vertical-container .form-group {\r\n margin-bottom: 0;\r\n}\r\n\r\n.webbpm.ervu_dashboard .main-num-group > div.horizontal-container {\r\n align-items: flex-end;\r\n}\r\n.webbpm.ervu_dashboard .main-num-group > div text.title {\r\n font-family: 'GilroySB';\r\n font-size: var(--size-num-title);\r\n line-height: 1;\r\n margin-bottom: 0;\r\n}\r\n.webbpm.ervu_dashboard .main-num-group > div text.title + text.text-invert:not(.mute) {\r\n color: var(--color-text-secondary);\r\n font-size: var(--size-num-primary);\r\n margin: 0 0 var(--indent-xmini) var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard .main-num-group > div .form-group {\r\n margin-bottom: 0;\r\n}\r\n\r\n.webbpm.ervu_dashboard .parent-block {\r\n padding: var(--indent-mini);\r\n border-radius: var(--indent-base);\r\n border: 1px solid var(--border-dark);\r\n background: var(--bg-block);\r\n backdrop-filter: var(--bg-blur-40);\r\n}\r\n.webbpm.ervu_dashboard .parent-block > .horizontal-container > * {\r\n flex: 1;\r\n}\r\n.webbpm.ervu_dashboard .parent-block > .horizontal-container > *:not(.child-block) {\r\n padding-right: 0;\r\n} \r\n.webbpm.ervu_dashboard .parent-block > .horizontal-container > * + *,\r\n.horizontal-container > .child-block + .child-block {\r\n margin-left: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + *,\r\n.webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + .child-block {\r\n margin-top: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard .parent-block .child-block,\r\n.webbpm.ervu_dashboard .parent-block .child-block + * {\r\n flex: 1;\r\n}\r\n\r\n.webbpm.ervu_dashboard .bg-diamond {\r\n background-image: url(../img/svg/bg-diamond.svg);\r\n background-position: 100% 0;\r\n background-repeat: no-repeat;\r\n}\r\n.webbpm.ervu_dashboard .bg-diamond-people {\r\n background-image: url(../img/svg/bg-diamond.svg), url(../img/svg/bg-people.svg);\r\n background-position: 100% 0, 50% min(16vw, 20rem); \r\n background-repeat: no-repeat;\r\n}\r\n\r\n.webbpm.ervu_dashboard .child-block {\r\n padding: var(--indent-medium) var(--indent-large);\r\n border-radius: var(--indent-xbase);\r\n border: 1px solid var(--border-light);\r\n background-color: var(--bg-group); \r\n backdrop-filter: var(--bg-blur-20);\r\n}\r\n\r\n.webbpm.ervu_dashboard .search-block .child-block {\r\n padding: var(--indent-large) var(--indent-medium) var(--indent-medium);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block:first-child {\r\n min-width: min(20vw, 25rem); \r\n flex: 0;\r\n z-index: 1;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block label {\r\n display: flex;\r\n color: var(--color-text-secondary);\r\n font-family: 'GilroyM';\r\n width: auto;\r\n padding: 0;\r\n margin: 0 0 var(--indent-mini) var(--indent-small);\r\n} \r\n.webbpm.ervu_dashboard .search-block .child-block check-box label {\r\n width: min-content;\r\n} \r\n.webbpm.ervu_dashboard .search-block .child-block check-box label span {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: min(1.4vw, 1.75rem); \r\n height: min(1.4vw, 1.75rem); \r\n padding: 2px;\r\n margin: 0;\r\n border-radius: 4px;\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block check-box label input {\r\n position: absolute;\r\n z-index: -1;\r\n opacity: 0;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block check-box.wb-valid.wb-not-empty label span {\r\n content: url('../img/svg/mark.svg');\r\n border: 1px solid var(--color-success);\r\n background-color: var(--color-primary-5);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block check-box + text {\r\n color: var(--color-text-secondary);\r\n margin-left: var(--indent-base) !important;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block :is(.title, .nav-tabs, text) {\r\n margin-left: var(--indent-small);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group .form-group, \r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group .component-float {\r\n width: 100%;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker input {\r\n padding-right: 0;\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker input ~ .input-group-addon {\r\n display: flex;\r\n align-items: center;\r\n color: var(--color-text-primary);\r\n padding-right: var(--indent-small);\r\n border: 0;\r\n border-top-right-radius: 100px;\r\n border-bottom-right-radius: 100px;\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu {\r\n color: var(--color-text-primary);\r\n border-radius: 24px;\r\n border: 1px solid var(--color-text-secondary);\r\n background:\r\n linear-gradient(180deg, rgba(19, 46, 55, 0.5) 0%, rgba(19, 46, 55, 0.7) 100%),\r\n linear-gradient(180deg, rgba(8, 131, 198, 0.5) 0%, rgba(8, 131, 198, 0.7) 100%);\r\n backdrop-filter: var(--bg-blur-40);\r\n box-shadow: var(--bg-shadow);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu::after, \r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu::before {\r\n display: none;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu th {\r\n font-weight: normal;\r\n font-family: GilroySB;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu th:not(.dow):hover {\r\n color: var(--color-success);\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu td span {\r\n width: 54px;\r\n height: 32px;\r\n line-height: 32px;\r\n margin: 0;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu :is(.old, .new) {\r\n color: var(--color-text-mute);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu :is(.day, .month, .year, .decade).active,\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu :is(.day, .month, .year, .decade):hover {\r\n color: var(--color-success);\r\n background-color: transparent;\r\n} \r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu .today,\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu .today:hover {\r\n color: var(--color-text-primary);\r\n background: var(--color-success);\r\n text-shadow: none;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .filter-group date-time-picker .dropdown-menu .today::before {\r\n display: none;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .search-date .date > div {\r\n width: auto;\r\n min-width: min(7.5vw, 9.375rem); \r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .search-date date-time-picker + text {\r\n margin-left: 0;\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .search-date text {\r\n color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard .search-block .child-block .search-date text .form-group {\r\n margin-bottom: var(--indent-mini);\r\n}\r\n.webbpm.ervu_dashboard .search-block .search-main-block {\r\n width: 100%;\r\n padding: 0;\r\n}\r\n.webbpm.ervu_dashboard .search-block .search-main-block > div {\r\n height: 100%;\r\n}\r\n.webbpm.ervu_dashboard .search-block.search-add-params .child-block:first-child {\r\n min-width: 100%;\r\n}\r\n\r\n.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block, \r\n.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block ~ vbox {\r\n width: 25%;\r\n padding-right: var(--indent-large);\r\n}\r\n.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block ~ vbox {\r\n padding-left: var(--indent-large);\r\n border-left: 1px solid var(--color-primary-20);\r\n}\r\n.webbpm.ervu_dashboard .search-block.search-add-params .search-main-block ~ vbox:last-child {\r\n padding-right: 0;\r\n}\r\n.webbpm.ervu_dashboard .search-block.search-add-params .title + button-component.pull-right {\r\n margin-left: 16%;\r\n}\r\n\r\n.webbpm.ervu_dashboard .search-block .search-btn {\r\n margin-top: auto;\r\n}\r\n.webbpm.ervu_dashboard .search-block .search-btn .btn {\r\n color: var(--white);\r\n font-size: var(--size-text-subtitle);\r\n width: 100%;\r\n min-height: min(3.6vw, 4.5rem); \r\n margin: var(--indent-xbase) 0 0;\r\n border-radius: 20px; \r\n border: 1px solid var(--btn-border);\r\n background: var(--btn-bg);\r\n box-shadow: var(--btn-shadow);\r\n}\r\n.webbpm.ervu_dashboard .search-block .selectize-control {\r\n height: 100%;\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard .search-block :is(.selectize-input, input) {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-primary);\r\n min-height: max-content;\r\n padding: var(--indent-small) var(--indent-xlarge) var(--indent-small) var(--indent-medium);\r\n margin-bottom: 0;\r\n border-radius: 100px;\r\n border: 0;\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard .search-block .selectize-input {\r\n display: flex;\r\n}\r\n.webbpm.ervu_dashboard .search-block .selectize-input::after {\r\n position: absolute;\r\n content: \"\\f282\";\r\n position: absolute;\r\n font-family: bootstrap-icons !important;\r\n font-weight: 800 !important;\r\n font-size: var(--size-text-secondary);\r\n top: calc((50% - var(--size-text-secondary)/ 2));\r\n right: var(--indent-base);\r\n height: auto;\r\n width: auto;\r\n border: 0;\r\n}\r\n.webbpm.ervu_dashboard .search-block .selectize-input::before {\r\n display: none;\r\n}\r\n.webbpm.ervu_dashboard .search-block check-box label > span {\r\n width: auto;\r\n}\r\n\r\n.webbpm.ervu_dashboard .pers-block .child-block {\r\n padding: var(--indent-large);\r\n}\r\n.webbpm.ervu_dashboard .pers-block .child-block:first-child {\r\n min-width: 400px;\r\n flex: 0;\r\n background-image: url(../img/svg/bg-pers.svg); \r\n background-position: -40px 100%;\r\n background-repeat: no-repeat; \r\n}\r\n.webbpm.ervu_dashboard .pers-block .child-block text > div {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n.webbpm.ervu_dashboard .pers-block .child-block text > div label {\r\n color: var(--color-text-secondary);\r\n width: auto;\r\n}\r\n.webbpm.ervu_dashboard .pers-block .child-block .title ~ .title {\r\n margin-top: var(--indent-huge);\r\n}\r\n\r\n.webbpm.ervu_dashboard grid-v2 {\r\n flex: 1;\r\n height: auto;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular :is(.ag-root-wrapper, .ag-header-viewport, .ag-header-container, .ag-header) {\r\n background-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header {\r\n margin-bottom: var(--indent-mini);\r\n border: 0;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-row {\r\n border-bottom: 1px solid var(--color-primary-5);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell {\r\n color: var(--color-text-secondary);\r\n font-size: var(--size-text-primary);\r\n font-family: 'Gilroy';\r\n font-weight: 400;\r\n padding-left: var(--indent-small);\r\n padding-right: var(--indent-small);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell::after {\r\n background-color: var(--color-primary-5);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell:first-child {\r\n padding-left: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header .ag-header-cell:last-child {\r\n padding-right: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root {\r\n border: 0;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-row {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-addprimary);\r\n font-family: 'GilroyM';\r\n border-radius: 8px;\r\n border: 1px solid var(--color-primary-20);\r\n background-color: var(--bg-brick);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-row:is(.ag-row-selected, .ag-row-hover) {\r\n background-color: var(--bg-brick) !important;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-row:is(.ag-row-selected, .ag-row-hover):before {\r\n border-radius: 8px;\r\n background-color: var(--bg-brick) !important; \r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell {\r\n display: flex;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-not-inline-editing {\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-not-inline-editing:first-child {\r\n padding-left: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-not-inline-editing:last-child {\r\n padding-right: var(--indent-base); \r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.ag-cell-focus {\r\n border-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-font-big {\r\n font-size: var(--size-text-subtitle);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell[class*=\"cell-font-narrow\"] {\r\n color: var(--color-text-secondary);\r\n font-family: 'Gilroy';\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-font-narrow-small {\r\n font-size: var(--size-text-primary);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell[class*=\"cell-score\"] {\r\n justify-content: end;\r\n font-size: var(--size-num-subtitle);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell[class*=\"cell-score\"] .ag-cell-value {\r\n overflow: visible; \r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-score-success {\r\n color: var(--color-success);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell.cell-score-alarm {\r\n color: var(--color-error);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-root .ag-cell .ag-cell-wrapper {\r\n overflow: hidden;\r\n}\r\n.webbpm.ervu_dashboard :is(.ag-overlay-loading-center, .tooltip-default, .tooltip.show .tooltip-inner) {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-secondary);\r\n padding: var(--indent-small) var(--indent-base);\r\n border: 0;\r\n border-radius:var(--indent-xbase);\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard .tooltip .arrow {\r\n display: none;\r\n}\r\n\r\n.webbpm.ervu_dashboard grid-v2.grid-rating ag-grid-angular .ag-row {\r\n font-size: var(--size-text-subtitle);\r\n border: 0;\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard grid-v2.grid-rating ag-grid-angular .ag-row:is(.ag-row-selected, .ag-row-hover),\r\n.webbpm.ervu_dashboard grid-v2.grid-rating ag-grid-angular .ag-row:is(.ag-row-selected, .ag-row-hover):before {\r\n background-color: var(--color-dark-20) !important; \r\n}\r\n.webbpm.ervu_dashboard grid-v2.grid-rating-small ag-grid-angular .ag-cell[class*=\"cell-score\"] {\r\n font-size: var(--size-num-primary);\r\n}\r\n.webbpm.ervu_dashboard grid-v2.grid-header-free {\r\n margin-top: var(--indent-xlarge);\r\n}\r\n.webbpm.ervu_dashboard grid-v2.grid-header-free.ag-header {\r\n display: none;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-addprimary);\r\n font-family: 'GilroyM';\r\n min-height: 60px;\r\n margin-top: var(--indent-medium); \r\n border: 0;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-row-summary-panel {\r\n margin-right: var(--indent-xlarge);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-page-summary-panel {\r\n margin: 0;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-page-summary-panel .ag-paging-description {\r\n margin: 0 64px;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: min(2.9vw, 3.625rem); \r\n height: min(2.9vw, 3.625rem); \r\n margin: 0;\r\n border: 1px solid var(--color-primary-20);\r\n border-radius: 4px;\r\n background-color: var(--color-dark-20);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button + .ag-paging-button {\r\n margin-left: var(--indent-xmini);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button .ag-icon {\r\n color: var(--color-text-primary);\r\n font-size: var(--size-text-subtitle);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button.ag-disabled {\r\n border-color: transparent;\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button.ag-disabled .ag-icon {\r\n color: var(--color-text-secondary);\r\n}\r\n.webbpm.ervu_dashboard ag-grid-angular .grid-setting-icon,\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header-cell.ag-header-active .ag-header-cell-menu-button,\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header-cell .ag-header-icon .ag-icon,\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-header-row-column-filter :is(.ag-header-cell, .ag-header-group-cell)::after,\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-filter .ag-filter-condition,\r\n.webbpm.ervu_dashboard ag-grid-angular .ag-filter .ag-filter-condition ~ * {\r\n display: none !important;\r\n}\r\n\r\n\r\n.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(1) {\r\n flex: 0;\r\n}\r\n.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(2) {\r\n flex: 1.4;\r\n}\r\n.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(3) {\r\n flex: 1.2;\r\n}\r\n.webbpm.ervu_dashboard #total_registered_second .child-block:nth-child(4) {\r\n flex: 1.4;\r\n}\r\n.webbpm.ervu_dashboard #milregistration .parent-block > div > vbox:nth-child(1) {\r\n flex: 0;\r\n}\r\n.webbpm.ervu_dashboard #milregistration .parent-block .donut-absolute-row ervu-chart-v2 {\r\n justify-content: flex-end;\r\n margin-top: -70px;\r\n z-index: -1;\r\n}\r\n.webbpm.ervu_dashboard #milregistration .parent-block .donut-absolute-row .graph-legend-row {\r\n margin-top: var(--indent-base);\r\n}\r\n.webbpm.ervu_dashboard #appeals .parent-block > div > vbox:nth-child(1) {\r\n flex: 2;\r\n}\r\n.webbpm.ervu_dashboard #appeals .parent-block > div > vbox:nth-child(2) {\r\n flex: 3;\r\n}\r\n.webbpm.ervu_dashboard #appeals .parent-block > div > vbox:nth-child(3) {\r\n flex: 2;\r\n}\r\n\r\n@media ((max-width: 780px) or (orientation: portrait)) {\r\n .webbpm.ervu_dashboard .header-logo .logo-title,\r\n .webbpm.ervu_dashboard .header-menu .update-data {\r\n display: none;\r\n }\r\n .webbpm.ervu_dashboard .top-btn-block > .horizontal-container {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard .top-btn-block .component-float {\r\n width: auto;\r\n }\r\n .webbpm.ervu_dashboard .top-btn-block .pull-right {\r\n margin-left: 0;\r\n }\r\n .webbpm.ervu_dashboard .top-btn-block .pull-right > div {\r\n justify-content: flex-start;\r\n }\r\n\r\n .webbpm.ervu_dashboard .parent-block > .horizontal-container {\r\n flex-direction: column;\r\n } \r\n .webbpm.ervu_dashboard .parent-block .horizontal-container > .child-block + .child-block {\r\n margin-left: var(--indent-mini);\r\n } \r\n .webbpm.ervu_dashboard .parent-block > .horizontal-container > * + * {\r\n margin-left: 0;\r\n margin-top: var(--indent-mini);\r\n }\r\n .webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + *,\r\n .webbpm.ervu_dashboard .parent-block .vertical-container > .child-block + .child-block {\r\n margin-top: var(--indent-mini);\r\n }\r\n .webbpm.ervu_dashboard .parent-block .child-block ~ hbox > .horizontal-container {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard .parent-block .child-block ~ hbox > .horizontal-container > .child-block + .child-block {\r\n margin-left: 0;\r\n margin-top: var(--indent-mini); \r\n }\r\n\r\n .webbpm.ervu_dashboard :is(.arrow-btn, .delete-btn) .btn {\r\n position: relative;\r\n display: grid;\r\n place-items: center;\r\n width: 2.25rem; \r\n height: 2.25rem; \r\n }\r\n\r\n .webbpm.ervu_dashboard .graph-chart .chart-content {\r\n width: 12.5rem;\r\n height: 9rem;\r\n }\r\n .webbpm.ervu_dashboard .graph-donut .chart-content {\r\n width: 11rem;\r\n height: 11rem;\r\n }\r\n .webbpm.ervu_dashboard .graph-donut-medium .chart-content {\r\n width: 13.5rem;\r\n height: 13.5rem;\r\n }\r\n .webbpm.ervu_dashboard .graph-donut-large .chart-content {\r\n width: 18.5rem;\r\n height: 18.5rem;\r\n }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n .webbpm.ervu_dashboard .top-btn-block .horizontal-container {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard .top-btn-block .horizontal-container combo-box {\r\n padding-right: 0;\r\n }\r\n .webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) + :is(button-component, static-route-navigation-button) {\r\n margin-left: 0;\r\n margin-top: var(--indent-xmini);\r\n }\r\n .webbpm.ervu_dashboard .top-btn-block :is(button-component, static-route-navigation-button) button {\r\n width: 100%;\r\n }\r\n\r\n .webbpm.ervu_dashboard .child-block {\r\n padding: var(--indent-base) var(--indent-xbase);\r\n }\r\n .webbpm.ervu_dashboard .parent-block > .horizontal-container > .child-block + .child-block {\r\n margin-left: 0;\r\n }\r\n\r\n .webbpm.ervu_dashboard .graph-legend-row {\r\n margin-top: 0 !important;\r\n }\r\n .webbpm.ervu_dashboard .graph-legend-row > .horizontal-container {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard .graph-legend-row > .horizontal-container > vbox + vbox {\r\n padding-left: 0;\r\n padding-top: var(--indent-small);\r\n margin-left: 0;\r\n margin-top: var(--indent-small);\r\n border-left: 0;\r\n border-top: 1px solid var(--color-primary-20);\r\n }\r\n .webbpm.ervu_dashboard .graph-legend-row > .horizontal-container .text-invert > div {\r\n justify-content: flex-end;\r\n }\r\n .webbpm.ervu_dashboard .graph-legend-column .horizontal-container {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard .graph-legend-column .horizontal-container .pull-right {\r\n justify-content: flex-start;\r\n margin-left: 0;\r\n }\r\n .webbpm.ervu_dashboard .donut-absolute-row .active > vbox > .vertical-container {\r\n flex-direction: row;\r\n }\r\n .webbpm.ervu_dashboard .donut-absolute-row .active > vbox > .vertical-container ervu-chart-v2 {\r\n justify-content: flex-start !important;\r\n margin-top: 0 !important;\r\n z-index: 1 !important;\r\n }\r\n .webbpm.ervu_dashboard .graph-donut .chart-content,\r\n .webbpm.ervu_dashboard .graph-donut-medium .chart-content {\r\n width: 10rem;\r\n height: 10rem;\r\n }\r\n .webbpm.ervu_dashboard .graph-donut-large .chart-content {\r\n width: 18rem;\r\n height: 18rem;\r\n }\r\n\r\n .webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-button {\r\n width: 3rem;\r\n height: 3rem;\r\n }\r\n .webbpm.ervu_dashboard ag-grid-angular .ag-paging-panel .ag-paging-page-summary-panel .ag-paging-description {\r\n margin: 0 var(--indent-small);\r\n }\r\n\r\n .webbpm.ervu_dashboard .search-add-params .filter-group > div > hbox > .horizontal-container {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard .search-add-params .search-main-block, \r\n .webbpm.ervu_dashboard .search-add-params .search-main-block ~ vbox {\r\n width: 100% !important;\r\n }\r\n .webbpm.ervu_dashboard .search-add-params .search-main-block ~ vbox {\r\n padding: 0 !important;\r\n padding-top: var(--indent-base) !important;\r\n border: 0 !important;\r\n border-bottom: 1px solid var(--color-primary-20) !important;\r\n }\r\n .webbpm.ervu_dashboard .search-add-params .child-block check-box label > span {\r\n width: 1.75rem; \r\n height: 1.75rem; \r\n }\r\n .webbpm.ervu_dashboard .search-add-params .child-block check-box + text {\r\n margin-left: 1.75rem !important;\r\n }\r\n\r\n .webbpm.ervu_dashboard .pers-block .child-block {\r\n padding: var(--indent-xbase);\r\n }\r\n .webbpm.ervu_dashboard .pers-block .child-block:first-child { \r\n min-width: auto;\r\n }\r\n .webbpm.ervu_dashboard .pers-block .child-block:nth-child(2) .horizontal-container {\r\n flex-direction: column;\r\n }\r\n .webbpm.ervu_dashboard .pers-block .child-block:nth-child(2) .horizontal-container vbox, \r\n .webbpm.ervu_dashboard .pers-block .child-block:nth-child(2) .horizontal-container text {\r\n width: 100% !important;\r\n }\r\n}"]; +exports.styles = styles; diff --git a/frontend/src/resources/img/svg/bg-people.svg b/frontend/src/resources/img/svg/bg-people.svg new file mode 100644 index 0000000..ec7dd27 --- /dev/null +++ b/frontend/src/resources/img/svg/bg-people.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/src/resources/template/app/component/app_header.html b/frontend/src/resources/template/app/component/app_header.html index 106515f..f9090c5 100644 --- a/frontend/src/resources/template/app/component/app_header.html +++ b/frontend/src/resources/template/app/component/app_header.html @@ -4,7 +4,12 @@
ЕДИНЫЙ РЕЕСТР
ВОИНСКОГО УЧЕТА
-
Данные на 14 августа 2024 г.
-
+ +
+ +
+
{{realm | emptyIfNull}}
+
+
diff --git a/frontend/src/resources/template/webbpm/jwt-form.html b/frontend/src/resources/template/webbpm/jwt-form.html new file mode 100644 index 0000000..8555794 --- /dev/null +++ b/frontend/src/resources/template/webbpm/jwt-form.html @@ -0,0 +1,39 @@ + diff --git a/frontend/src/resources/template/webbpm/mfe-webbpm.html b/frontend/src/resources/template/webbpm/mfe-webbpm.html new file mode 100644 index 0000000..3d4dda0 --- /dev/null +++ b/frontend/src/resources/template/webbpm/mfe-webbpm.html @@ -0,0 +1,14 @@ +
+
+ + + +
+
+ +
+
+ + +
+
diff --git a/frontend/src/resources/template/webbpm/mfe-wrapper.html b/frontend/src/resources/template/webbpm/mfe-wrapper.html new file mode 100644 index 0000000..b2bb26f --- /dev/null +++ b/frontend/src/resources/template/webbpm/mfe-wrapper.html @@ -0,0 +1 @@ + diff --git a/frontend/src/ts/ervu-dashboard/component/filter/ComboboxFilterComponent.ts b/frontend/src/ts/ervu-dashboard/component/filter/ComboboxFilterComponent.ts new file mode 100644 index 0000000..04d8587 --- /dev/null +++ b/frontend/src/ts/ervu-dashboard/component/filter/ComboboxFilterComponent.ts @@ -0,0 +1,20 @@ +import {AnalyticalScope, ComboBox, ComboBoxModel, Filter, FilterComponent, FilterUtil} from "@webbpm/base-package"; + +@AnalyticalScope(ComboBox) +export class ComboboxFilterComponent extends FilterComponent { + + public isBusinessId: boolean; + + getFilter(): Filter { + let combobox = this.getScript(ComboBox) as ComboBox; + let model = combobox.getValueAsModel(); + + if (model) { + let value = this.isBusinessId ? model.businessId : model.id; + return FilterUtil.singleValueFilter(this.getObjectId(), value, this.operation); + } + else { + return null; + } + } +} \ No newline at end of file diff --git a/frontend/src/ts/mfe-app-tools.ts b/frontend/src/ts/mfe-app-tools.ts new file mode 100644 index 0000000..d2fd0d2 --- /dev/null +++ b/frontend/src/ts/mfe-app-tools.ts @@ -0,0 +1,74 @@ +import {platformBrowserDynamic} from "@angular/platform-browser-dynamic"; +import {MfeConfigurationProvider} from "./modules/mfe/provider/mfe-configuration.provider"; +import {NgModuleRef} from "@angular/core"; + +let childEventHandlerFromContainer = null; + +export type ChildEventType = 'navigate' | 'token-request' +export type ParentEventType = 'navigate'; + +export function fireMfeEventToContainer(eventType: ChildEventType, eventData: any): Promise { + if (typeof childEventHandlerFromContainer === 'function') { + return childEventHandlerFromContainer(eventType, eventData); + } + else { + throw new Error( + 'Event fired from child MFE to container before being bootstrapped as MFE App', + ); + } +} + +export function bootstrapMfeApp(createApp: () => Promise | void>) { + function mount( + element: HTMLElement, + settings: { + standalone: boolean, + useShadowDom?: boolean, + containerBaseUrl?: string, + componentBaseUrl?: string, + startUrl: string, + childEventHandler?: any, + params?: any + } = { + standalone: false, + startUrl: '/mfe/dashboard' + }, + ) { + let containerBaseUrl = settings.containerBaseUrl || ''; // префикс ресурса + let startUrl = settings.startUrl || ''; // ресурс хост-приложения + MfeConfigurationProvider.setPageBaseUrl(joinPath(containerBaseUrl, startUrl)); + + element.appendChild(createContainerForBootstrap()) + + childEventHandlerFromContainer = settings.childEventHandler; + + createApp(); + return { + parentEventHandler(eventType: ParentEventType, url: string) { + }, + unmount() { + console.log("Unmounting dashboard application"); + platformBrowserDynamic().destroy(); + }, + } + } + + return { + mount, + }; + +} + +function createContainerForBootstrap(): HTMLElement { + let mfeBootstrapContainer = document.createElement('div'); + mfeBootstrapContainer.setAttribute(MfeConfigurationProvider.BASE_COMPONENT_ATTRIBUTE, ''); + return mfeBootstrapContainer; +} + +export function joinPath(...paths: string[]): string { + return '/' + paths + .filter(path => path) + .map(path => path.endsWith('/') ? path.substring(0, path.length - 1) : path) + .map(path => path.startsWith('/') ? path.substring(1, path.length) : path) + .join('/') +} diff --git a/frontend/src/ts/mfe-main.aot.ts b/frontend/src/ts/mfe-main.aot.ts new file mode 100644 index 0000000..e8d5fa9 --- /dev/null +++ b/frontend/src/ts/mfe-main.aot.ts @@ -0,0 +1,18 @@ +import 'zone.js/dist/zone'; + +import {enableProdMode} from "@angular/core"; +import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; +import {bootstrapMfeApp} from './mfe-app-tools'; +// @ts-ignore +import {MfeWebbpmModuleNgFactory} from "./modules/mfe/mfe-webbpm.module.ngfactory"; + +window['dev_mode'] = false; +enableProdMode(); + +const mount = bootstrapMfeApp(() => { + return platformBrowserDynamic() + .bootstrapModuleFactory(MfeWebbpmModuleNgFactory) + .catch((err) => console.error(err)); +}).mount; + +export {mount}; diff --git a/frontend/src/ts/modules/app/app-routing.module.ts b/frontend/src/ts/modules/app/app-routing.module.ts index db91e89..15bf405 100644 --- a/frontend/src/ts/modules/app/app-routing.module.ts +++ b/frontend/src/ts/modules/app/app-routing.module.ts @@ -1,56 +1,53 @@ import {NgModule} from "@angular/core"; import {RouterModule, Routes} from "@angular/router"; -import {AccessDeniedComponent} from "./component/access-denied.component"; import {ConfirmExitGuard} from "@webbpm/base-package"; +import {RolesGuard} from "./guard/RolesGuard"; const appRoutes: Routes = [ - { - path: 'access-denied', - component: AccessDeniedComponent, - canActivate: [ConfirmExitGuard] - }, { path: 'milregistration', loadChildren: 'generated-sources/page-milregistration.module#PagemilregistrationModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], }, { path: 'appeals', loadChildren: 'generated-sources/page-appeals.module#PageappealsModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], }, { path: 'ratings', loadChildren: 'generated-sources/page-ratings.module#PageratingsModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], }, { path: 'recruitment', loadChildren: 'generated-sources/page-recruitment.module#PagerecruitmentModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], }, { path: 'notregistered', loadChildren: 'generated-sources/page-notregistered.module#PagenotregisteredModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], }, { path: 'citizen', loadChildren: 'generated-sources/page-citizen.module#PagecitizenModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], }, { path: 'citizencard/:id', loadChildren: 'generated-sources/page-citizencard.module#PagecitizencardModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], }, { path: 'main', loadChildren: 'generated-sources/page-main.module#PagemainModule', + canActivate: [ConfirmExitGuard, RolesGuard] }, { path: 'total_registered_second', loadChildren: 'generated-sources/page-total_registered_second.module#Pagetotal_registered_secondModule', + canActivate: [ConfirmExitGuard, RolesGuard] } ]; diff --git a/frontend/src/ts/modules/app/app.module.ts b/frontend/src/ts/modules/app/app.module.ts index c5b526d..135b21a 100644 --- a/frontend/src/ts/modules/app/app.module.ts +++ b/frontend/src/ts/modules/app/app.module.ts @@ -13,7 +13,6 @@ import { } from "@webbpm/base-package"; import {AppHeaderComponent} from "./component/app-header.component"; import {AppFooterComponent} from "./component/app-footer.component"; -import {AccessDeniedComponent} from "./component/access-denied.component"; import {ApplicationVersionComponent} from "./component/application-version.component"; import {RouterModule} from "@angular/router"; import {InternationalPhoneNumberModule} from "ngx-international-phone-number"; @@ -21,13 +20,13 @@ import {AppProgressIndicationComponent} from "./component/app-progress-indicatio import {AppProgressIndicationService} from "./service/app-progress-indication.service"; import {ErvuChartV2} from "../../ervu-dashboard/component/chart/ErvuChartV2"; import {FilterContainer} from "../../ervu-dashboard/component/filter/FilterContainer"; +import {TokenInterceptor} from "./interceptor/token-interceptor.service"; registerLocaleData(localeRu); export const DIRECTIVES = [ forwardRef(() => AppHeaderComponent), forwardRef(() => AppFooterComponent), forwardRef(() => ApplicationVersionComponent), - forwardRef(() => AccessDeniedComponent), forwardRef(() => AppProgressIndicationComponent), forwardRef(() => ErvuChartV2), forwardRef(() => FilterContainer) @@ -53,7 +52,8 @@ export const DIRECTIVES = [ DIRECTIVES ], providers: [ - { provide: ProgressIndicationService, useClass: AppProgressIndicationService } + TokenInterceptor, + {provide: ProgressIndicationService, useClass: AppProgressIndicationService} ], bootstrap: [], entryComponents: [AppProgressIndicationComponent] diff --git a/frontend/src/ts/modules/app/component/app-header.component.ts b/frontend/src/ts/modules/app/component/app-header.component.ts index 4c0d621..eaa14ca 100644 --- a/frontend/src/ts/modules/app/component/app-header.component.ts +++ b/frontend/src/ts/modules/app/component/app-header.component.ts @@ -1,5 +1,5 @@ -import {ChangeDetectionStrategy, Component} from "@angular/core"; -import {Router} from "@angular/router"; +import {ChangeDetectionStrategy, ChangeDetectorRef, Component} from "@angular/core"; +import {AuthorizationService} from "../service/authorization.service"; @Component({ moduleId: module.id, @@ -9,7 +9,16 @@ import {Router} from "@angular/router"; }) export class AppHeaderComponent { + name: string; + realm: string; - constructor(protected router: Router) { + constructor(protected authService: AuthorizationService, + protected cd: ChangeDetectorRef) { + authService.onSessionUpdate + .subscribe(session => { + this.name = session.name; + this.realm = session.realm; + cd.markForCheck() + }) } } diff --git a/frontend/src/ts/modules/app/guard/RolesGuard.ts b/frontend/src/ts/modules/app/guard/RolesGuard.ts new file mode 100644 index 0000000..a48d8ec --- /dev/null +++ b/frontend/src/ts/modules/app/guard/RolesGuard.ts @@ -0,0 +1,48 @@ +import { + ActivatedRouteSnapshot, + CanActivate, + Router, + RouterStateSnapshot, + UrlTree +} from "@angular/router"; +import {Observable} from "rxjs"; +import {Injectable} from "@angular/core"; +import {AuthorizationService} from "../service/authorization.service"; +import {TokenProvider} from "../provider/token.provider"; + +@Injectable({providedIn: 'root'}) +export class RolesGuard implements CanActivate { + + protected readonly allowedRoles: string[] = []; + + constructor(protected authService: AuthorizationService, + protected tokenProvider: TokenProvider, + protected router: Router) { + } + + async canActivate( + route: ActivatedRouteSnapshot, state: RouterStateSnapshot + ): Promise { + if (!await this.tokenProvider.getToken()) { + return this.getUrlOnFailure() + } + + if (!this.authService.isAuthorized()) { + return this.authService.getCurrentSession() + .then(() => this.checkRoles() ? true : this.getUrlOnFailure()) + .catch(() => this.getUrlOnFailure()); + } + else { + return this.checkRoles(); + } + } + + protected getUrlOnFailure(): UrlTree { + return null; + } + + protected checkRoles(): boolean { + return this.allowedRoles.length === 0 + || this.authService.hasAnyRole(this.allowedRoles); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/app/interceptor/token-interceptor.service.ts b/frontend/src/ts/modules/app/interceptor/token-interceptor.service.ts new file mode 100644 index 0000000..257d007 --- /dev/null +++ b/frontend/src/ts/modules/app/interceptor/token-interceptor.service.ts @@ -0,0 +1,21 @@ +import {HttpRequest, HttpHandler, HttpEvent, HttpInterceptor} from "@angular/common/http"; +import {from, Observable} from "rxjs"; +import {Injectable} from "@angular/core"; +import {TokenProvider} from "../provider/token.provider"; + +@Injectable({providedIn: 'root'}) +export class TokenInterceptor implements HttpInterceptor { + constructor(protected tokenProvider: TokenProvider) { } + + intercept(request: HttpRequest, next: HttpHandler): Observable> { + return from(this.handle(request, next)) + } + + private async handle(request: HttpRequest, next: HttpHandler): Promise> { + const token = await this.tokenProvider.getToken(); + request = request.clone({ + setHeaders: { Authorization: `Bearer ${token}` } + }); + return next.handle(request).toPromise(); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/app/provider/token.provider.ts b/frontend/src/ts/modules/app/provider/token.provider.ts new file mode 100644 index 0000000..f88da2f --- /dev/null +++ b/frontend/src/ts/modules/app/provider/token.provider.ts @@ -0,0 +1,3 @@ +export class TokenProvider { + public getToken(): Promise { return null } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/app/service/app-progress-indication.service.ts b/frontend/src/ts/modules/app/service/app-progress-indication.service.ts index 48100d5..f894f86 100644 --- a/frontend/src/ts/modules/app/service/app-progress-indication.service.ts +++ b/frontend/src/ts/modules/app/service/app-progress-indication.service.ts @@ -10,16 +10,16 @@ export class AppProgressIndicationService { event.stopPropagation(); }; - private counter: number = 0; - private focused: any; - private ngbModalRef: NgbModalRef; - private options: NgbModalOptions = { + protected counter: number = 0; + protected focused: any; + protected ngbModalRef: NgbModalRef; + protected options: NgbModalOptions = { backdrop: 'static', keyboard: false, windowClass: 'modal-center loader' }; - constructor(private ngbModal: NgbModal) { + constructor(protected ngbModal: NgbModal) { } public showProgressBar(): boolean { @@ -58,11 +58,11 @@ export class AppProgressIndicationService { } } - private showProgressIndicator() { + protected showProgressIndicator() { this.ngbModalRef = this.ngbModal.open(AppProgressIndicationComponent, this.options); } - private hideProgressIndicator() { + protected hideProgressIndicator() { this.ngbModalRef.dismiss('cancel'); this.ngbModalRef = null; } diff --git a/frontend/src/ts/modules/app/service/authorization.service.ts b/frontend/src/ts/modules/app/service/authorization.service.ts new file mode 100644 index 0000000..ee04495 --- /dev/null +++ b/frontend/src/ts/modules/app/service/authorization.service.ts @@ -0,0 +1,55 @@ +import {Injectable} from "@angular/core"; +import {HttpClient} from "@angular/common/http"; +import {Subject} from "rxjs"; + +export interface UserSession { + name: string, + realm: string, + recruitmentId: string, + roles: string[] +} + +@Injectable({providedIn: 'root'}) +export class AuthorizationService { + + private session: UserSession; + + public onSessionUpdate: Subject = new Subject(); + + constructor(protected httpClient: HttpClient) {} + + public getCurrentSession(): Promise { + if (this.session) return new Promise(resolve => resolve(this.session)) + return this.httpClient.get('session') + .toPromise() + .then((session: UserSession) => { + this.session = session; + this.onSessionUpdate.next(session); + return session; + }) + } + + isAuthorized(): boolean { + return !!this.session; + } + + hasAnyRole(roles: string[]): boolean { + return this.isAuthorized() && roles.some(role => this.getRoles().includes(role)); + } + + getName(): string { + return this.isAuthorized() ? this.session.name : null; + } + + getRealm(): string { + return this.isAuthorized() ? this.session.realm : null; + } + + getRecruitmentId(): string { + return this.isAuthorized() ? this.session.recruitmentId : null; + } + + getRoles(): string[] { + return this.isAuthorized() ? this.session.roles : null; + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/component/mfe-webbpm.component.ts b/frontend/src/ts/modules/mfe/component/mfe-webbpm.component.ts new file mode 100644 index 0000000..5dc7f0c --- /dev/null +++ b/frontend/src/ts/modules/mfe/component/mfe-webbpm.component.ts @@ -0,0 +1,36 @@ +import {Component, ViewEncapsulation} from "@angular/core"; +import { + Event, + NavigationCancel, + NavigationEnd, + NavigationError, + NavigationStart, + Router +} from "@angular/router"; +import {ProgressIndicationService} from "@webbpm/base-package"; + +@Component({ + moduleId: module.id, + encapsulation: ViewEncapsulation.ShadowDom, + selector: 'mfe-webbpm', + templateUrl: './../../../../../src/resources/template/webbpm/mfe-webbpm.html', + styleUrls: ['./../../../../../src/resources/css/style.css'], + }) +export class MfeWebbpmComponent { + public headerVisible: boolean = true; + public footerVisible: boolean = true; + + constructor(private router: Router, + private progressIndicationService: ProgressIndicationService) { + router.events.subscribe((event: Event) => { + if (event instanceof NavigationStart) { + progressIndicationService.showProgressBar(); + } + else if (event instanceof NavigationEnd + || event instanceof NavigationError + || event instanceof NavigationCancel) { + progressIndicationService.hideProgressBar(); + } + }) + } +} diff --git a/frontend/src/ts/modules/mfe/component/mfe-wrapper.component.ts b/frontend/src/ts/modules/mfe/component/mfe-wrapper.component.ts new file mode 100644 index 0000000..2d6a8a0 --- /dev/null +++ b/frontend/src/ts/modules/mfe/component/mfe-wrapper.component.ts @@ -0,0 +1,12 @@ +import {Component} from "@angular/core"; +import {MfeConfigurationProvider} from "../provider/mfe-configuration.provider"; + +@Component({ + moduleId: module.id, + selector: `[${MfeConfigurationProvider.BASE_COMPONENT_ATTRIBUTE}]`, + templateUrl: './../../../../../src/resources/template/webbpm/mfe-wrapper.html', + styleUrls: ['./../../../../../src/resources/css/font-faces.css'] + }) +export class MfeWrapperComponent { + +} \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/guard/MfeRolesGuard.ts b/frontend/src/ts/modules/mfe/guard/MfeRolesGuard.ts new file mode 100644 index 0000000..d4f7abe --- /dev/null +++ b/frontend/src/ts/modules/mfe/guard/MfeRolesGuard.ts @@ -0,0 +1,10 @@ +import {RolesGuard} from "../../app/guard/RolesGuard"; +import {UrlTree} from "@angular/router"; +import {Injectable} from "@angular/core"; + +@Injectable({providedIn: 'root'}) +export class MfeRolesGuard extends RolesGuard { + protected getUrlOnFailure(): UrlTree { + return this.router.createUrlTree(['access-denied']); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/interceptor/mfe-default-interceptors.prod.ts b/frontend/src/ts/modules/mfe/interceptor/mfe-default-interceptors.prod.ts new file mode 100644 index 0000000..99fd2d2 --- /dev/null +++ b/frontend/src/ts/modules/mfe/interceptor/mfe-default-interceptors.prod.ts @@ -0,0 +1,14 @@ +import {HTTP_INTERCEPTORS} from "@angular/common/http"; +import { + FormDirtyInterceptor, + HttpSecurityErrorInterceptor +} from "@webbpm/base-package"; +import {TokenInterceptor} from "../../app/interceptor/token-interceptor.service"; +import {MfeHttpBackendInterceptor} from "./mfe-http-backend-interceptor"; + +export const DEFAULT_HTTP_INTERCEPTOR_PROVIDERS = [ + {provide: HTTP_INTERCEPTORS, useClass: MfeHttpBackendInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: HttpSecurityErrorInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: FormDirtyInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true} +]; \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/interceptor/mfe-http-backend-interceptor.ts b/frontend/src/ts/modules/mfe/interceptor/mfe-http-backend-interceptor.ts new file mode 100644 index 0000000..be60fae --- /dev/null +++ b/frontend/src/ts/modules/mfe/interceptor/mfe-http-backend-interceptor.ts @@ -0,0 +1,66 @@ +import { + HttpEvent, + HttpHandler, + HttpInterceptor, + HttpRequest +} from "@angular/common/http"; +import {Observable} from "rxjs"; +import { + AppConfigService, + ApplicationSettingsProvider, + AppVersionService, + TokenHeaderUtil +} from "@webbpm/base-package"; +import {MfeConfigurationProvider} from "../provider/mfe-configuration.provider"; +import {joinPath} from "../../../mfe-app-tools"; + +export class MfeHttpBackendInterceptor implements HttpInterceptor { + private static readonly CONTENT_TYPE_HEADER = 'Content-Type'; + private static readonly ENABLE_VERSION_IN_URL: string = "enable.version.in.url"; + private static readonly BACKEND_URL: string = "backend.url"; + private static readonly BACKEND_CONTEXT: string = "backend.context"; + + constructor(private appConfigService: AppConfigService, + private appVersionService: AppVersionService) { + } + + intercept(req: HttpRequest, next: HttpHandler): Observable> { + req = TokenHeaderUtil.addHeader( + req, MfeHttpBackendInterceptor.CONTENT_TYPE_HEADER, 'application/json;charset=UTF-8' + ); + + let overrideObj + + if (!req.url.startsWith(ApplicationSettingsProvider.RESOURCES_PATH) + && !req.url.startsWith('http:') && !req.url.startsWith('https:')) { + + let appVersionInUrl = this.getVersion(); + let backendUrl = this.appConfigService.getParamValue(MfeHttpBackendInterceptor.BACKEND_URL); + let backendContext = this.appConfigService.getParamValue( + MfeHttpBackendInterceptor.BACKEND_CONTEXT); + + let url; + + if (backendUrl) { + url = backendUrl; + } + else if (backendContext) { + url = joinPath( + MfeConfigurationProvider.MFE_BASE_URL, + backendContext + ); + } + else { + url = ApplicationSettingsProvider.BACKEND_URL; + } + + overrideObj = {url: `${url}${appVersionInUrl}/${req.url}`}; + } + return next.handle(req.clone(overrideObj)); + } + + private getVersion(): string { + return this.appConfigService.getParamValue(MfeHttpBackendInterceptor.ENABLE_VERSION_IN_URL) == + "true" ? "-" + this.appVersionService.getAppVersion() : ""; + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/mfe-webbpm-routing.module.ts b/frontend/src/ts/modules/mfe/mfe-webbpm-routing.module.ts new file mode 100644 index 0000000..f3b088a --- /dev/null +++ b/frontend/src/ts/modules/mfe/mfe-webbpm-routing.module.ts @@ -0,0 +1,41 @@ +import {NgModule} from "@angular/core"; +import {RouterModule, Routes} from "@angular/router"; +import { + ConfirmExitGuard +} from "@webbpm/base-package"; +import {APP_BASE_HREF} from "@angular/common"; +import {MfeConfigurationProvider} from "./provider/mfe-configuration.provider"; +import {RolesGuard} from "../app/guard/RolesGuard"; +import {AccessDeniedComponent} from "../app/component/access-denied.component"; + +const webbpmRoutes: Routes = [ + { + path: 'access-denied', + component: AccessDeniedComponent, + }, + { + path: '', + loadChildren: 'generated-sources/page-main.module#PagemainModule', + canActivate: [ConfirmExitGuard, RolesGuard], + pathMatch: 'full', + + }, + { + path: '**', + redirectTo: '', + } +]; + +@NgModule({ + providers: [ + {provide: APP_BASE_HREF, useFactory: () => MfeConfigurationProvider.getPageBaseUrl()} + ], + imports: [RouterModule.forRoot(webbpmRoutes, { + useHash: false, + onSameUrlNavigation: "reload" + })], + exports: [RouterModule] + }) +export class MfeWebbpmRoutingModule { + +} diff --git a/frontend/src/ts/modules/mfe/mfe-webbpm.module.ts b/frontend/src/ts/modules/mfe/mfe-webbpm.module.ts new file mode 100644 index 0000000..2124752 --- /dev/null +++ b/frontend/src/ts/modules/mfe/mfe-webbpm.module.ts @@ -0,0 +1,68 @@ +import {APP_INITIALIZER, ErrorHandler, forwardRef, NgModule} from "@angular/core"; +import {BrowserModule} from "@angular/platform-browser"; +import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; +import {FormsModule} from "@angular/forms"; +import {AgGridModule} from "ag-grid-angular"; +import {NgbModule} from "@ng-bootstrap/ng-bootstrap"; +import {ToastNoAnimationModule} from "ngx-toastr"; +import {AppModule} from "../app/app.module"; +import { + AppConfigService, + AppVersionService, + BpmnModule, + ComponentsModule, + CoreModule, ProgressIndicationService, +} from "@webbpm/base-package"; +import {AppRoutingModule} from "../app/app-routing.module"; +import {GlobalErrorHandler} from "../webbpm/handler/global-error.handler.prod"; +import {DEFAULT_HTTP_INTERCEPTOR_PROVIDERS} from "./interceptor/mfe-default-interceptors.prod"; +import {MfeAppVersionService} from "./service/mfe-app-version.service"; +import {MfeAppConfigService} from "./service/mfe-app-config.service"; +import {MfeWebbpmComponent} from "./component/mfe-webbpm.component"; +import {MfeWebbpmRoutingModule} from "./mfe-webbpm-routing.module"; +import {MfeWrapperComponent} from "./component/mfe-wrapper.component"; +import {MfeProgressIndicationService} from "./service/mfe-progress-indication.service"; +import {RolesGuard} from "../app/guard/RolesGuard"; +import {MfeRolesGuard} from "./guard/MfeRolesGuard"; +import {TokenProvider} from "../app/provider/token.provider"; +import {MfeTokenProvider} from "./provider/mfe-token.provider"; +import {AccessDeniedComponent} from "../app/component/access-denied.component"; + +let IMPORTS = [ + BrowserAnimationsModule, + BrowserModule, + FormsModule, + NgbModule, + ToastNoAnimationModule.forRoot(), + AgGridModule, + AppRoutingModule, + BpmnModule, + CoreModule, + ComponentsModule, + AppModule, + MfeWebbpmRoutingModule +]; + +@NgModule({ + imports: IMPORTS, + declarations: [ + MfeWrapperComponent, + MfeWebbpmComponent, + AccessDeniedComponent + ], + exports: [], + providers: [ + {provide: AppVersionService, useClass: MfeAppVersionService}, + {provide: AppConfigService, useClass: MfeAppConfigService}, + {provide: ErrorHandler, useClass: GlobalErrorHandler}, + {provide: ProgressIndicationService, useClass: MfeProgressIndicationService}, + {provide: RolesGuard, useClass: MfeRolesGuard}, + {provide: TokenProvider, useClass: MfeTokenProvider}, + DEFAULT_HTTP_INTERCEPTOR_PROVIDERS + ], + bootstrap: [ + MfeWrapperComponent + ] + }) +export class MfeWebbpmModule { +} diff --git a/frontend/src/ts/modules/mfe/provider/mfe-configuration.provider.ts b/frontend/src/ts/modules/mfe/provider/mfe-configuration.provider.ts new file mode 100644 index 0000000..511274a --- /dev/null +++ b/frontend/src/ts/modules/mfe/provider/mfe-configuration.provider.ts @@ -0,0 +1,14 @@ +export class MfeConfigurationProvider { + private static config; // way to avoid webpack optimization + public static MFE_BASE_URL = process.env.MFE_BASE_URL || ''; + public static BASE_COMPONENT_ATTRIBUTE = 'mfe-webbpm-dashboard'; + + public static getPageBaseUrl(): string { + return this.config.PAGE_BASE_URL + } + + public static setPageBaseUrl(pageBaseUrl: string) { + if (!this.config) this.config = {}; + this.config.PAGE_BASE_URL = pageBaseUrl; + } +} diff --git a/frontend/src/ts/modules/mfe/provider/mfe-token.provider.ts b/frontend/src/ts/modules/mfe/provider/mfe-token.provider.ts new file mode 100644 index 0000000..0b1a607 --- /dev/null +++ b/frontend/src/ts/modules/mfe/provider/mfe-token.provider.ts @@ -0,0 +1,8 @@ +import {TokenProvider} from "../../app/provider/token.provider"; +import {fireMfeEventToContainer} from "../../../mfe-app-tools"; + +export class MfeTokenProvider extends TokenProvider { + getToken(): Promise { + return fireMfeEventToContainer('token-request', {}); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/service/mfe-app-config.service.ts b/frontend/src/ts/modules/mfe/service/mfe-app-config.service.ts new file mode 100644 index 0000000..27ad22c --- /dev/null +++ b/frontend/src/ts/modules/mfe/service/mfe-app-config.service.ts @@ -0,0 +1,28 @@ +import {Injectable} from "@angular/core"; +import {AppConfigService, ApplicationSettingsProvider} from "@webbpm/base-package"; +import {HttpClient} from "@angular/common/http"; +import {MfeConfigurationProvider} from "../provider/mfe-configuration.provider"; +import {joinPath} from "../../../mfe-app-tools"; + +@Injectable({providedIn:'root'}) +export class MfeAppConfigService extends AppConfigService { + + load(): Promise { + let http: HttpClient = this['http']; + let url = joinPath( + MfeConfigurationProvider.MFE_BASE_URL, + ApplicationSettingsProvider.RESOURCES_PATH, + 'app-config.json' + ) + return http + .get(url) + .toPromise() + .then(configData => { + this['mapParam'] = configData; + }) + .catch((error: any): any => { + console.error('Dashboard configuration file "app-config.json" could not be read'); + return Promise.reject(error); + }); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/service/mfe-app-version.service.ts b/frontend/src/ts/modules/mfe/service/mfe-app-version.service.ts new file mode 100644 index 0000000..3012790 --- /dev/null +++ b/frontend/src/ts/modules/mfe/service/mfe-app-version.service.ts @@ -0,0 +1,29 @@ +import {ApplicationSettingsProvider, AppVersionService} from "@webbpm/base-package"; +import {Injectable} from "@angular/core"; +import {HttpClient} from "@angular/common/http"; +import {MfeConfigurationProvider} from "../provider/mfe-configuration.provider"; +import {joinPath} from "../../../mfe-app-tools"; + +@Injectable({providedIn:'root'}) +export class MfeAppVersionService extends AppVersionService { + + load(): Promise { + let http: HttpClient = this['http']; + let url = joinPath( + MfeConfigurationProvider.MFE_BASE_URL, + ApplicationSettingsProvider.RESOURCES_PATH, + 'app.version' + ) + return http + .get(url, {responseType: 'text'}) + .toPromise() + .then(version => { + this['appVersion'] = version; + console.log(`Dashboard application version = ${version}`); + }) + .catch((error: any): any => { + console.error('Dashboard file "app.version" could not be read'); + return Promise.reject(error); + }); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/mfe/service/mfe-progress-indication.service.ts b/frontend/src/ts/modules/mfe/service/mfe-progress-indication.service.ts new file mode 100644 index 0000000..4f67b9a --- /dev/null +++ b/frontend/src/ts/modules/mfe/service/mfe-progress-indication.service.ts @@ -0,0 +1,20 @@ +import {AppProgressIndicationService} from "../../app/service/app-progress-indication.service"; +import {Injectable} from "@angular/core"; +import { + AppProgressIndicationComponent +} from "../../app/component/app-progress-indication.component"; + +@Injectable({providedIn: 'root'}) +export class MfeProgressIndicationService extends AppProgressIndicationService { + + protected showProgressIndicator() { + const options = {...this.options}; + options.container = this.getContainerForProgressIndication(); + this.ngbModalRef = this.ngbModal.open(AppProgressIndicationComponent, options); + } + + getContainerForProgressIndication(): HTMLElement { + return document.querySelector('mfe-webbpm') + .shadowRoot.querySelector('[webbpm]'); + } +} diff --git a/frontend/src/ts/modules/webbpm/component/token-form.component.ts b/frontend/src/ts/modules/webbpm/component/token-form.component.ts new file mode 100644 index 0000000..a71648b --- /dev/null +++ b/frontend/src/ts/modules/webbpm/component/token-form.component.ts @@ -0,0 +1,49 @@ +import {Component} from "@angular/core"; +import {Router} from "@angular/router"; +import {WebbpmTokenProvider} from "../provider/webbpm-token-provider"; + +@Component({ + moduleId: module.id, + selector: 'token-form', + templateUrl: './../../../../../src/resources/template/webbpm/jwt-form.html' + }) +export class TokenFormComponent { + + name: string = ''; + realm: string = ''; + recruitmentId: string = ''; + role: string = ''; + + private readonly encodedHeader = this.encodeBase64Url(JSON.stringify({ + kid: "69d4a060-4053-4056-ae69-5e9bcf41125f", + typ: "JWT", + alg: "RS512" + })); + + constructor(private router: Router) { + } + + public enter() { + localStorage.setItem(WebbpmTokenProvider.ACCESS_TOKEN_STORAGE_KEY, this.generateToken()); + this.router.navigateByUrl(''); + } + + private generateToken(): string { + let claims = { + name: this.name, + realm: this.realm, + recruitmentId: this.recruitmentId, + roles: [this.role] + }; + return `${this.encodedHeader}.${this.encodeBase64Url(JSON.stringify(claims))}.` + } + + private encodeBase64Url(input: string): string { + let bytes = new TextEncoder().encode(input); + const byteArray = Array.from(bytes); + const binString = String.fromCharCode(...byteArray); + return btoa(binString).replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+$/, ''); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/webbpm/component/webbpm.component.ts b/frontend/src/ts/modules/webbpm/component/webbpm.component.ts index df6a67a..f577132 100644 --- a/frontend/src/ts/modules/webbpm/component/webbpm.component.ts +++ b/frontend/src/ts/modules/webbpm/component/webbpm.component.ts @@ -1,4 +1,4 @@ -import {Component} from "@angular/core"; +import {Component, ElementRef} from "@angular/core"; import { Event, NavigationCancel, @@ -18,7 +18,7 @@ export class WebbpmComponent { public headerVisible: boolean = true; public footerVisible: boolean = true; - constructor(private router: Router, + constructor(private elementRef: ElementRef, private router: Router, private progressIndicationService: ProgressIndicationService) { router.events.subscribe((event: Event) => { if (event instanceof NavigationStart) { @@ -29,6 +29,17 @@ export class WebbpmComponent { || event instanceof NavigationCancel) { progressIndicationService.hideProgressBar(); } + + if (event instanceof NavigationEnd) { + let navigationEnd = (event); + + if (navigationEnd.urlAfterRedirects.startsWith('/citizencard/')) { + $(elementRef.nativeElement).addClass('citizencard'); + } + else { + $(elementRef.nativeElement).removeClass('citizencard'); + } + } }) } } diff --git a/frontend/src/ts/modules/webbpm/guard/WebbpmRolesGuard.ts b/frontend/src/ts/modules/webbpm/guard/WebbpmRolesGuard.ts new file mode 100644 index 0000000..9b75032 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/guard/WebbpmRolesGuard.ts @@ -0,0 +1,10 @@ +import {RolesGuard} from "../../app/guard/RolesGuard"; +import {Injectable} from "@angular/core"; +import {UrlTree} from "@angular/router"; + +@Injectable({providedIn: 'root'}) +export class WebbpmRolesGuard extends RolesGuard { + protected getUrlOnFailure(): UrlTree { + return this.router.createUrlTree(['token-form']); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts index 07735d5..3d042b2 100644 --- a/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts +++ b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts @@ -4,9 +4,11 @@ import { HttpSecurityErrorInterceptor, HttpSecurityInterceptor } from "@webbpm/base-package"; +import {TokenInterceptor} from "../../app/interceptor/token-interceptor.service"; export const DEFAULT_HTTP_INTERCEPTOR_PROVIDERS = [ {provide: HTTP_INTERCEPTORS, useClass: HttpSecurityInterceptor, multi: true}, {provide: HTTP_INTERCEPTORS, useClass: HttpSecurityErrorInterceptor, multi: true}, - {provide: HTTP_INTERCEPTORS, useClass: FormDirtyInterceptor, multi: true} + {provide: HTTP_INTERCEPTORS, useClass: FormDirtyInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true} ]; diff --git a/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts index ee46e0c..74bc28c 100644 --- a/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts +++ b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts @@ -1,9 +1,11 @@ import {HTTP_INTERCEPTORS} from "@angular/common/http"; import {FormDirtyInterceptor, HttpSecurityInterceptor} from "@webbpm/base-package"; import {DevHttpSecurityErrorInterceptor} from "./http-security-error-interceptor.dev"; +import {TokenInterceptor} from "../../app/interceptor/token-interceptor.service"; export const DEFAULT_HTTP_INTERCEPTOR_PROVIDERS = [ {provide: HTTP_INTERCEPTORS, useClass: HttpSecurityInterceptor, multi: true}, {provide: HTTP_INTERCEPTORS, useClass: DevHttpSecurityErrorInterceptor, multi: true}, - {provide: HTTP_INTERCEPTORS, useClass: FormDirtyInterceptor, multi: true} + {provide: HTTP_INTERCEPTORS, useClass: FormDirtyInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true} ]; diff --git a/frontend/src/ts/modules/webbpm/provider/webbpm-token-provider.ts b/frontend/src/ts/modules/webbpm/provider/webbpm-token-provider.ts new file mode 100644 index 0000000..ea6e1d2 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/provider/webbpm-token-provider.ts @@ -0,0 +1,12 @@ +import {TokenProvider} from "../../app/provider/token.provider"; + +export class WebbpmTokenProvider implements TokenProvider { + + public static readonly ACCESS_TOKEN_STORAGE_KEY = 'accessToken' + + getToken(): Promise { + return new Promise(resolve => { + resolve(localStorage.getItem(WebbpmTokenProvider.ACCESS_TOKEN_STORAGE_KEY)); + }); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/webbpm/webbpm-routing.module.ts b/frontend/src/ts/modules/webbpm/webbpm-routing.module.ts index b61370b..3576d2c 100644 --- a/frontend/src/ts/modules/webbpm/webbpm-routing.module.ts +++ b/frontend/src/ts/modules/webbpm/webbpm-routing.module.ts @@ -3,12 +3,18 @@ import {RouterModule, Routes} from "@angular/router"; import { ConfirmExitGuard } from "@webbpm/base-package"; +import {TokenFormComponent} from "./component/token-form.component"; +import {RolesGuard} from "../app/guard/RolesGuard"; const webbpmRoutes: Routes = [ + { + path: 'token-form', + component: TokenFormComponent + }, { path: '', loadChildren: 'generated-sources/page-main.module#PagemainModule', - canActivate: [ConfirmExitGuard], + canActivate: [ConfirmExitGuard, RolesGuard], pathMatch: 'full', }, { diff --git a/frontend/src/ts/modules/webbpm/webbpm.module.ts b/frontend/src/ts/modules/webbpm/webbpm.module.ts index c9ef120..6c1c4b4 100644 --- a/frontend/src/ts/modules/webbpm/webbpm.module.ts +++ b/frontend/src/ts/modules/webbpm/webbpm.module.ts @@ -1,4 +1,4 @@ -import {ErrorHandler, NgModule} from "@angular/core"; +import {ErrorHandler, forwardRef, NgModule} from "@angular/core"; import {BrowserModule} from "@angular/platform-browser"; import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; import {FormsModule} from "@angular/forms"; @@ -17,6 +17,11 @@ import { import {AppRoutingModule} from "../app/app-routing.module"; import {GlobalErrorHandler} from "./handler/global-error.handler.prod"; import {DEFAULT_HTTP_INTERCEPTOR_PROVIDERS} from "./interceptor/default-interceptors.prod"; +import {WebbpmTokenProvider} from "./provider/webbpm-token-provider"; +import {TokenFormComponent} from "./component/token-form.component"; +import {TokenProvider} from "../app/provider/token.provider"; +import {RolesGuard} from "../app/guard/RolesGuard"; +import {WebbpmRolesGuard} from "./guard/WebbpmRolesGuard"; let IMPORTS = [ BrowserAnimationsModule, @@ -37,11 +42,14 @@ let IMPORTS = [ imports: IMPORTS, declarations: [ WebbpmComponent, - HomeComponent + HomeComponent, + TokenFormComponent ], exports: [], providers: [ {provide: ErrorHandler, useClass: GlobalErrorHandler}, + {provide: TokenProvider, useClass: WebbpmTokenProvider}, + {provide: RolesGuard, useClass: WebbpmRolesGuard}, DEFAULT_HTTP_INTERCEPTOR_PROVIDERS ], bootstrap: [ diff --git a/frontend/webpack.aot.config.js b/frontend/webpack.aot.config.js index 6615ed7..c3bfd2d 100644 --- a/frontend/webpack.aot.config.js +++ b/frontend/webpack.aot.config.js @@ -6,17 +6,25 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const TerserPlugin = require('terser-webpack-plugin'); +const Dotenv = require('dotenv-webpack'); +const {config} = require('dotenv') +const { + container: {ModuleFederationPlugin} +} = webpack; +const {normalizeCssPaths} = require("./normalize-css-path"); function _path(p) { return path.join(__dirname, p); } +config(); + module.exports = { mode: 'production', entry: { - 'polyfills': './build/scripts/polyfills.js', - 'vendor': './build/scripts/vendor.js', - 'main': './build/scripts/main.aot.js' + polyfills: './build/scripts/polyfills.js', + vendor: './build/scripts/vendor.js', + main: './build/scripts/main.aot.js', }, context: process.cwd(), @@ -24,26 +32,33 @@ module.exports = { output: { path: path.join(process.cwd(), './dist'), filename: '[name].[chunkhash].bundle.js', - chunkFilename: '[id].[chunkhash].chunk.js' + chunkFilename: '[id].[chunkhash].chunk.js', + assetModuleFilename: 'src/resources/[base]', + publicPath: 'auto' }, module: { rules: [ { test: /\.js$/, - loader: 'babel-loader', - include: [path.resolve(__dirname, "node_modules")], - options: { - presets: ['@babel/preset-env'] + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env'] + } } }, { test: /\.js$/, - loader: 'angular-router-loader?aot=true' + use: { + loader: 'angular-router-loader?aot=true' + } }, { test: /\.html$/, - loader: 'raw-loader' + use: { + loader: 'raw-loader' + } }, { test: /\.css$/, @@ -56,12 +71,14 @@ module.exports = { // publicPath: '../' } }, - "css-loader" + { + loader: 'css-loader' + } ] }, { test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico|otf)$/, - loader: 'file-loader?name=src/resources/[name].[hash].[ext]' + type: 'asset/resource' } ] }, @@ -69,7 +86,6 @@ module.exports = { optimization: { minimizer: [ new TerserPlugin({ - cache: true, parallel: true, terserOptions: { // https://github.com/webpack-contrib/terser-webpack-plugin#terseroptions @@ -83,11 +99,19 @@ module.exports = { }, plugins: [ + new Dotenv(), + () => normalizeCssPaths({ + paths: [ + './build/resources/css/font-faces.css.shim.ngstyle.js', + './build/resources/css/style.css.ngstyle.js' + ], + outDir: `${process.env.MFE_BASE_URL || ''}/src/resources`, + }), // new BundleAnalyzerPlugin(), new HtmlWebpackPlugin({ template: 'index.webpack.html', filename: 'index.html', - chunksSortMode : 'none' + chunksSortMode: 'none' }), new CopyWebpackPlugin([ {from: 'index.webpack.html', to: 'index.html'}, @@ -97,14 +121,21 @@ module.exports = { {from: 'src/resources/app.version', to: 'src/resources/app.version'} ]), new MiniCssExtractPlugin({ - filename: '[name].[hash].css', - chunkFilename: '[id].[hash].css' + filename: '[name].[fullhash].css', + chunkFilename: '[id].[fullhash].css' }), new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", "window.jQuery": "jquery", Popper: ['popper.js', 'default'] + }), + new ModuleFederationPlugin({ + name: 'dashboard', + filename: 'remoteEntry.js', + exposes: { + "./dashboard": "./build/scripts/mfe-main.aot", + }, }) ], diff --git a/packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml b/packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml index 41979f5..3e39ea1 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml +++ b/packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml @@ -4,7 +4,7 @@ 4.0.0 ru.cg.webbpm.packages.base resources - 3.177.2 + 3.178.2 Micord @@ -28,13 +28,13 @@ 3.19.3 5.10.2 true - 3.177.2 + 3.178.2 1.4.200 - 0820111143 + 0829133121 UTF-8 1.10.0 true - 3.177.2 + 3.178.2 typescript.metadata.json https://repo.micord.ru MMddHHmmss @@ -47,19 +47,19 @@ ru.cg.webbpm.packages.base converters - 3.177.2 + 3.178.2 compile ru.cg.webbpm.packages.base backend - 3.177.2 + 3.178.2 compile ru.cg.webbpm.packages.base frontend - 3.177.2 + 3.178.2 compile diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html index e66b991..4165c26 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html @@ -60,7 +60,7 @@
  • Образец внешней ссылки: https://www.wildberries.ru/catalog/${sku}/detail.aspx
  • -
  • Образец внутренней ссылки: products/ru.cg.webbpm.packages.base:resources:jar:3.177.2
  • +
  • Образец внутренней ссылки: products/ru.cg.webbpm.packages.base:resources:jar:3.178.2
  • diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/package-descriptor.xml b/packages/ru.cg.webbpm.packages.base.resources/META-INF/package-descriptor.xml index 2337711..4e64446 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/META-INF/package-descriptor.xml +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/package-descriptor.xml @@ -4,17 +4,17 @@ Base webbpm package ru.cg.webbpm.packages.base resources - 3.177.2 - 3.177.2 + 3.178.2 + 3.178.2 ru.cg.webbpm.packages.base backend - 3.177.2 + 3.178.2 @webbpm/base-package - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/Button.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/Button.component index e79cd88..0e422e4 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/Button.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/Button.component @@ -8,11 +8,11 @@ component/buttons/Кнопка.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/CancelButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/CancelButton.component index fabaa35..4ffdbcb 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/CancelButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/CancelButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_отмены.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ClearFilterButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ClearFilterButton.component index ff523be..813db35 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ClearFilterButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ClearFilterButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_очистки_фильтра.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DeleteButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DeleteButton.component index 170ef20..d23d512 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DeleteButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DeleteButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_удаления.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DownloadButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DownloadButton.component index 208fe2b..82adf9c 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DownloadButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/DownloadButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_загрузки.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ErrorButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ErrorButton.component index 2bd2618..707a391 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ErrorButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ErrorButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_вызова_ошибки.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecProcessButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecProcessButton.component index ab85134..60cfaab 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecProcessButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecProcessButton.component @@ -7,11 +7,11 @@ component/buttons/Кнопка_выполнения_бизнес-процесса.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecuteSqlButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecuteSqlButton.component index 02045e0..7526ec0 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecuteSqlButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecuteSqlButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_выполнения_SQL.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/FilterButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/FilterButton.component index 291118b..8aebaf2 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/FilterButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/FilterButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_для_фильтрации.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/NavigationButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/NavigationButton.component index ba03519..1493d0d 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/NavigationButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/NavigationButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_навигации.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SaveButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SaveButton.component index 562b707..49a93f2 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SaveButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SaveButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_сохранения.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SelectButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SelectButton.component index f65f87f..4f1bf29 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SelectButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SelectButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_выбора.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SignButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SignButton.component index 8940113..23b07d2 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SignButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/SignButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_подписи.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/StartProcessButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/StartProcessButton.component index c3bf888..ca3ef4c 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/StartProcessButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/StartProcessButton.component @@ -8,11 +8,11 @@ component/buttons/Кнопка_запуска_бизнес-процесса.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/EntityGraphReportingButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/EntityGraphReportingButton.component index a6976f5..aa64b07 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/EntityGraphReportingButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/EntityGraphReportingButton.component @@ -8,11 +8,11 @@ component/buttons/reporting/Кнопка_печати_из_графа_сущности.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/FormReportingButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/FormReportingButton.component index 2beb0f1..9b5dbc6 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/FormReportingButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/FormReportingButton.component @@ -8,11 +8,11 @@ component/buttons/reporting/Кнопка_печати_отчета_из_формы.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/CollapsiblePanel.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/CollapsiblePanel.component index fe5aae5..f2cab73 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/CollapsiblePanel.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/CollapsiblePanel.component @@ -8,11 +8,11 @@ component/containers/Сворачиваемая_панель.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/Dialog.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/Dialog.component index 9a75654..9b44dd8 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/Dialog.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/Dialog.component @@ -8,11 +8,11 @@ component/containers/Диалог.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/DropDown.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/DropDown.component index 3c5b16b..dfc5ddc 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/DropDown.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/DropDown.component @@ -8,11 +8,11 @@ component/containers/Контейнер_с_кнопками.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/FieldSet.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/FieldSet.component index 1bab795..c848f87 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/FieldSet.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/FieldSet.component @@ -8,11 +8,11 @@ component/containers/Группа_полей.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/FilterGroup.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/FilterGroup.component index fbab4b5..5be2a5a 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/FilterGroup.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/FilterGroup.component @@ -8,11 +8,11 @@ component/containers/Набор_фильтров.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/Form.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/Form.component index 387f570..4cac699 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/Form.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/Form.component @@ -8,11 +8,11 @@ component/containers/Форма.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/HBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/HBox.component index f8b63ad..2792a96 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/HBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/HBox.component @@ -8,11 +8,11 @@ component/containers/Горизонтальный_контейнер.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabContainer.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabContainer.component index 143c952..73e44fe 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabContainer.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabContainer.component @@ -8,11 +8,11 @@ component/containers/Контейнер_вкладок.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabItem.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabItem.component index 5b8300e..0bf1ce8 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabItem.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/TabItem.component @@ -8,11 +8,11 @@ component/containers/Вкладка.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/VBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/VBox.component index 33e0479..38e0cbf 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/VBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/VBox.component @@ -8,11 +8,11 @@ component/containers/Вертикальный_контейнер.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/containers/Window.component b/packages/ru.cg.webbpm.packages.base.resources/component/containers/Window.component index 40f442e..bf5f044 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/containers/Window.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/containers/Window.component @@ -8,11 +8,11 @@ component/containers/Окно.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/EditableGrid.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/EditableGrid.component index 129f7cd..5d9a684 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/EditableGrid.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/EditableGrid.component @@ -8,11 +8,11 @@ component/editable-grids/EditableGrid.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/AutocompleteGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/AutocompleteGridColumn.component index 6c1372d..30421c0 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/AutocompleteGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/AutocompleteGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/autocomplete false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/CheckBoxGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/CheckBoxGridColumn.component index bcec289..e1672a1 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/CheckBoxGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/CheckBoxGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/check-box false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ComboBoxGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ComboBoxGridColumn.component index b46fc7a..a2fff36 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ComboBoxGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ComboBoxGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/combo-box false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/DateTimePickerGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/DateTimePickerGridColumn.component index 514f5d9..a328310 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/DateTimePickerGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/DateTimePickerGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/date-time-picker false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/MoneyFieldGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/MoneyFieldGridColumn.component index 2a287c8..cbfcd66 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/MoneyFieldGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/MoneyFieldGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/money-field true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/NumberFieldGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/NumberFieldGridColumn.component index 9a2c40d..1536040 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/NumberFieldGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/NumberFieldGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/number-field false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumn.component index 118c338..97683f8 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/one-to-many true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumnV2.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumnV2.component index 251c439..8f7c1e2 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumnV2.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumnV2.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/one-to-many false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyClientGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyClientGridColumn.component index 2a15bb9..ec7a6a6 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyClientGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyClientGridColumn.component @@ -6,11 +6,11 @@ META-INF/components/localization/editable-grids/read-only true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyServerGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyServerGridColumn.component index 5abf635..10a1b08 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyServerGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyServerGridColumn.component @@ -5,11 +5,11 @@ editable-grids true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/StaticComboBoxGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/StaticComboBoxGridColumn.component index 8864a14..dbe0556 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/StaticComboBoxGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/StaticComboBoxGridColumn.component @@ -8,11 +8,11 @@ Статичный_выпадающий_список_колонки_таблицы.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextAreaGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextAreaGridColumn.component index f8919e2..67a1f75 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextAreaGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextAreaGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/text-area false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextFieldGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextFieldGridColumn.component index 830978c..f408107 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextFieldGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextFieldGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/text-field false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TimePickerGridColumn.component b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TimePickerGridColumn.component index 68cbae3..4402ba2 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TimePickerGridColumn.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TimePickerGridColumn.component @@ -7,11 +7,11 @@ META-INF/components/localization/editable-grids/time-picker false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/Address.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/Address.component index 6a565bb..6842ba0 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/Address.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/Address.component @@ -8,11 +8,11 @@ component/fields/ФИАС.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/Autocomplete.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/Autocomplete.component index 0eca58d..00741ae 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/Autocomplete.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/Autocomplete.component @@ -8,11 +8,11 @@ component/fields/Поле_ввода_с_подбором_значения.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/CheckBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/CheckBox.component index 9fa34df..7f9223a 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/CheckBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/CheckBox.component @@ -8,11 +8,11 @@ component/fields/Флаг.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/ComboBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/ComboBox.component index e1d37ad..231a049 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/ComboBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/ComboBox.component @@ -8,11 +8,11 @@ component/fields/Выпадающий_список.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/DateTimePicker.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/DateTimePicker.component index 8d1ccf2..3f5c27f 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/DateTimePicker.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/DateTimePicker.component @@ -8,11 +8,11 @@ component/fields/Дата.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/EditableOneToMany.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/EditableOneToMany.component index ba079b5..c6177c3 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/EditableOneToMany.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/EditableOneToMany.component @@ -8,11 +8,11 @@ component/fields/EditableOneToMany.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/FilePreview.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/FilePreview.component index 9c7b9fb..4fc4ba1 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/FilePreview.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/FilePreview.component @@ -8,11 +8,11 @@ component/fields/Файл.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/FileUpload.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/FileUpload.component index 87015f3..81a4421 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/FileUpload.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/FileUpload.component @@ -8,11 +8,11 @@ component/fields/Файл.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToMany.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToMany.component index b7ecca5..beaf6c4 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToMany.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToMany.component @@ -8,11 +8,11 @@ component/fields/ManyToMany.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToManyField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToManyField.component index 13f72bb..855ad98 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToManyField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToManyField.component @@ -8,11 +8,11 @@ component/fields/ManyToManyField.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/MoneyField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/MoneyField.component index f07f236..bc5aeb3 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/MoneyField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/MoneyField.component @@ -8,11 +8,11 @@ component/fields/Денежное_поле.html true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/NumberField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/NumberField.component index b924b54..358bc66 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/NumberField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/NumberField.component @@ -8,11 +8,11 @@ component/fields/Числовое_поле.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToMany.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToMany.component index 9680fdb..e5718f9 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToMany.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToMany.component @@ -8,11 +8,11 @@ component/fields/OneToMany.html true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToManyV2.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToManyV2.component index 70a0361..f76730d 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToManyV2.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToManyV2.component @@ -8,11 +8,11 @@ component/fields/OneToMany.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/RadioButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/RadioButton.component index 3648216..9904c64 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/RadioButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/RadioButton.component @@ -8,11 +8,11 @@ component/fields/Переключатель.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/SignVerification.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/SignVerification.component index c5cf622..f045958 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/SignVerification.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/SignVerification.component @@ -8,11 +8,11 @@ component/fields/SignVerification.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticComboBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticComboBox.component index 60b69d9..d88b8ea 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticComboBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticComboBox.component @@ -8,11 +8,11 @@ component/fields/Статичный_выпадающий_список.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticRadioButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticRadioButton.component index 0c52721..77b37bb 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticRadioButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticRadioButton.component @@ -8,11 +8,11 @@ component/fields/Статичный_переключатель.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/Text.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/Text.component index 0f851c9..4df2ca2 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/Text.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/Text.component @@ -8,11 +8,11 @@ component/fields/Текст.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextArea.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextArea.component index 269548b..782ecd9 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextArea.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextArea.component @@ -8,11 +8,11 @@ component/fields/Многострочное_поле.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextField.component index c2bf08c..b839169 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TextField.component @@ -8,11 +8,11 @@ component/fields/Текстовое_поле.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TimePicker.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TimePicker.component index 75160fc..593a8e3 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TimePicker.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TimePicker.component @@ -8,11 +8,11 @@ component/fields/Время.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TreeField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TreeField.component index 9513370..9d9dbee 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/TreeField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/TreeField.component @@ -8,11 +8,11 @@ component/fields/TreeField.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/EditableGrid.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/EditableGrid.component index b74e8dd..e56915c 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/EditableGrid.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/EditableGrid.component @@ -5,11 +5,11 @@ META-INF/components/localization/editable-grid true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/Form.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/Form.component index b8068cc..9b4ebd1 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/Form.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/Form.component @@ -4,11 +4,11 @@ EditableOneToManyForm true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/fileupload/FileUploadField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/fileupload/FileUploadField.component index 8fe5460..35557e1 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/fileupload/FileUploadField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/fileupload/FileUploadField.component @@ -5,11 +5,11 @@ META-INF/components/localization/fields/file-upload-field true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAddress.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAddress.component index 93cc149..1b52ddf 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAddress.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAddress.component @@ -8,11 +8,11 @@ component/fields/filters/Фильтр_по_полю_адреса.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAutocomplete.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAutocomplete.component index d34b33d..332530a 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAutocomplete.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAutocomplete.component @@ -8,11 +8,11 @@ component/fields/filters/Поле_ввода_с_подбором_значения.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterBoolean.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterBoolean.component index 62b69f8..6a686d0 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterBoolean.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterBoolean.component @@ -8,11 +8,11 @@ component/fields/filters/Фильтр_по_компоненте_Флаг.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterCheckBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterCheckBox.component index 3ea3ae9..5c22aba 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterCheckBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterCheckBox.component @@ -8,11 +8,11 @@ component/fields/filters/Флаг.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterComboBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterComboBox.component index 2d841d2..10b1d0d 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterComboBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterComboBox.component @@ -8,11 +8,11 @@ component/fields/filters/Фильтр_по_выпадающему_списку.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterDateTimePicker.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterDateTimePicker.component index 750e3ca..c150977 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterDateTimePicker.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterDateTimePicker.component @@ -8,11 +8,11 @@ component/fields/filters/Фильтр_по_дате.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterNumberField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterNumberField.component index 7664ab5..44000ce 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterNumberField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterNumberField.component @@ -8,11 +8,11 @@ component/fields/filters/Фильтр_по_числовому_полю.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterRadioButton.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterRadioButton.component index 7a6b2ed..decca7a 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterRadioButton.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterRadioButton.component @@ -8,11 +8,11 @@ component/fields/filters/Переключатель.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterStaticComboBox.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterStaticComboBox.component index d0dbbd5..d2fb3e5 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterStaticComboBox.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterStaticComboBox.component @@ -8,11 +8,11 @@ component/fields/filters/Фильтр_по_статичному_выпадающему_списку.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextArea.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextArea.component index 76d2041..1424fe1 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextArea.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextArea.component @@ -8,11 +8,11 @@ component/fields/filters/Фильтр_по_полю_многострочного_ввода.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextField.component index 4def1e4..95607c4 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextField.component @@ -8,11 +8,11 @@ component/fields/filters/Текстовое_поле.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/LinkField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/LinkField.component index 8a95ba6..1027497 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/LinkField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/LinkField.component @@ -5,11 +5,11 @@ META-INF/components/localization/fields/link-field true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/MultiValueField.component b/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/MultiValueField.component index b45e759..ed10666 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/MultiValueField.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/MultiValueField.component @@ -5,11 +5,11 @@ META-INF/components/localization/fields/multi-value-field true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/grids/Grid.component b/packages/ru.cg.webbpm.packages.base.resources/component/grids/Grid.component index 2859f86..e317c88 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/grids/Grid.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/grids/Grid.component @@ -8,11 +8,11 @@ component/grids/Таблица.html true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2.component b/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2.component index c2da503..715ce27 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2.component @@ -8,11 +8,11 @@ component/grids/Таблица.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Column.component b/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Column.component index 9c73a7b..66a7df7 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Column.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Column.component @@ -6,11 +6,11 @@ META-INF/components/localization/grids/grid false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Group.component b/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Group.component index 12ec81a..9b7e06d 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Group.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Group.component @@ -6,11 +6,11 @@ META-INF/components/localization/grids/grid false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/grids/PagingGrid.component b/packages/ru.cg.webbpm.packages.base.resources/component/grids/PagingGrid.component index b717350..4a3426d 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/grids/PagingGrid.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/grids/PagingGrid.component @@ -8,11 +8,11 @@ component/grids/Таблица_с_постраничным_отображением.html true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/grids/TreeGrid.component b/packages/ru.cg.webbpm.packages.base.resources/component/grids/TreeGrid.component index 3cce6c5..0e5d8f8 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/grids/TreeGrid.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/grids/TreeGrid.component @@ -8,11 +8,11 @@ component/grids/Древовидная_таблица.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ActionController.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ActionController.component index 2fe92ad..7b2ba54 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ActionController.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ActionController.component @@ -8,11 +8,11 @@ component/uncategorized/Обработка_событий.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Calendar.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Calendar.component index 04efdea..051ff5a 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Calendar.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Calendar.component @@ -7,11 +7,11 @@ META-INF/components/localization/uncategorized/calendar false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Chart.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Chart.component index c59c00c..028e828 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Chart.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Chart.component @@ -8,11 +8,11 @@ component/uncategorized/Диаграмма.html true - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ChartV2.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ChartV2.component index f654ae7..490bc90 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ChartV2.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ChartV2.component @@ -8,11 +8,11 @@ component/uncategorized/Диаграмма_chart-v2.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/EventCalendar.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/EventCalendar.component index c2aaf40..6e9f9a3 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/EventCalendar.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/EventCalendar.component @@ -8,11 +8,11 @@ component/uncategorized/EventCalendar.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/GanttChart.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/GanttChart.component index e4b3120..381d747 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/GanttChart.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/GanttChart.component @@ -8,11 +8,11 @@ component/uncategorized/Диаграмма_Гантта_Календарный_план_.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/HyperLink.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/HyperLink.component index 802ccb1..2139596 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/HyperLink.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/HyperLink.component @@ -8,11 +8,11 @@ component/uncategorized/HyperLink.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 @@ -35,6 +35,12 @@ true + + linkType + + "NAVIGATION" + + disabled diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/IFrame.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/IFrame.component index e4964c6..59a0232 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/IFrame.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/IFrame.component @@ -8,11 +8,11 @@ component/uncategorized/IFrame.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/InnerHtml.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/InnerHtml.component index b9ece8c..a27daba 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/InnerHtml.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/InnerHtml.component @@ -8,11 +8,11 @@ component/uncategorized/InnerHtml.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuGroup.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuGroup.component index 90cc6ff..6a853cc 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuGroup.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuGroup.component @@ -8,11 +8,11 @@ component/uncategorized/MenuGroup.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuItem.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuItem.component index 793d767..a6abf9a 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuItem.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuItem.component @@ -7,11 +7,11 @@ component/uncategorized/MenuItem.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ValidationController.component b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ValidationController.component index 293f5b4..27f3eb9 100644 --- a/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ValidationController.component +++ b/packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ValidationController.component @@ -8,11 +8,11 @@ component/uncategorized/ValidationController.html false - 3.177.2 + 3.178.2 ru.cg.webbpm.packages.base.resources - 3.177.2 + 3.178.2 diff --git a/packages/ru.cg.webbpm.packages.base.resources/converters/converters.jar b/packages/ru.cg.webbpm.packages.base.resources/converters/converters.jar index 0d505ad1db93745d7e3a2b8e2b2a869ff11fc055..a74df2a37c8f06951b3bb6010b6c1227b21e531e 100644 GIT binary patch delta 8151 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 delta 5211 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 Qt${UgmI9#30RjO24`Dj}i2wiq diff --git a/packages/ru.cg.webbpm.packages.base.resources/metadata/java.metadata b/packages/ru.cg.webbpm.packages.base.resources/metadata/java.metadata index a2cd2b3c63b3c3b47cf6ca2afefcc1a08f6ebb23..093b505e829814deb37bceee3994a131758ee781 100644 GIT binary patch literal 1113244 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 azcnL>?8cfAWJx(ba-pDJ>NJ#DF8wcSu(<#L literal 1113132 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

    Eok)BfAE=2D`TQ4fG9;b;9qR-9zJpy}P!K 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","isOptional":false,"isStatic":false,"isAsync":false,"start":1233,"end":1301,"decorators":[],"parameters":[],"variables":[]},{"name":"abortProcess","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":1305,"end":1479,"decorators":[],"parameters":[],"variables":[]},{"name":"isEnabled","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":1483,"end":1563,"decorators":[],"parameters":[],"variables":[]},{"name":"onSelectableComponentChange","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":1567,"end":1817,"decorators":[],"parameters":[{"name":"event","type":"SelectionChangeEvent","start":1605,"end":1632}],"variables":[]},{"name":"getSelectableComponent","isAbstract":false,"visibility":1,"type":"SelectableComponent","isOptional":false,"isStatic":false,"isAsync":false,"start":1821,"end":1919,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["SelectableComponentButton"],"implementsClauses":[],"ctor":{"name":"AbortButton","start":1058,"end":1133,"parameters":[{"name":"el","type":"ElementRef","start":1070,"end":1084},{"name":"cd","type":"ChangeDetectorRef","start":1086,"end":1107}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","AbortProcessService","Promise","event","SelectionChangeEvent","SelectableComponent","author","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","SelectableComponentButton","ObjectRef","NotNull","Input","selectableComponent","DynamicDataGrid","selected","$"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":638,"imports":[{"libraryName":"component.button","start":0,"end":56,"specifiers":[{"specifier":"Button"}]},{"libraryName":"@angular/router","start":57,"end":96,"specifiers":[{"specifier":"Router"}]},{"libraryName":"@angular/core","start":97,"end":162,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]}],"exports":[],"declarations":[],"classes":[{"name":"BackBtn","isExported":true,"start":195,"end":637,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'bpmn-back-button',\n templateUrl: './../../../../../src/resources/template/component/button/Button.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"router","visibility":1,"type":"Router","isOptional":false,"isStatic":false,"start":420,"end":445,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":449,"end":536,"decorators":[],"parameters":[],"variables":[]},{"name":"doClickActions","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":540,"end":635,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Button"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["Router","Promise","author","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Button","router"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":503,"imports":[{"libraryName":"bpmn.admin.component","start":0,"end":60,"specifiers":[{"specifier":"RouteParamFilterGrid"}]},{"libraryName":"@angular/core","start":61,"end":126,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]}],"exports":[],"declarations":[],"classes":[{"name":"InMemoryRouteParamFilterGrid","isExported":true,"start":158,"end":502,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'in-memory-route-param-filter-grid',\n templateUrl: './../../../../../src/resources/template/component/ClientSideGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[],"methods":[{"name":"getRowModelType","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":437,"end":500,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["RouteParamFilterGrid"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["author","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","RouteParamFilterGrid"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":1335,"imports":[{"libraryName":"generated.bpmn.admin.history","start":0,"end":112,"specifiers":[{"specifier":"ProcessHistoryListRpcService"}]},{"libraryName":"modules.bpmn.provider","start":113,"end":223,"specifiers":[{"specifier":"ProcessInstanceParamsProvider"}]},{"libraryName":"component.field","start":224,"end":283,"specifiers":[{"specifier":"TextArea"}]},{"libraryName":"@angular/core","start":284,"end":380,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"}]}],"exports":[],"declarations":[],"classes":[{"name":"ProcessHistoryList","isExported":true,"start":382,"end":1334,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'process-history-list',\n templateUrl: './../../../../../src/resources/template/component/field/TextArea.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"$","visibility":0,"type":"ProcessHistoryListRpcService","isOptional":false,"isStatic":false,"start":625,"end":665,"decorators":[]},{"name":"showVariableLog","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":668,"end":701,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":784,"end":974,"decorators":[],"parameters":[],"variables":[]},{"name":"getHistory","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":978,"end":1132,"decorators":[],"parameters":[{"name":"processInstanceId","start":997,"end":1014}],"variables":[]},{"name":"setShowVariableLog","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1136,"end":1332,"decorators":[],"parameters":[{"name":"showVariableLog","type":"boolean","start":1162,"end":1186}],"variables":[]}],"extendsClauses":["TextArea"],"implementsClauses":[],"ctor":{"name":"ProcessHistoryList","start":705,"end":780,"parameters":[{"name":"el","type":"ElementRef","start":717,"end":731},{"name":"cd","type":"ChangeDetectorRef","start":733,"end":754}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","ProcessHistoryListRpcService","ProcessInstanceParamsProvider","processInstanceId","val","showVariableLog","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","TextArea","$"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":1219,"imports":[{"libraryName":"@angular/core","start":0,"end":96,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"}]},{"libraryName":"component","start":97,"end":148,"specifiers":[{"specifier":"Control"}]},{"libraryName":"generated.bpmn.admin.history","start":149,"end":269,"specifiers":[{"specifier":"ProcessInstanceDiagramRpcService"}]},{"libraryName":"modules.bpmn.provider","start":270,"end":380,"specifiers":[{"specifier":"ProcessInstanceParamsProvider"}]}],"exports":[],"declarations":[],"classes":[{"name":"ProcessInstanceDiagram","isExported":true,"start":382,"end":1218,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'process-instance-diagram',\n templateUrl: './../../../../../src/resources/template/component/ProcessInstanceDiagram.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"svg","visibility":0,"type":"string","isOptional":false,"isStatic":false,"start":640,"end":660,"decorators":[]},{"name":"$","visibility":0,"type":"ProcessInstanceDiagramRpcService","isOptional":false,"isStatic":false,"start":663,"end":707,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":790,"end":1088,"decorators":[],"parameters":[],"variables":[{"name":"processInstanceId","isConst":false,"isExported":false,"start":833,"end":924}]},{"name":"setSvg","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1092,"end":1169,"decorators":[],"parameters":[{"name":"value","type":"string","start":1099,"end":1112}],"variables":[]},{"name":"getSvg","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":1173,"end":1216,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Control"],"implementsClauses":[],"ctor":{"name":"ProcessInstanceDiagram","start":711,"end":786,"parameters":[{"name":"el","type":"ElementRef","start":723,"end":737},{"name":"cd","type":"ChangeDetectorRef","start":739,"end":760}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","processInstanceId","ProcessInstanceParamsProvider","ProcessInstanceDiagramRpcService","svg","value","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Control","$"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":666,"imports":[{"libraryName":"component","start":0,"end":53,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"generated.bpmn.admin","start":54,"end":154,"specifiers":[{"specifier":"ProcessInfoLabelRpcService"}]},{"libraryName":"modules.bpmn.provider","start":155,"end":265,"specifiers":[{"specifier":"ProcessInstanceParamsProvider"}]}],"exports":[],"declarations":[],"classes":[{"name":"ProcessLabel","isExported":true,"start":267,"end":665,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"$","visibility":0,"type":"ProcessInfoLabelRpcService","isOptional":false,"isStatic":false,"start":314,"end":352,"decorators":[]},{"name":"value","visibility":0,"type":"string","isOptional":false,"isStatic":false,"start":355,"end":377,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":381,"end":663,"decorators":[],"parameters":[],"variables":[{"name":"processInstanceId","isConst":false,"isExported":false,"start":481,"end":572}]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["ProcessInfoLabelRpcService","processInstanceId","ProcessInstanceParamsProvider","val","Behavior","$","value"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":1090,"imports":[{"libraryName":"component.field","start":0,"end":87,"specifiers":[{"specifier":"StaticRadioButtonGroup"}]},{"libraryName":"component.button","start":88,"end":144,"specifiers":[{"specifier":"Button"}]},{"libraryName":"component","start":145,"end":198,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"decorators","start":199,"end":251,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"decorators","start":252,"end":308,"specifiers":[{"specifier":"ObjectRef"}]}],"exports":[],"declarations":[],"classes":[{"name":"ProcessStateFieldHandler","isExported":true,"start":341,"end":1089,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"stopButton","visibility":2,"type":"Button","isOptional":false,"isStatic":false,"start":400,"end":454,"decorators":[{"name":"ObjectRef","parameters":[]},{"name":"NotNull","parameters":[]}]},{"name":"radioButton","visibility":0,"type":"StaticRadioButtonGroup","isOptional":false,"isStatic":false,"start":457,"end":501,"decorators":[]},{"name":"onChangeFunction","visibility":0,"type":"Function","isOptional":false,"isStatic":false,"start":504,"end":539,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":543,"end":727,"decorators":[],"parameters":[],"variables":[]},{"name":"bindEvents","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":731,"end":850,"decorators":[],"parameters":[],"variables":[]},{"name":"unbindEvents","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":854,"end":973,"decorators":[],"parameters":[],"variables":[]},{"name":"onProcessStateChanged","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":977,"end":1087,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["StaticRadioButtonGroup","author","Behavior","ObjectRef","NotNull","stopButton","Button","radioButton","onChangeFunction","Function"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":1418,"imports":[{"libraryName":"component","start":0,"end":69,"specifiers":[{"specifier":"StaticColumnGrid"}]},{"libraryName":"generated.model","start":70,"end":125,"specifiers":[{"specifier":"Filter"}]},{"libraryName":"@angular/router","start":126,"end":181,"specifiers":[{"specifier":"ActivatedRoute"},{"specifier":"Params"}]},{"libraryName":"@angular/core","start":182,"end":278,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"}]},{"libraryName":"util","start":279,"end":333,"specifiers":[{"specifier":"AngularUtil"}]},{"libraryName":"util","start":334,"end":386,"specifiers":[{"specifier":"FilterUtil"}]}],"exports":[],"declarations":[],"classes":[{"name":"RouteParamFilterGrid","isExported":true,"start":388,"end":1417,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'route-param-filter-grid',\n templateUrl: './../../../../../src/resources/template/component/ClientSideGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":723,"end":827,"decorators":[],"parameters":[],"variables":[]},{"name":"addRouteParamFilters","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":831,"end":1244,"decorators":[],"parameters":[],"variables":[{"name":"route","isConst":true,"isExported":false,"type":"ActivatedRoute","start":866,"end":930},{"name":"routeParams","isConst":true,"isExported":false,"start":935,"end":1000},{"name":"filter","isConst":false,"isExported":false,"start":1120,"end":1180}]},{"name":"reload","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1248,"end":1352,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":1255,"end":1272}],"variables":[]},{"name":"loadData","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1356,"end":1415,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["StaticColumnGrid"],"implementsClauses":[],"ctor":{"name":"RouteParamFilterGrid","start":644,"end":719,"parameters":[{"name":"el","type":"ElementRef","start":656,"end":670},{"name":"cd","type":"ChangeDetectorRef","start":672,"end":693}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Promise","route","ActivatedRoute","routeParams","AngularUtil","params","Params","idx","filter","FilterUtil","filters","Filter","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","StaticColumnGrid"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":1664,"imports":[{"libraryName":"component","start":0,"end":75,"specifiers":[{"specifier":"SelectableComponent"}]},{"libraryName":"component","start":76,"end":153,"specifiers":[{"specifier":"SelectionChangeEvent"}]},{"libraryName":"@angular/router","start":154,"end":193,"specifiers":[{"specifier":"Router"}]},{"libraryName":"decorators","start":194,"end":246,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"@angular/core","start":247,"end":350,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"component.button","start":351,"end":445,"specifiers":[{"specifier":"SelectableComponentButton"}]},{"libraryName":"decorators","start":446,"end":502,"specifiers":[{"specifier":"ObjectRef"}]}],"exports":[],"declarations":[],"classes":[{"name":"SelectBtn","isExported":true,"start":535,"end":1663,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'bpmn-select-button',\n templateUrl: './../../../../../src/resources/template/component/button/Button.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"selectableComponent","visibility":2,"type":"SelectableComponent","isOptional":false,"isStatic":false,"start":784,"end":871,"decorators":[{"name":"ObjectRef","parameters":[]},{"name":"NotNull","parameters":[]},{"name":"Input","parameters":[]}]},{"name":"selected","visibility":0,"type":"number","isOptional":false,"isStatic":false,"start":875,"end":907,"decorators":[]},{"name":"router","visibility":1,"type":"Router","isOptional":false,"isStatic":false,"start":910,"end":935,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1018,"end":1105,"decorators":[],"parameters":[],"variables":[]},{"name":"doClickActions","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":1109,"end":1221,"decorators":[],"parameters":[],"variables":[]},{"name":"onSelectableComponentChange","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":1225,"end":1475,"decorators":[],"parameters":[{"name":"event","type":"SelectionChangeEvent","start":1263,"end":1290}],"variables":[]},{"name":"getSelectableComponent","isAbstract":false,"visibility":1,"type":"SelectableComponent","isOptional":false,"isStatic":false,"isAsync":false,"start":1479,"end":1577,"decorators":[],"parameters":[],"variables":[]},{"name":"isEnabled","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":1581,"end":1661,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["SelectableComponentButton"],"implementsClauses":[],"ctor":{"name":"SelectBtn","start":939,"end":1014,"parameters":[{"name":"el","type":"ElementRef","start":951,"end":965},{"name":"cd","type":"ChangeDetectorRef","start":967,"end":988}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Router","Promise","event","SelectionChangeEvent","SelectableComponent","author","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","SelectableComponentButton","ObjectRef","NotNull","Input","selectableComponent","selected","router"],"packageName":"bpmn.admin.component"},{"rootPath":"/","start":0,"end":3248,"imports":[{"libraryName":"rxjs","start":0,"end":34,"specifiers":[{"specifier":"Subscription"}]},{"libraryName":"rxjs","start":35,"end":62,"specifiers":[{"specifier":"timer"}]},{"libraryName":"component","start":63,"end":110,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"decorators.scopes","start":111,"end":180,"specifiers":[{"specifier":"AnalyticalScope"}]},{"libraryName":"component","start":181,"end":226,"specifiers":[{"specifier":"Control"}]}],"exports":[],"declarations":[],"classes":[{"name":"AutoHeight","isExported":true,"start":621,"end":3247,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"AnalyticalScope","parameters":["Control"]}],"properties":[{"name":"minHeight","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":692,"end":717,"decorators":[]},{"name":"height","visibility":0,"type":"number","isOptional":false,"isStatic":false,"start":721,"end":744,"decorators":[]}],"methods":[{"name":"start","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":748,"end":1121,"decorators":[],"parameters":[],"variables":[{"name":"checkSizeSubscription","isConst":false,"isExported":false,"type":"Subscription","start":801,"end":901}]},{"name":"resize","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1125,"end":1238,"decorators":[],"parameters":[],"variables":[{"name":"autoHeight","isConst":false,"isExported":false,"start":1154,"end":1194}]},{"name":"setHeightIfNeeded","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1242,"end":1634,"decorators":[],"parameters":[{"name":"autoHeight","type":"number","start":1268,"end":1286}],"variables":[{"name":"element","isConst":false,"isExported":false,"start":1300,"end":1342}]},{"name":"calculateHeight","isAbstract":false,"visibility":0,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":1638,"end":2055,"decorators":[],"parameters":[],"variables":[{"name":"element","isConst":false,"isExported":false,"type":"HTMLElement","start":1678,"end":1727},{"name":"contentRoot","isConst":false,"isExported":false,"type":"HTMLElement","start":1732,"end":1785},{"name":"pageHeight","isConst":false,"isExported":false,"type":"number","start":1791,"end":1841},{"name":"ownHeight","isConst":false,"isExported":false,"type":"number","start":1846,"end":1890},{"name":"ownMarginAndPaddingHeight","isConst":false,"isExported":false,"type":"number","start":1895,"end":1976}]},{"name":"contentHeight","isAbstract":false,"visibility":0,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":2059,"end":2430,"decorators":[],"parameters":[],"variables":[{"name":"element","isConst":false,"isExported":false,"type":"HTMLElement","start":2097,"end":2146},{"name":"contentRoot","isConst":false,"isExported":false,"type":"HTMLElement","start":2151,"end":2204},{"name":"contentHeight","isConst":false,"isExported":false,"type":"number","start":2210,"end":2240}]},{"name":"neighboursHeight","isAbstract":false,"visibility":0,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":2434,"end":2784,"decorators":[],"parameters":[{"name":"element","type":"HTMLElement","start":2459,"end":2479},{"name":"parent","type":"HTMLElement","start":2481,"end":2500}],"variables":[{"name":"height","isConst":false,"isExported":false,"type":"number","start":2516,"end":2539},{"name":"child","isConst":false,"isExported":false,"type":"HTMLElement","start":2609,"end":2671}]},{"name":"getHostElement","isAbstract":false,"visibility":0,"type":"HTMLElement","isOptional":false,"isStatic":false,"isAsync":false,"start":2788,"end":2880,"decorators":[],"parameters":[],"variables":[]},{"name":"getJqueryHostElement","isAbstract":false,"visibility":0,"type":"JQuery","isOptional":false,"isStatic":false,"isAsync":false,"start":2884,"end":2969,"decorators":[],"parameters":[],"variables":[]},{"name":"getContentRoot","isAbstract":false,"visibility":0,"type":"HTMLElement","isOptional":false,"isStatic":false,"isAsync":false,"start":2973,"end":3080,"decorators":[],"parameters":[],"variables":[]},{"name":"checkSize","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3084,"end":3245,"decorators":[],"parameters":[],"variables":[{"name":"autoHeight","isConst":false,"isExported":false,"start":3116,"end":3156}]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["checkSizeSubscription","Subscription","timer","$","window","autoHeight","element","HTMLElement","contentRoot","pageHeight","ownHeight","ownMarginAndPaddingHeight","contentHeight","parent","height","i","child","JQuery","AnalyticalScope","Control","Behavior","minHeight"],"packageName":"common"},{"rootPath":"/","start":0,"end":865,"imports":[{"libraryName":"component","start":0,"end":63,"specifiers":[{"specifier":"ControlWithValue"}]},{"libraryName":"component","start":64,"end":111,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"decorators.scopes","start":112,"end":181,"specifiers":[{"specifier":"AnalyticalScope"}]},{"libraryName":"modules.bpmn.api.v2.model","start":182,"end":267,"specifiers":[{"specifier":"ProcessVariableType"}]},{"libraryName":"modules.bpmn.api.v2.model","start":268,"end":345,"specifiers":[{"specifier":"ProcessVariable"}]},{"libraryName":"decorators","start":346,"end":392,"specifiers":[{"specifier":"NotNull"}]}],"exports":[],"declarations":[],"classes":[{"name":"BpmnStartProcessVariable","isExported":true,"start":394,"end":864,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"AnalyticalScope","parameters":["ControlWithValue"]}],"properties":[{"name":"variableName","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":490,"end":531,"decorators":[{"name":"NotNull","parameters":[]}]},{"name":"type","visibility":2,"type":"ProcessVariableType","isOptional":false,"isStatic":false,"start":558,"end":604,"decorators":[{"name":"NotNull","parameters":[]}]},{"name":"isArray","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":607,"end":644,"decorators":[{"name":"NotNull","parameters":[]}]}],"methods":[{"name":"getVariableForStartProcess","isAbstract":false,"visibility":2,"type":"ProcessVariable","isOptional":false,"isStatic":false,"isAsync":false,"start":648,"end":862,"decorators":[],"parameters":[],"variables":[{"name":"value","isConst":false,"isExported":false,"start":707,"end":775}]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["ProcessVariable","value","AnalyticalScope","Behavior","NotNull","variableName","type","ProcessVariableType","isArray"],"packageName":"common"},{"rootPath":"/","start":0,"end":323,"imports":[],"exports":[],"declarations":[],"classes":[{"name":"Deferred","isExported":true,"start":0,"end":323,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"promise","type":"Promise","isOptional":false,"isStatic":false,"start":72,"end":92,"decorators":[]},{"name":"resolve","type":"(value?: T | PromiseLike) => void","isOptional":false,"isStatic":false,"start":95,"end":141,"decorators":[]},{"name":"reject","type":"(reason?: any) => void","isOptional":false,"isStatic":false,"start":144,"end":175,"decorators":[]}],"methods":[],"extendsClauses":[],"implementsClauses":[],"typeParameters":["T"],"ctor":{"name":"Deferred","start":179,"end":321,"parameters":[],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["Promise","T","resolve","reject","promise","value","PromiseLike","reason"],"packageName":"common"},{"rootPath":"/","start":0,"end":805,"imports":[{"libraryName":"component","start":0,"end":47,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"generated.rpc.button","start":48,"end":142,"specifiers":[{"specifier":"ExecuteSqlButtonRpcService"}]},{"libraryName":"common","start":143,"end":185,"specifiers":[{"specifier":"ObjectValue"}]},{"libraryName":"decorators","start":186,"end":232,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"webbpm.ui_scripting","start":233,"end":284,"specifiers":[{"specifier":"Value"}]},{"libraryName":"decorators","start":285,"end":337,"specifiers":[{"specifier":"Deprecated"}]}],"exports":[],"declarations":[],"classes":[{"name":"ExecuteSqlService","isExported":true,"start":339,"end":804,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"params","visibility":2,"type":"ObjectValue[]","isOptional":false,"isStatic":false,"start":392,"end":462,"decorators":[{"name":"Visible","parameters":["false"]},{"name":"Deprecated","parameters":[]}]},{"name":"queryParams","visibility":2,"type":"Value[]","isOptional":false,"isStatic":false,"start":496,"end":528,"decorators":[]},{"name":"$","visibility":0,"type":"ExecuteSqlButtonRpcService","isOptional":false,"isStatic":false,"start":532,"end":570,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":574,"end":681,"decorators":[],"parameters":[],"variables":[]},{"name":"executeSql","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":685,"end":802,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["ExecuteSqlButtonRpcService","Visible","param","Behavior","Deprecated","params","ObjectValue","queryParams","Value","$"],"packageName":"common"},{"rootPath":"/","start":0,"end":84,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"Expandable","isExported":true,"start":0,"end":84,"accessors":[],"properties":[],"methods":[{"name":"expand","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":32,"end":41,"decorators":[],"parameters":[],"variables":[]},{"name":"collapse","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":45,"end":56,"decorators":[],"parameters":[],"variables":[]},{"name":"isExpanded","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":60,"end":82,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["expand","collapse","isExpanded"],"packageName":"common"},{"rootPath":"/","start":0,"end":366,"imports":[{"libraryName":"generated.model.filter","start":0,"end":82,"specifiers":[{"specifier":"FilterableReference"}]},{"libraryName":"generated.model","start":83,"end":132,"specifiers":[{"specifier":"Filter"}]}],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"Filterable","isExported":true,"start":134,"end":365,"accessors":[],"properties":[],"methods":[{"name":"reload","isAbstract":true,"visibility":2,"type":"Promise | void","isOptional":false,"isStatic":false,"isAsync":false,"start":195,"end":242,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":202,"end":219}],"variables":[]},{"name":"disableInitialLoading","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":246,"end":270,"decorators":[],"parameters":[],"variables":[]},{"name":"addFilter","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":274,"end":306,"decorators":[],"parameters":[{"name":"filter","type":"Filter","start":284,"end":298}],"variables":[]},{"name":"removeFilter","isAbstract":true,"visibility":2,"type":"Filter","isOptional":false,"isStatic":false,"isAsync":false,"start":310,"end":345,"decorators":[],"parameters":[{"name":"guid","type":"string","start":323,"end":335}],"variables":[]},{"name":"clear","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":349,"end":363,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["FilterableReference"],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["FilterableReference","reload","filters","Filter","Promise","disableInitialLoading","addFilter","filter","removeFilter","guid","clear"],"packageName":"common"},{"rootPath":"/","start":0,"end":48,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"Focusable","isExported":true,"start":0,"end":47,"accessors":[],"properties":[],"methods":[{"name":"focus","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":31,"end":45,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["focus"],"packageName":"common"},{"rootPath":"/","start":0,"end":96,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"HasCustomValidationMessages","isExported":true,"start":0,"end":95,"accessors":[],"properties":[],"methods":[{"name":"getCustomValidationMessages","isAbstract":true,"visibility":2,"type":"Set","isOptional":false,"isStatic":false,"isAsync":false,"start":50,"end":93,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["getCustomValidationMessages","Set"],"packageName":"common"},{"rootPath":"/","start":0,"end":507,"imports":[{"libraryName":"component","start":0,"end":47,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"decorators","start":48,"end":98,"specifiers":[{"specifier":"ObjectRef"}]},{"libraryName":"webbpm.ui_scripting","start":99,"end":150,"specifiers":[{"specifier":"Value"}]}],"exports":[],"declarations":[],"classes":[{"name":"ObjectValue","isExported":true,"start":152,"end":507,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"behavior","visibility":2,"type":"Behavior","isOptional":false,"isStatic":false,"start":182,"end":223,"decorators":[{"name":"ObjectRef","parameters":[]}]},{"name":"method","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":226,"end":248,"decorators":[]},{"name":"argument","visibility":2,"type":"Value","isOptional":false,"isStatic":false,"start":251,"end":274,"decorators":[]}],"methods":[{"name":"getValue","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":278,"end":505,"decorators":[],"parameters":[],"variables":[{"name":"func","isConst":false,"isExported":false,"start":300,"end":338}]}],"extendsClauses":[],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["func","ObjectRef","behavior","Behavior","method","argument","Value"],"packageName":"common"},{"rootPath":"/","start":0,"end":511,"imports":[{"libraryName":"common","start":0,"end":47,"specifiers":[{"specifier":"rejectMessage"}]}],"exports":[],"declarations":[],"classes":[{"name":"PromiseWrapper","isExported":true,"start":49,"end":511,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"reject","type":"(reason?: any) => void","isOptional":false,"isStatic":false,"start":85,"end":116,"decorators":[]},{"name":"promise","visibility":0,"type":"Promise","isOptional":false,"isStatic":false,"start":120,"end":153,"decorators":[]}],"methods":[{"name":"wrap","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":157,"end":509,"decorators":[],"parameters":[{"name":"value","type":"Promise","start":169,"end":186}],"variables":[]}],"extendsClauses":[],"implementsClauses":[],"typeParameters":["T"]}],"interfaces":[],"enums":[],"resources":[],"usages":["value","Promise","T","resolve","reject","reason","window","rejectMessage","promise"],"packageName":"common"},{"rootPath":"/","start":0,"end":153,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"Validatable","isExported":true,"start":0,"end":152,"accessors":[],"properties":[],"methods":[{"name":"isValid","isAbstract":true,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":34,"end":62,"decorators":[],"parameters":[],"variables":[]},{"name":"actionOnInvalid","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":66,"end":84,"decorators":[],"parameters":[],"variables":[]},{"name":"isNeedToValidate","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":88,"end":116,"decorators":[],"parameters":[],"variables":[]},{"name":"clearValidateMessages","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":120,"end":150,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["isValid","Promise","actionOnInvalid","isNeedToValidate","clearValidateMessages"],"packageName":"common"},{"rootPath":"/","start":0,"end":5164,"imports":[{"libraryName":"component","start":0,"end":50,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"modules.core.service","start":51,"end":127,"specifiers":[{"specifier":"MessagesService"}]},{"libraryName":"component","start":128,"end":194,"specifiers":[{"specifier":"ControlWithValue"}]},{"libraryName":"generated.rpc.loading","start":195,"end":301,"specifiers":[{"specifier":"DefaultValueLoaderRpcServiceV2"}]},{"libraryName":"modules.core.service","start":302,"end":403,"specifiers":[{"specifier":"ProgressIndicationService"}]},{"libraryName":"webbpm.event","start":404,"end":451,"specifiers":[{"specifier":"Event"}]},{"libraryName":"decorators.scopes","start":452,"end":524,"specifiers":[{"specifier":"AnalyticalScope"}]},{"libraryName":"decorators","start":525,"end":574,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"generated.model","start":575,"end":633,"specifiers":[{"specifier":"FieldData"}]},{"libraryName":"modules.bpmn.service","start":634,"end":723,"specifiers":[{"specifier":"FieldValueFromVariable"}]},{"libraryName":"error","start":724,"end":792,"specifiers":[{"specifier":"ScriptLocationError"}]},{"libraryName":"error","start":793,"end":881,"specifiers":[{"specifier":"MutuallyExclusiveScriptsError"}]},{"libraryName":"component.container","start":882,"end":946,"specifiers":[{"specifier":"IContainer"}]}],"exports":[],"declarations":[],"classes":[{"name":"DefaultValueLoaderV2","isExported":true,"start":948,"end":5163,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"AnalyticalScope","parameters":["IContainer"]}],"properties":[{"name":"container","visibility":0,"type":"IContainer","isOptional":false,"isStatic":false,"start":1035,"end":1065,"decorators":[]},{"name":"$","visibility":0,"type":"DefaultValueLoaderRpcServiceV2","isOptional":false,"isStatic":false,"start":1068,"end":1110,"decorators":[]},{"name":"progressIndicationService","visibility":0,"type":"ProgressIndicationService","isOptional":false,"isStatic":false,"start":1113,"end":1174,"decorators":[]},{"name":"messagesService","visibility":0,"type":"MessagesService","isOptional":false,"isStatic":false,"start":1177,"end":1218,"decorators":[]},{"name":"defaultValuesLoaded","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":1221,"end":1311,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"_isLoaded","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":1314,"end":1349,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1353,"end":1902,"decorators":[],"parameters":[],"variables":[]},{"name":"load","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":1906,"end":2767,"decorators":[],"parameters":[],"variables":[{"name":"guidToControlMapping","isConst":false,"isExported":false,"type":"Map","start":1940,"end":2043},{"name":"guids","isConst":false,"isExported":false,"start":2048,"end":2100}]},{"name":"setValues","isAbstract":false,"visibility":0,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":2771,"end":4025,"decorators":[],"parameters":[{"name":"fieldsData","type":"FieldData[]","start":2789,"end":2812},{"name":"guidToControlMapping","type":"Map","start":2814,"end":2865}],"variables":[{"name":"component","isConst":false,"isExported":false,"type":"ControlWithValue","start":2989,"end":3073},{"name":"fieldValueFromVariable","isConst":false,"isExported":false,"type":"FieldValueFromVariable","start":3080,"end":3215},{"name":"valueSetPromises","isConst":false,"isExported":false,"start":3471,"end":3979},{"name":"control","isConst":false,"isExported":false,"start":3543,"end":3607},{"name":"fieldValue","isConst":false,"isExported":false,"start":3618,"end":3640}]},{"name":"setFieldValue","isAbstract":false,"visibility":1,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":4084,"end":4287,"decorators":[],"parameters":[{"name":"fieldData","type":"FieldData","start":4108,"end":4128},{"name":"control","type":"ControlWithValue","start":4130,"end":4155}],"variables":[]},{"name":"getGuidToControlMapping","isAbstract":false,"visibility":0,"type":"Map","isOptional":false,"isStatic":false,"isAsync":false,"start":4291,"end":5085,"decorators":[],"parameters":[{"name":"container","type":"IContainer","start":4323,"end":4344}],"variables":[{"name":"controls","isConst":false,"isExported":false,"type":"ControlWithValue[]","start":4383,"end":4474},{"name":"guidToControlMapping","isConst":false,"isExported":false,"start":4479,"end":4643},{"name":"containers","isConst":false,"isExported":false,"start":4648,"end":4725}]},{"name":"isLoaded","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":5089,"end":5161,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["ProgressIndicationService","MessagesService","ScriptLocationError","DefaultValueLoaderRpcServiceV2","Promise","guidToControlMapping","Map","ControlWithValue","guids","Array","fieldsData","reason","console","FieldData","fieldData","component","fieldValueFromVariable","FieldValueFromVariable","MutuallyExclusiveScriptsError","DefaultValueLoaderV2","valueSetPromises","control","fieldValue","e","promise","container","IContainer","controls","containers","prev","cur","value","key","Visible","AnalyticalScope","Behavior","$","progressIndicationService","messagesService","defaultValuesLoaded","Event","_isLoaded"],"packageName":"common.defaultvalue"},{"rootPath":"/","start":0,"end":60,"imports":[],"exports":[],"declarations":[{"name":"rejectMessage","isConst":true,"isExported":true,"type":"string","start":0,"end":60}],"classes":[],"interfaces":[],"enums":[],"resources":[],"usages":["rejectMessage"],"packageName":"common"},{"rootPath":"/","start":0,"end":103,"imports":[{"libraryName":"common","start":0,"end":43,"specifiers":[{"specifier":"Validatable"}]}],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"FormValidatable","isExported":true,"start":45,"end":102,"accessors":[],"properties":[],"methods":[],"extendsClauses":["Validatable"],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["Validatable"],"packageName":"common.validatable"},{"rootPath":"/","start":0,"end":840,"imports":[{"libraryName":"component","start":0,"end":36,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"component","start":37,"end":89,"specifiers":[{"specifier":"ControlWithValue"}]},{"libraryName":"component.field","start":90,"end":140,"specifiers":[{"specifier":"InputControl"}]},{"libraryName":"component.field","start":141,"end":185,"specifiers":[{"specifier":"TextField"}]},{"libraryName":"decorators.scopes","start":186,"end":255,"specifiers":[{"specifier":"AnalyticalScope"}]},{"libraryName":"decorators","start":256,"end":302,"specifiers":[{"specifier":"Visible"}]}],"exports":[],"declarations":[],"classes":[{"name":"Append","isExported":true,"start":333,"end":839,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"AnalyticalScope","parameters":["TextField"]}],"properties":[{"name":"script","visibility":0,"type":"ControlWithValue","isOptional":false,"isStatic":false,"start":402,"end":435,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":439,"end":529,"decorators":[],"parameters":[],"variables":[]},{"name":"append","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":533,"end":837,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":553,"end":566}],"variables":[{"name":"currentValue","isConst":false,"isExported":false,"start":574,"end":616}]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["InputControl","Visible","value","currentValue","undefined","author","AnalyticalScope","TextField","Behavior","script","ControlWithValue"],"packageName":"component"},{"rootPath":"/","start":0,"end":2412,"imports":[{"libraryName":"@angular/core","start":0,"end":103,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"component","start":104,"end":132,"specifiers":[{"specifier":"Grid"}]},{"libraryName":"component.grid","start":133,"end":198,"specifiers":[{"specifier":"AutoHeightGridLoader"}]},{"libraryName":"rxjs","start":199,"end":233,"specifiers":[{"specifier":"Subscription"}]},{"libraryName":"rxjs","start":234,"end":261,"specifiers":[{"specifier":"timer"}]},{"libraryName":"decorators","start":262,"end":326,"specifiers":[{"specifier":"AdvancedProperty"}]},{"libraryName":"ag-grid-community","start":327,"end":377,"specifiers":[{"specifier":"BodyScrollEvent"}]}],"exports":[],"declarations":[],"classes":[{"name":"AutoHeightGrid","isExported":true,"start":379,"end":2411,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'auto-height-grid',\n templateUrl: './../../../src/resources/template/component/ClientSideGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"autoHeightLoader","visibility":0,"type":"AutoHeightGridLoader","isOptional":false,"isStatic":false,"start":604,"end":651,"decorators":[]},{"name":"refreshRow","visibility":0,"type":"number","isOptional":false,"isStatic":false,"start":654,"end":681,"decorators":[]},{"name":"autoRefreshSubscription","visibility":1,"type":"Subscription","isOptional":false,"isStatic":false,"start":684,"end":732,"decorators":[]},{"name":"refreshTimeout","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":736,"end":804,"decorators":[{"name":"Input","parameters":[]},{"name":"AdvancedProperty","parameters":[]}]}],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":808,"end":985,"decorators":[],"parameters":[],"variables":[]},{"name":"getRowModelType","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":1068,"end":1131,"decorators":[],"parameters":[],"variables":[]},{"name":"onBodyScroll","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":1135,"end":1697,"decorators":[],"parameters":[{"name":"event","type":"BodyScrollEvent","start":1155,"end":1177}],"variables":[{"name":"lastDisplayedRow","isConst":false,"isExported":false,"start":1216,"end":1279}]},{"name":"bindEvents","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1701,"end":1782,"decorators":[],"parameters":[],"variables":[]},{"name":"unbindEvents","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1786,"end":1867,"decorators":[],"parameters":[],"variables":[]},{"name":"subscribeAutoRefresh","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1871,"end":2189,"decorators":[],"parameters":[],"variables":[]},{"name":"unsubscribeAutoRefresh","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2193,"end":2333,"decorators":[],"parameters":[],"variables":[]},{"name":"setRefreshTimeount","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":2337,"end":2409,"decorators":[],"parameters":[{"name":"value","type":"number","start":2356,"end":2369}],"variables":[]}],"extendsClauses":["Grid"],"implementsClauses":[],"ctor":{"name":"AutoHeightGrid","start":989,"end":1064,"parameters":[{"name":"el","type":"ElementRef","start":1001,"end":1015},{"name":"cd","type":"ChangeDetectorRef","start":1017,"end":1038}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["Promise","AutoHeightGridLoader","Number","el","ElementRef","cd","ChangeDetectorRef","event","BodyScrollEvent","lastDisplayedRow","timer","value","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Grid","autoHeightLoader","refreshRow","autoRefreshSubscription","Subscription","Input","AdvancedProperty","refreshTimeout"],"packageName":"component"},{"rootPath":"/","start":0,"end":10311,"imports":[{"libraryName":"@angular/core","start":0,"end":145,"specifiers":[{"specifier":"AfterViewInit"},{"specifier":"ChangeDetectorRef"},{"specifier":"ElementRef"},{"specifier":"Input"},{"specifier":"OnChanges"},{"specifier":"OnDestroy"},{"specifier":"OnInit"},{"specifier":"SimpleChanges"}]},{"libraryName":"component","start":146,"end":182,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"decorators","start":183,"end":229,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"modules.page.model","start":230,"end":291,"specifiers":[{"specifier":"InjectBean"}]},{"libraryName":"modules.page.model","start":292,"end":377,"specifiers":[{"specifier":"ObjRefInitializerBean"}]}],"exports":[],"declarations":[],"classes":[{"name":"BaseComponent","isExported":true,"start":379,"end":10310,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"injectBean","visibility":2,"type":"InjectBean","isOptional":false,"isStatic":false,"start":492,"end":553,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"el","visibility":1,"type":"ElementRef","isOptional":false,"isStatic":false,"start":557,"end":582,"decorators":[]},{"name":"parentContext","visibility":1,"type":"BaseComponent","isOptional":false,"isStatic":false,"start":586,"end":625,"decorators":[]},{"name":"onDestroyHandlers","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":629,"end":674,"decorators":[]},{"name":"cd","visibility":1,"type":"ChangeDetectorRef","isOptional":false,"isStatic":false,"start":678,"end":710,"decorators":[]},{"name":"injectMap","visibility":0,"type":"any","isOptional":false,"isStatic":false,"start":714,"end":737,"decorators":[]},{"name":"parentId","visibility":0,"type":"string","isOptional":false,"isStatic":false,"start":741,"end":766,"decorators":[]},{"name":"childrenIds","visibility":0,"type":"string[]","isOptional":false,"isStatic":false,"start":770,"end":805,"decorators":[]},{"name":"relativesInitiated","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":809,"end":853,"decorators":[]},{"name":"directChildren","visibility":0,"type":"any[]","isOptional":false,"isStatic":false,"start":857,"end":892,"decorators":[]},{"name":"initialComponentScript","visibility":0,"type":"any","isOptional":false,"isStatic":false,"start":896,"end":932,"decorators":[]}],"methods":[{"name":"getEl","isAbstract":false,"visibility":2,"type":"ElementRef","isOptional":false,"isStatic":false,"isAsync":false,"start":1100,"end":1152,"decorators":[],"parameters":[],"variables":[]},{"name":"initRelatives","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":1156,"end":1437,"decorators":[],"parameters":[],"variables":[]},{"name":"ngOnChanges","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1441,"end":3134,"decorators":[],"parameters":[{"name":"changes","type":"SimpleChanges","start":1453,"end":1475}],"variables":[{"name":"objectIdStr","isConst":false,"isExported":false,"start":1518,"end":1561},{"name":"injectBeanChanged","isConst":false,"isExported":false,"start":1795,"end":1853},{"name":"injectBeanChange","isConst":false,"isExported":false,"start":1909,"end":1954},{"name":"injectBean","isConst":false,"isExported":false,"type":"InjectBean","start":1961,"end":2020}]},{"name":"isInjectBeanChanged","isAbstract":false,"visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":3138,"end":3283,"decorators":[],"parameters":[{"name":"changes","type":"SimpleChanges","start":3168,"end":3190}],"variables":[]},{"name":"ngOnInit","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3287,"end":3309,"decorators":[],"parameters":[],"variables":[]},{"name":"ngAfterViewInit","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":3313,"end":3336,"decorators":[],"parameters":[],"variables":[]},{"name":"ngOnDestroy","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3340,"end":3562,"decorators":[],"parameters":[],"variables":[]},{"name":"getParentContext","isAbstract":false,"visibility":2,"type":"BaseComponent","isOptional":false,"isStatic":false,"isAsync":false,"start":3566,"end":3643,"decorators":[],"parameters":[],"variables":[]},{"name":"initParentContext","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3647,"end":4110,"decorators":[],"parameters":[],"variables":[{"name":"parentNode","isConst":false,"isExported":false,"type":"HTMLElement","start":3686,"end":3752},{"name":"parentOfParent","isConst":false,"isExported":false,"type":"HTMLElement","start":3757,"end":3789}]},{"name":"addOnDestroyHandler","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":4114,"end":4207,"decorators":[],"parameters":[{"name":"handler","type":"Function","start":4141,"end":4158}],"variables":[]},{"name":"getScriptInChildren","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":4591,"end":5032,"decorators":[],"parameters":[{"name":"_class","type":"any","start":4618,"end":4629},{"name":"nodePredicate","type":"(item: any) => boolean","start":4631,"end":4669}],"variables":[{"name":"queue","isConst":false,"isExported":false,"type":"any[]","start":4682,"end":4727},{"name":"item","isConst":false,"isExported":false,"start":4765,"end":4790},{"name":"found","isConst":false,"isExported":false,"start":4797,"end":4832}]},{"name":"getScriptsInChildren","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":5417,"end":5990,"decorators":[],"parameters":[{"name":"_class","type":"any","start":5445,"end":5456},{"name":"nodePredicate","type":"(item: any) => boolean","start":5458,"end":5496}],"variables":[{"name":"scripts","isConst":false,"isExported":false,"type":"any[]","start":5511,"end":5535},{"name":"queue","isConst":false,"isExported":false,"type":"BaseComponent[]","start":5540,"end":5595},{"name":"item","isConst":false,"isExported":false,"start":5633,"end":5658}]},{"name":"getScriptInThisAndChildren","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":6381,"end":6629,"decorators":[],"parameters":[{"name":"_class","type":"any","start":6415,"end":6426},{"name":"nodePredicate","type":"(item: any) => boolean","start":6428,"end":6466}],"variables":[{"name":"found","isConst":false,"isExported":false,"start":6479,"end":6514}]},{"name":"getScriptsInThisAndChildren","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":7029,"end":7279,"decorators":[],"parameters":[{"name":"_class","type":"any","start":7064,"end":7075},{"name":"nodePredicate","type":"(item: any) => boolean","start":7077,"end":7115}],"variables":[{"name":"scripts","isConst":false,"isExported":false,"type":"any[]","start":7130,"end":7175}]},{"name":"getScriptInAncestor","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":7658,"end":8067,"decorators":[],"parameters":[{"name":"_class","type":"any","start":7685,"end":7696},{"name":"nodePredicate","type":"(item: any) => boolean","start":7698,"end":7736}],"variables":[{"name":"ancestor","isConst":false,"isExported":false,"type":"BaseComponent","start":7749,"end":7803},{"name":"found","isConst":false,"isExported":false,"start":7833,"end":7872}]},{"name":"getScriptsInAncestor","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":8441,"end":8832,"decorators":[],"parameters":[{"name":"_class","type":"any","start":8469,"end":8480},{"name":"nodePredicate","type":"(item: any) => boolean","start":8482,"end":8520}],"variables":[{"name":"scripts","isConst":false,"isExported":false,"type":"any[]","start":8535,"end":8559},{"name":"ancestor","isConst":false,"isExported":false,"type":"BaseComponent","start":8564,"end":8618}]},{"name":"getChildComponents","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":8836,"end":8913,"decorators":[],"parameters":[],"variables":[]},{"name":"getScriptsInSiblings","isAbstract":false,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":9055,"end":9200,"decorators":[],"parameters":[{"name":"_class","type":"any","start":9076,"end":9087}],"variables":[{"name":"parentContext","isConst":false,"isExported":false,"start":9102,"end":9146}]},{"name":"getChildScripts","isAbstract":false,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":9427,"end":9719,"decorators":[],"parameters":[{"name":"_class","type":"any","start":9443,"end":9454},{"name":"nodePredicate","type":"(item: any) => boolean","start":9456,"end":9494}],"variables":[{"name":"result","isConst":false,"isExported":false,"start":9509,"end":9525}]},{"name":"getScriptInObject","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":9889,"end":10188,"decorators":[],"parameters":[{"name":"objectId","type":"string","start":9907,"end":9923},{"name":"_class","type":"any","start":9925,"end":9936}],"variables":[{"name":"targetCmp","isConst":false,"isExported":false,"type":"BaseComponent","start":9949,"end":10125}]},{"name":"getChangeDetector","isAbstract":false,"type":"ChangeDetectorRef","isOptional":false,"isStatic":false,"isAsync":false,"start":10192,"end":10256,"decorators":[],"parameters":[],"variables":[]},{"name":"markForCheck","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":10260,"end":10308,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Behavior"],"implementsClauses":["OnDestroy","OnInit","AfterViewInit","OnChanges"],"ctor":{"name":"BaseComponent","start":936,"end":1096,"parameters":[{"name":"el","type":"ElementRef","start":948,"end":962},{"name":"cd","type":"ChangeDetectorRef","start":964,"end":985}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","childId","changes","SimpleChanges","objectIdStr","injectBeanChanged","injectBeanChange","injectBean","InjectBean","script","Behavior","key","Object","initializer","ObjRefInitializerBean","handler","BaseComponent","parentNode","HTMLElement","parentOfParent","undefined","Function","param","_class","nodePredicate","returns","item","queue","found","scripts","Error","ancestor","parentContext","result","objectId","targetCmp","OnDestroy","OnInit","AfterViewInit","OnChanges","Input","Visible","onDestroyHandlers","injectMap","parentId","childrenIds","relativesInitiated","directChildren","initialComponentScript"],"packageName":"component"},{"rootPath":"/","start":0,"end":39355,"imports":[{"libraryName":"ag-grid-community","start":0,"end":503,"specifiers":[{"specifier":"BodyScrollEvent"},{"specifier":"CellClickedEvent"},{"specifier":"ColDef"},{"specifier":"ColumnApi"},{"specifier":"ColumnMovedEvent"},{"specifier":"ColumnResizedEvent"},{"specifier":"ColumnVisibleEvent"},{"specifier":"ComponentStateChangedEvent"},{"specifier":"Events"},{"specifier":"GetContextMenuItemsParams"},{"specifier":"GetRowIdFunc"},{"specifier":"GridApi"},{"specifier":"GridReadyEvent"},{"specifier":"ICellRendererFunc"},{"specifier":"ICellRendererParams"},{"specifier":"IRowNode"},{"specifier":"MenuItemDef"},{"specifier":"ProcessCellForExportParams"},{"specifier":"RowClickedEvent"},{"specifier":"RowDoubleClickedEvent"},{"specifier":"RowNode"},{"specifier":"SelectionChangedEvent"},{"specifier":"SortChangedEvent"},{"specifier":"SuppressKeyboardEventParams"}]},{"libraryName":"generated.property.grid","start":504,"end":571,"specifiers":[{"specifier":"GridColumns"}]},{"libraryName":"generated.model.grid","start":572,"end":630,"specifiers":[{"specifier":"SortInfo"}]},{"libraryName":"component","start":631,"end":665,"specifiers":[{"specifier":"Control"}]},{"libraryName":"component.grid","start":666,"end":723,"specifiers":[{"specifier":"GridConfigurator"}]},{"libraryName":"webbpm.event","start":724,"end":768,"specifiers":[{"specifier":"Event"}]},{"libraryName":"decorators","start":769,"end":833,"specifiers":[{"specifier":"AdvancedProperty"}]},{"libraryName":"@angular/core","start":834,"end":901,"specifiers":[{"specifier":"ChangeDetectorRef"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"common","start":902,"end":946,"specifiers":[{"specifier":"Deferred"}]},{"libraryName":"decorators","start":947,"end":993,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"decorators","start":994,"end":1066,"specifiers":[{"specifier":"ExcludeTypeFiltering"}]},{"libraryName":"generated.property.enums","start":1067,"end":1143,"specifiers":[{"specifier":"GridDisplayType"}]},{"libraryName":"generated.model","start":1144,"end":1193,"specifiers":[{"specifier":"Filter"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.api.dao.option","start":1194,"end":1288,"specifiers":[{"specifier":"SortOrder"}]},{"libraryName":"decorators","start":1289,"end":1335,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"component","start":1336,"end":1394,"specifiers":[{"specifier":"SelectableComponent"}]},{"libraryName":"component.grid","start":1395,"end":1452,"specifiers":[{"specifier":"WebbpmDatasource"}]},{"libraryName":"util","start":1453,"end":1497,"specifiers":[{"specifier":"GridUtils"}]},{"libraryName":"component.grid.utils","start":1498,"end":1565,"specifiers":[{"specifier":"GridColumnDefUtils"}]},{"libraryName":"component.grid.utils","start":1566,"end":1631,"specifiers":[{"specifier":"GridColumnIdUtils"}]},{"libraryName":"generated.property.grid","start":1632,"end":1697,"specifiers":[{"specifier":"ColumnSort"}]},{"libraryName":"component.grid.utils","start":1698,"end":1773,"specifiers":[{"specifier":"GridValueRendererUtils"}]},{"libraryName":"component.grid.enums","start":1774,"end":1855,"specifiers":[{"specifier":"GridRowClickSelectionType"}]},{"libraryName":"component.grid.enums","start":1856,"end":1931,"specifiers":[{"specifier":"GridLoadingOverlayType"}]},{"libraryName":"component.grid.utils","start":1932,"end":2003,"specifiers":[{"specifier":"GridCellTooltipUtils"}]},{"libraryName":"component.grid.utils","start":2004,"end":2081,"specifiers":[{"specifier":"GridValueFormatterUtils"}]},{"libraryName":"component.grid.menus","start":2082,"end":2151,"specifiers":[{"specifier":"GridContextMenuItem"}]},{"libraryName":"component.grid.selection","start":2152,"end":2217,"specifiers":[{"specifier":"IsRowSelectable"}]},{"libraryName":"component.grid.selection","start":2218,"end":2293,"specifiers":[{"specifier":"GridSelectionService"}]},{"libraryName":"generated.model.grid","start":2294,"end":2350,"specifiers":[{"specifier":"GridRow"}]},{"libraryName":"component.grid.navigation","start":2351,"end":2429,"specifiers":[{"specifier":"GridNavigationService"}]},{"libraryName":"component.grid.utils","start":2430,"end":2507,"specifiers":[{"specifier":"GridColumnKeyboardUtils"}]},{"libraryName":"component.grid.utils","start":2508,"end":2589,"specifiers":[{"specifier":"GridColumnComparatorUtils"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":2590,"end":2642,"specifiers":[{"specifier":"NgbModal"}]},{"libraryName":"component.grid.headers","start":2643,"end":2710,"specifiers":[{"specifier":"GridSettingHeader"}]},{"libraryName":"directive","start":2711,"end":2807,"specifiers":[{"specifier":"GridConfiguratorDialogComponent"}]},{"libraryName":"modules.core.service","start":2808,"end":2890,"specifiers":[{"specifier":"LocalStorageService"}]},{"libraryName":"component.grid.utils","start":2891,"end":2962,"specifiers":[{"specifier":"GridColumnStateUtils"}]},{"libraryName":"modules.bpmn.storage","start":2963,"end":3047,"specifiers":[{"specifier":"PageObjectByIdStorage"}]},{"libraryName":"generated.component.grid.model","start":3048,"end":3120,"specifiers":[{"specifier":"PinnedType"}]},{"libraryName":"component.grid.utils","start":3121,"end":3194,"specifiers":[{"specifier":"GridColumnFilterUtils"}]},{"libraryName":"component.grid","start":3195,"end":3246,"specifiers":[{"specifier":"RussianLocale"}]},{"libraryName":"component.enum","start":3247,"end":3290,"specifiers":[{"specifier":"GridTheme"}]},{"libraryName":"moment-timezone","start":3291,"end":3328,"specifiers":[],"defaultAlias":"moment"},{"libraryName":"moment","start":3329,"end":3359,"specifiers":[{"specifier":"Moment"}]},{"libraryName":"util","start":3360,"end":3410,"specifiers":[{"specifier":"DateTimeUtil"}]},{"libraryName":"component.grid.renderers","start":3411,"end":3488,"specifiers":[{"specifier":"GridCellValueRenderer"}]},{"libraryName":"ag-grid-community","start":3489,"end":3538,"specifiers":[{"specifier":"GetRowIdParams"}]},{"libraryName":"ag-grid-community","start":3539,"end":3592,"specifiers":[{"specifier":"RowDataTransaction"}]},{"libraryName":"component.grid.tooltip","start":3593,"end":3654,"specifiers":[{"specifier":"DefaultTooltip"}]},{"libraryName":"component.enum","start":3655,"end":3712,"specifiers":[{"specifier":"GridRowModelType"}]},{"libraryName":"ag-grid-community","start":3713,"end":3759,"specifiers":[{"specifier":"ColumnState"}]},{"libraryName":"util","start":3760,"end":3836,"specifiers":[{"specifier":"UnsupportedOperationError"}]}],"exports":[],"declarations":[],"classes":[{"name":"BaseGrid","isExported":true,"start":3838,"end":39354,"accessors":[],"getters":[{"name":"rowData","visibility":1,"type":"any[]","isAbstract":false,"isStatic":false,"start":8341,"end":8648}],"setters":[{"name":"rowData","visibility":1,"isAbstract":false,"isStatic":false,"start":8652,"end":8908}],"decorators":[],"properties":[{"name":"headerHeight","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":3920,"end":3986,"decorators":[{"name":"Input","parameters":[]},{"name":"AdvancedProperty","parameters":[]}]},{"name":"rowHeight","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":3990,"end":4053,"decorators":[{"name":"Input","parameters":[]},{"name":"AdvancedProperty","parameters":[]}]},{"name":"rowSelection","visibility":2,"isOptional":false,"isStatic":false,"start":4057,"end":4119,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"rowClassRules","visibility":2,"type":"any","isOptional":false,"isStatic":false,"start":4123,"end":4180,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"datasource","visibility":2,"type":"WebbpmDatasource","isOptional":false,"isStatic":false,"start":4184,"end":4251,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"maxConcurrentDatasourceRequests","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":4255,"end":4342,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"blockLoadDebounceMillis","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":4346,"end":4422,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"blockSize","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":4426,"end":4482,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"columnDefs","visibility":2,"type":"ColDef[]","isOptional":false,"isStatic":false,"start":4486,"end":4545,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"defaultColDef","visibility":2,"type":"any","isOptional":false,"isStatic":false,"start":4549,"end":4606,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"pinnedBottomRowData","visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"start":4610,"end":4680,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"suppressColumnTooltip","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":4684,"end":4761,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"autoStretchColumns","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":4765,"end":4833,"decorators":[{"name":"Input","parameters":[]},{"name":"AdvancedProperty","parameters":[]}]},{"name":"loadingOverlayType","visibility":2,"type":"GridLoadingOverlayType","isOptional":false,"isStatic":false,"start":4837,"end":4909,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"loadingOverlayMessage","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":4914,"end":5089,"decorators":[{"name":"AdvancedProperty","parameters":[]},{"name":"Visible","parameters":["loadingOverlayType == GridLoadingOverlayType.TEXT_OVERLAY"]}]},{"name":"noRowsOverlayMessage","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":5093,"end":5246,"decorators":[{"name":"AdvancedProperty","parameters":[]},{"name":"Visible","parameters":["loadingOverlayType == GridLoadingOverlayType.TEXT_OVERLAY"]}]},{"name":"theme","visibility":2,"type":"GridTheme","isOptional":false,"isStatic":false,"start":5250,"end":5315,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"gridLoaded","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":5319,"end":5409,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"multiselectable","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":5413,"end":5458,"decorators":[{"name":"NotNull","parameters":[]}]},{"name":"checkboxColumn","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":5462,"end":5531,"decorators":[{"name":"Visible","parameters":["multiselectable == true"]}]},{"name":"checkboxHeader","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":5534,"end":5609,"decorators":[{"name":"Visible","parameters":["checkboxColumn == true"]}]},{"name":"pinnedBottomRowLabel","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":5613,"end":5649,"decorators":[]},{"name":"rowClickSelectionType","visibility":2,"type":"GridRowClickSelectionType","isOptional":false,"isStatic":false,"start":5653,"end":5757,"decorators":[]},{"name":"selectionChangeEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":5761,"end":5848,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"cellClickEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":5852,"end":5925,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"rowClickEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":5929,"end":6001,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"rowDoubleClickEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":6005,"end":6083,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"showRowNumber","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":6088,"end":6118,"decorators":[]},{"name":"floatingFilter","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":6122,"end":6173,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"localeText","visibility":2,"type":"any","isOptional":false,"isStatic":false,"start":6177,"end":6220,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"allowContextMenuWithControlKey","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":6224,"end":6293,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"saveColumnState","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":6297,"end":6359,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"gridConfigurationRowHeight","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":6363,"end":6432,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"tooltipDelay","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":6436,"end":6492,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"enableCellTextSelection","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":6496,"end":6565,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"gridApi","visibility":1,"type":"GridApi","isOptional":false,"isStatic":false,"start":6569,"end":6596,"decorators":[]},{"name":"columnApi","visibility":1,"type":"ColumnApi","isOptional":false,"isStatic":false,"start":6599,"end":6630,"decorators":[]},{"name":"cellClickListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6633,"end":6679,"decorators":[]},{"name":"rowClickListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6682,"end":6727,"decorators":[]},{"name":"rowDoubleClickListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6730,"end":6781,"decorators":[]},{"name":"postLoadListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6784,"end":6829,"decorators":[]},{"name":"columnVisibilityChangedListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6832,"end":6892,"decorators":[]},{"name":"columnResizedListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6895,"end":6945,"decorators":[]},{"name":"columnMovedListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6948,"end":6996,"decorators":[]},{"name":"sortChangedListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":6999,"end":7047,"decorators":[]},{"name":"onGridReadyCallbacks","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":7050,"end":7098,"decorators":[]},{"name":"gridSelectionService","visibility":1,"type":"GridSelectionService","isOptional":false,"isStatic":false,"start":7101,"end":7154,"decorators":[]},{"name":"gridNavigationService","visibility":1,"type":"GridNavigationService","isOptional":false,"isStatic":false,"start":7157,"end":7212,"decorators":[]},{"name":"autoStretchColumnsListener","visibility":1,"type":"Function","isOptional":false,"isStatic":false,"start":7215,"end":7304,"decorators":[]},{"name":"destroyCalled","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":7307,"end":7346,"decorators":[]},{"name":"defaultSortModel","visibility":1,"type":"any","isOptional":false,"isStatic":false,"start":7350,"end":7382,"decorators":[]},{"name":"tempRowData","visibility":1,"type":"any[]","isOptional":false,"isStatic":false,"start":7704,"end":7733,"decorators":[]},{"name":"tempTransactions","visibility":1,"type":"RowDataTransaction[]","isOptional":false,"isStatic":false,"start":7736,"end":7790,"decorators":[]},{"name":"initDeferred","visibility":1,"type":"Deferred","isOptional":false,"isStatic":false,"start":7793,"end":7855,"decorators":[]},{"name":"initialized","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":7859,"end":7896,"decorators":[]},{"name":"dependDeferred","visibility":0,"type":"Deferred","isOptional":false,"isStatic":false,"start":7900,"end":7962,"decorators":[]},{"name":"rowSelectable","visibility":0,"type":"IsRowSelectable","isOptional":false,"isStatic":false,"start":7965,"end":8004,"decorators":[]},{"name":"contextMenuItems","visibility":0,"type":"GridContextMenuItem[]","isOptional":false,"isStatic":false,"start":8007,"end":8055,"decorators":[]},{"name":"ngbModal","visibility":0,"type":"NgbModal","isOptional":false,"isStatic":false,"start":8058,"end":8085,"decorators":[]},{"name":"gridConfigurationCache","visibility":0,"type":"PageObjectByIdStorage","isOptional":false,"isStatic":false,"start":8088,"end":8142,"decorators":[]}],"methods":[{"name":"updateRowData","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8912,"end":9101,"decorators":[],"parameters":[{"name":"diff","type":"RowDataTransaction","start":8936,"end":8960}],"variables":[]},{"name":"applyUpdateTransaction","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":9105,"end":9374,"decorators":[],"parameters":[{"name":"diff","type":"RowDataTransaction","start":9138,"end":9162}],"variables":[{"name":"transaction","isConst":false,"isExported":false,"start":9170,"end":9224},{"name":"rowNodesToUpdate","isConst":false,"isExported":false,"start":9229,"end":9296}]},{"name":"initialize","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":9378,"end":10525,"decorators":[],"parameters":[],"variables":[{"name":"localStorageService","isConst":false,"isExported":false,"start":9739,"end":9804},{"name":"gridConfiguration","isConst":true,"isExported":false,"start":9809,"end":9923},{"name":"grid","isConst":false,"isExported":false,"type":"any","start":10030,"end":10074}]},{"name":"start","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":10529,"end":10790,"decorators":[],"parameters":[],"variables":[]},{"name":"reset","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":10794,"end":10863,"decorators":[],"parameters":[],"variables":[]},{"name":"getRowModelType","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":10867,"end":10909,"decorators":[],"parameters":[],"variables":[]},{"name":"getGridApi","isAbstract":false,"visibility":2,"type":"GridApi","isOptional":false,"isStatic":false,"isAsync":false,"start":10913,"end":10972,"decorators":[],"parameters":[],"variables":[]},{"name":"getColumnApi","isAbstract":false,"visibility":2,"type":"ColumnApi","isOptional":false,"isStatic":false,"isAsync":false,"start":10976,"end":11041,"decorators":[],"parameters":[],"variables":[]},{"name":"initGrid","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":11045,"end":11463,"decorators":[],"parameters":[],"variables":[]},{"name":"applyConfigurators","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":11467,"end":11676,"decorators":[],"parameters":[],"variables":[{"name":"configurators","isConst":false,"isExported":false,"start":11508,"end":11579}]},{"name":"initDefaultColDef","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":11680,"end":11799,"decorators":[],"parameters":[],"variables":[]},{"name":"initDefaultSortModel","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":11803,"end":12338,"decorators":[],"parameters":[],"variables":[{"name":"columnSorts","isConst":false,"isExported":false,"type":"ColumnSort[]","start":11848,"end":11902},{"name":"columns","isConst":false,"isExported":false,"start":11907,"end":11939}]},{"name":"getColumns","isAbstract":false,"visibility":1,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":12342,"end":12421,"decorators":[],"parameters":[],"variables":[]},{"name":"getColumnSorts","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":12425,"end":12505,"decorators":[],"parameters":[],"variables":[]},{"name":"defaultSortingIsPossible","isAbstract":false,"visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":12509,"end":12954,"decorators":[],"parameters":[{"name":"columnSorts","type":"ColumnSort[]","start":12544,"end":12569},{"name":"columns","start":12571,"end":12578}],"variables":[{"name":"columnSortFieldName","isConst":false,"isExported":false,"start":12725,"end":12792}]},{"name":"getColumnsScript","isAbstract":false,"visibility":1,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":12958,"end":13037,"decorators":[],"parameters":[],"variables":[]},{"name":"initColumnDefs","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":13041,"end":13340,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":false,"isExported":false,"start":13080,"end":13126},{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":13238,"end":13299}]},{"name":"columnToColumnDef","isAbstract":false,"visibility":1,"type":"ColDef","isOptional":false,"isStatic":false,"isAsync":false,"start":13344,"end":17251,"decorators":[],"parameters":[{"name":"column","type":"any","start":13372,"end":13383}],"variables":[{"name":"columnDef","isConst":true,"isExported":false,"type":"ColDef","start":13399,"end":13428},{"name":"type","isConst":false,"isExported":false,"start":14910,"end":14939},{"name":"filterMoment","isConst":false,"isExported":false,"type":"Moment","start":15433,"end":15576},{"name":"cellMoment","isConst":false,"isExported":false,"type":"Moment","start":15593,"end":15661},{"name":"renderer","isConst":true,"isExported":false,"type":"ICellRendererFunc","start":16623,"end":16703}]},{"name":"createRenderer","isAbstract":false,"visibility":1,"type":"(params: ICellRendererParams) => HTMLElement | string","isOptional":false,"isStatic":false,"isAsync":false,"start":17255,"end":17774,"decorators":[],"parameters":[{"name":"column","type":"any","start":17280,"end":17291}],"variables":[{"name":"type","isConst":false,"isExported":false,"start":17354,"end":17383},{"name":"renderer","isConst":false,"isExported":false,"type":"GridCellValueRenderer","start":17388,"end":17622}]},{"name":"initRowNumberConfiguration","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":17778,"end":17985,"decorators":[],"parameters":[],"variables":[{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":17878,"end":17941}]},{"name":"initSelectableConfiguration","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":17989,"end":18306,"decorators":[],"parameters":[],"variables":[{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":18180,"end":18262}]},{"name":"initPinnedBottomRowData","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":18310,"end":18755,"decorators":[],"parameters":[],"variables":[{"name":"pinnedBottomRow","isConst":false,"isExported":false,"start":18427,"end":18452},{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":18529,"end":18595}]},{"name":"initRowClasses","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":18759,"end":19224,"decorators":[],"parameters":[],"variables":[]},{"name":"onGridReady","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":19228,"end":20253,"decorators":[],"parameters":[{"name":"event","type":"GridReadyEvent","start":19247,"end":19268}],"variables":[{"name":"allRowNodesToUpdate","isConst":false,"isExported":false,"start":19528,"end":19556},{"name":"transaction","isConst":false,"isExported":false,"start":19604,"end":19655},{"name":"rowsToUpdate","isConst":false,"isExported":false,"start":19662,"end":19725}]},{"name":"autoStretchColumnsIfNeeded","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":20257,"end":20386,"decorators":[],"parameters":[],"variables":[]},{"name":"destroy","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":20391,"end":20747,"decorators":[],"parameters":[],"variables":[]},{"name":"setDisabledByParent","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":20751,"end":20916,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":20771,"end":20785}],"variables":[]},{"name":"onBodyScroll","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":20920,"end":20975,"decorators":[],"parameters":[{"name":"event","type":"BodyScrollEvent","start":20940,"end":20962}],"variables":[]},{"name":"getSelectedRows","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":20979,"end":21085,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getSelectedRowsIds","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":21089,"end":21201,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getSelectedRow","isAbstract":false,"visibility":2,"type":"any | null","isOptional":false,"isStatic":false,"isAsync":false,"start":21205,"end":21314,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getSelectedRowId","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":21318,"end":21450,"decorators":[{"name":"Visible","parameters":[]},{"name":"ExcludeTypeFiltering","parameters":[]}],"parameters":[],"variables":[]},{"name":"getSelectedRowCellValue","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":21454,"end":21778,"decorators":[{"name":"Visible","parameters":[]},{"name":"ExcludeTypeFiltering","parameters":[]}],"parameters":[{"name":"columnOrderNum","type":"number","start":21524,"end":21546}],"variables":[{"name":"selectedRow","isConst":false,"isExported":false,"start":21559,"end":21599},{"name":"colDefIndex","isConst":false,"isExported":false,"start":21604,"end":21658},{"name":"colName","isConst":false,"isExported":false,"start":21663,"end":21712}]},{"name":"getColDefIndex","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":21782,"end":22142,"decorators":[],"parameters":[{"name":"columnOrderNum","type":"number","start":21805,"end":21827}],"variables":[{"name":"colDefIndex","isConst":false,"isExported":false,"start":21835,"end":21872}]},{"name":"getSelectedRowCount","isAbstract":false,"visibility":2,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":22146,"end":22261,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"setMultiselectable","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":22265,"end":22435,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"boolean","start":22304,"end":22318}],"variables":[]},{"name":"selectRow","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":22439,"end":22534,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"id","type":"any","start":22469,"end":22476}],"variables":[]},{"name":"selectRows","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":22538,"end":22639,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"ids","type":"any[]","start":22569,"end":22579}],"variables":[]},{"name":"deselectRow","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":22643,"end":22742,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"id","type":"any","start":22675,"end":22682}],"variables":[]},{"name":"deselectRows","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":22746,"end":22851,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"ids","type":"any[]","start":22779,"end":22789}],"variables":[]},{"name":"selectAll","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":22855,"end":22941,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"deselectAll","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":22945,"end":23035,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"isRowSelectableFunc","isAbstract":false,"visibility":2,"type":"Function","isOptional":false,"isStatic":false,"isAsync":false,"start":23039,"end":23148,"decorators":[],"parameters":[],"variables":[]},{"name":"isRowSelectable","isAbstract":false,"visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":23152,"end":23287,"decorators":[],"parameters":[{"name":"rowNode","type":"IRowNode","start":23178,"end":23195}],"variables":[]},{"name":"isRowMultiSelectWithClick","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":23291,"end":23428,"decorators":[],"parameters":[],"variables":[]},{"name":"isSuppressRowClickSelection","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":23432,"end":23574,"decorators":[],"parameters":[],"variables":[]},{"name":"isSuppressOverlay","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":23578,"end":23694,"decorators":[],"parameters":[],"variables":[]},{"name":"isSuppressLoadingOverlay","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":23698,"end":23783,"decorators":[],"parameters":[],"variables":[]},{"name":"isSuppressNoRowsOverlay","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":23787,"end":23871,"decorators":[],"parameters":[],"variables":[]},{"name":"getAllRows","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":23875,"end":23932,"decorators":[],"parameters":[],"variables":[]},{"name":"addRows","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":23936,"end":24036,"decorators":[],"parameters":[{"name":"rows","type":"any[]","start":23951,"end":23962}],"variables":[]},{"name":"addRow","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24040,"end":24100,"decorators":[],"parameters":[{"name":"row","type":"any","start":24054,"end":24062}],"variables":[]},{"name":"updateRows","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24104,"end":24207,"decorators":[],"parameters":[{"name":"rows","type":"any[]","start":24122,"end":24133}],"variables":[]},{"name":"updateRow","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24211,"end":24277,"decorators":[],"parameters":[{"name":"row","type":"any","start":24228,"end":24236}],"variables":[]},{"name":"removeRows","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24281,"end":24384,"decorators":[],"parameters":[{"name":"rows","type":"any[]","start":24299,"end":24310}],"variables":[]},{"name":"removeRow","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24388,"end":24454,"decorators":[],"parameters":[{"name":"row","type":"any","start":24405,"end":24413}],"variables":[]},{"name":"reload","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24458,"end":24502,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":24472,"end":24489}],"variables":[]},{"name":"addOnGridReadyCallback","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24506,"end":24613,"decorators":[],"parameters":[{"name":"callback","type":"Function","start":24536,"end":24554}],"variables":[]},{"name":"addCellClickListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24617,"end":24733,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":24645,"end":24663}],"variables":[]},{"name":"removeCellClickListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24737,"end":24859,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":24768,"end":24786}],"variables":[]},{"name":"addRowClickListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24863,"end":24977,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":24890,"end":24908}],"variables":[]},{"name":"removeRowClickListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":24981,"end":25101,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":25011,"end":25029}],"variables":[]},{"name":"addRowDoubleClickListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":25105,"end":25231,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":25138,"end":25156}],"variables":[]},{"name":"removeRowDoubleClickListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":25235,"end":25367,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":25271,"end":25289}],"variables":[]},{"name":"onSelectionChanged","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":25371,"end":25566,"decorators":[],"parameters":[{"name":"event","type":"SelectionChangedEvent","start":25397,"end":25425}],"variables":[]},{"name":"getSelectValue","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":25570,"end":25683,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getSelectValues","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":25687,"end":25805,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"addSelectListener","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":25809,"end":25918,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":25834,"end":25852}],"variables":[]},{"name":"removeSelectListener","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":25922,"end":26037,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":25950,"end":25968}],"variables":[]},{"name":"isMultiselectable","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":26041,"end":26115,"decorators":[],"parameters":[],"variables":[]},{"name":"getDependValue","isAbstract":false,"visibility":2,"type":"Deferred","isOptional":false,"isStatic":false,"isAsync":false,"start":26119,"end":26196,"decorators":[],"parameters":[],"variables":[]},{"name":"addPostLoadListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":26200,"end":26330,"decorators":[],"parameters":[{"name":"onLoadedFunction","type":"Function","start":26227,"end":26253}],"variables":[]},{"name":"removePostLoadListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":26334,"end":26470,"decorators":[],"parameters":[{"name":"onLoadedFunction","type":"Function","start":26364,"end":26390}],"variables":[]},{"name":"onLoadStart","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":26474,"end":26681,"decorators":[],"parameters":[],"variables":[]},{"name":"onLoadEnd","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":26685,"end":27237,"decorators":[],"parameters":[],"variables":[{"name":"rows","isConst":false,"isExported":false,"start":26940,"end":26964}]},{"name":"applyDefaultSortModel","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":27241,"end":27908,"decorators":[],"parameters":[],"variables":[{"name":"indexByColumns","isConst":false,"isExported":false,"start":27471,"end":27529},{"name":"field","isConst":false,"isExported":false,"start":27588,"end":27625}]},{"name":"getDefaultSortsIndexByColumns","isAbstract":false,"visibility":1,"type":"Map","isOptional":false,"isStatic":false,"isAsync":false,"start":27912,"end":28210,"decorators":[],"parameters":[],"variables":[{"name":"defaultSortColumns","isConst":false,"isExported":false,"start":27981,"end":28041},{"name":"indexByColumns","isConst":false,"isExported":false,"start":28046,"end":28093}]},{"name":"onLoadError","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":28214,"end":28425,"decorators":[],"parameters":[{"name":"reason","type":"any","start":28233,"end":28244}],"variables":[]},{"name":"onCellClicked","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":28429,"end":28580,"decorators":[],"parameters":[{"name":"event","type":"CellClickedEvent","start":28450,"end":28473}],"variables":[]},{"name":"fireCellClickedEvent","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":28584,"end":28759,"decorators":[],"parameters":[{"name":"event","type":"CellClickedEvent","start":28615,"end":28638}],"variables":[]},{"name":"onRowClicked","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":28763,"end":28911,"decorators":[],"parameters":[{"name":"event","type":"RowClickedEvent","start":28783,"end":28805}],"variables":[]},{"name":"fireRowClickedEvent","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":28915,"end":29096,"decorators":[],"parameters":[{"name":"event","type":"RowClickedEvent","start":28945,"end":28967}],"variables":[]},{"name":"onRowDoubleClicked","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":29100,"end":29266,"decorators":[],"parameters":[{"name":"event","type":"RowDoubleClickedEvent","start":29126,"end":29154}],"variables":[]},{"name":"fireRowDoubleClickedEvent","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":29270,"end":29475,"decorators":[],"parameters":[{"name":"event","type":"RowDoubleClickedEvent","start":29306,"end":29334}],"variables":[]},{"name":"onSortChanged","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":29479,"end":29587,"decorators":[],"parameters":[{"name":"event","type":"SortChangedEvent","start":29500,"end":29523}],"variables":[]},{"name":"addSortChangedListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":29591,"end":29737,"decorators":[],"parameters":[{"name":"onSortChangedFunction","type":"Function","start":29621,"end":29652}],"variables":[]},{"name":"removeSortChangedListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":29741,"end":29893,"decorators":[],"parameters":[{"name":"onSortChangedFunction","type":"Function","start":29774,"end":29805}],"variables":[]},{"name":"getColumnIdsToExport","isAbstract":false,"visibility":2,"type":"string[]","isOptional":false,"isStatic":false,"isAsync":false,"start":29897,"end":29956,"decorators":[],"parameters":[],"variables":[]},{"name":"getSortInfo","isAbstract":false,"visibility":2,"type":"SortInfo[]","isOptional":false,"isStatic":false,"isAsync":false,"start":29960,"end":31146,"decorators":[],"parameters":[],"variables":[{"name":"currentSortStateEqualDefault","isConst":false,"isExported":false,"start":30104,"end":30228},{"name":"localStorageColState","isConst":false,"isExported":false,"type":"ColumnState[]","start":30233,"end":30313},{"name":"sortInfo","isConst":false,"isExported":false,"type":"SortInfo","start":30497,"end":30537},{"name":"column","isConst":false,"isExported":false,"start":30546,"end":30600},{"name":"sortInfo","isConst":false,"isExported":false,"type":"SortInfo","start":30905,"end":30945}]},{"name":"onColumnMoved","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":31150,"end":31258,"decorators":[],"parameters":[{"name":"event","type":"ColumnMovedEvent","start":31171,"end":31194}],"variables":[]},{"name":"addColumnMovedListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":31262,"end":31408,"decorators":[],"parameters":[{"name":"onColumnMovedFunction","type":"Function","start":31292,"end":31323}],"variables":[]},{"name":"removeColumnMovedListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":31412,"end":31564,"decorators":[],"parameters":[{"name":"onColumnMovedFunction","type":"Function","start":31445,"end":31476}],"variables":[]},{"name":"getRowIdFunc","isAbstract":false,"visibility":2,"type":"GetRowIdFunc","isOptional":false,"isStatic":false,"isAsync":false,"start":31568,"end":31688,"decorators":[],"parameters":[],"variables":[]},{"name":"getDisplayedRowCount","isAbstract":false,"visibility":2,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":31692,"end":31818,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"setRowHeight","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":31822,"end":31924,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"number","start":31848,"end":31861}],"variables":[]},{"name":"setHeaderHeight","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":31928,"end":32036,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"number","start":31957,"end":31970}],"variables":[]},{"name":"setRowSelection","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":32040,"end":32135,"decorators":[],"parameters":[{"name":"value","type":"string","start":32056,"end":32069}],"variables":[]},{"name":"setDatasource","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":32139,"end":32240,"decorators":[],"parameters":[{"name":"value","type":"WebbpmDatasource","start":32153,"end":32176}],"variables":[]},{"name":"setBlockSize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":32244,"end":32333,"decorators":[],"parameters":[{"name":"value","type":"number","start":32257,"end":32270}],"variables":[]},{"name":"setAutoStretchColumns","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":32337,"end":32496,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":32359,"end":32373}],"variables":[]},{"name":"showColumn","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":32500,"end":32615,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"columnOrderNum","type":"number","start":32531,"end":32553}],"variables":[]},{"name":"hideColumn","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":32619,"end":32735,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"columnOrderNum","type":"number","start":32650,"end":32672}],"variables":[]},{"name":"isColumnVisible","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":32739,"end":32988,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"columnOrderNum","type":"number","start":32775,"end":32797}],"variables":[{"name":"colDefIndex","isConst":false,"isExported":false,"start":32814,"end":32868},{"name":"columnKey","isConst":false,"isExported":false,"start":32873,"end":32924}]},{"name":"setColumnVisible","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":32992,"end":33241,"decorators":[],"parameters":[{"name":"columnOrderNum","type":"number","start":33017,"end":33039},{"name":"visible","type":"boolean","start":33041,"end":33057}],"variables":[{"name":"colDefIndex","isConst":false,"isExported":false,"start":33071,"end":33125},{"name":"columnKey","isConst":false,"isExported":false,"start":33130,"end":33181}]},{"name":"getContextMenuItemsFunc","isAbstract":false,"visibility":2,"type":"Function","isOptional":false,"isStatic":false,"isAsync":false,"start":33245,"end":33377,"decorators":[],"parameters":[],"variables":[]},{"name":"getContextMenuItems","isAbstract":false,"visibility":1,"type":"(string | MenuItemDef)[]","isOptional":false,"isStatic":false,"isAsync":false,"start":33381,"end":33608,"decorators":[],"parameters":[{"name":"params","type":"GetContextMenuItemsParams","start":33411,"end":33444}],"variables":[]},{"name":"processCellForClipboard","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":33612,"end":33753,"decorators":[],"parameters":[{"name":"params","type":"ProcessCellForExportParams","start":33643,"end":33677}],"variables":[]},{"name":"isInitialized","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":33757,"end":33823,"decorators":[],"parameters":[],"variables":[]},{"name":"setValue","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":33827,"end":34832,"decorators":[],"parameters":[{"name":"rowData","start":33836,"end":33843}],"variables":[{"name":"clientSideSortState","isConst":false,"isExported":false,"type":"any","start":33851,"end":33887},{"name":"rows","isConst":false,"isExported":false,"type":"GridRow[]","start":34435,"end":34485},{"name":"column","isConst":false,"isExported":false,"start":34695,"end":34740}]},{"name":"getLoadingOverlayTemplate","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":34836,"end":35011,"decorators":[],"parameters":[],"variables":[]},{"name":"getNoRowsOverlayTemplate","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":35015,"end":35187,"decorators":[],"parameters":[],"variables":[]},{"name":"getGridConfigurationStorage","isAbstract":false,"visibility":2,"type":"PageObjectByIdStorage","isOptional":false,"isStatic":false,"isAsync":false,"start":35191,"end":35296,"decorators":[],"parameters":[],"variables":[]},{"name":"bindEvents","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":35300,"end":35516,"decorators":[],"parameters":[],"variables":[]},{"name":"unbindEvents","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":35520,"end":35744,"decorators":[],"parameters":[],"variables":[]},{"name":"openConfigurationDialog","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":35748,"end":36675,"decorators":[],"parameters":[],"variables":[{"name":"configurationDialog","isConst":false,"isExported":false,"start":35787,"end":35865}]},{"name":"onColumnResized","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":36679,"end":36793,"decorators":[],"parameters":[{"name":"event","type":"ColumnResizedEvent","start":36702,"end":36727}],"variables":[]},{"name":"addColumnResized","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":36797,"end":36943,"decorators":[],"parameters":[{"name":"onColumnResizedFunction","type":"Function","start":36821,"end":36854}],"variables":[]},{"name":"removeColumnResized","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":36947,"end":37099,"decorators":[],"parameters":[{"name":"onColumnResizedFunction","type":"Function","start":36974,"end":37007}],"variables":[]},{"name":"onColumnVisibilityChanged","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":37103,"end":37237,"decorators":[],"parameters":[{"name":"event","type":"ColumnVisibleEvent","start":37136,"end":37161}],"variables":[]},{"name":"addColumnVisibilityChanged","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":37241,"end":37413,"decorators":[],"parameters":[{"name":"onColumnVisibilityFunction","type":"Function","start":37275,"end":37311}],"variables":[]},{"name":"removeColumnVisibilityChanged","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":37417,"end":37595,"decorators":[],"parameters":[{"name":"onColumnVisibilityFunction","type":"Function","start":37454,"end":37490}],"variables":[]},{"name":"loadingEnabled","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":37599,"end":37654,"decorators":[],"parameters":[],"variables":[]},{"name":"getColumnCells","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":37658,"end":37918,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"columnOrderNum","type":"number","start":37693,"end":37715}],"variables":[{"name":"rows","isConst":false,"isExported":false,"start":37730,"end":37759},{"name":"colDefIndex","isConst":false,"isExported":false,"start":37764,"end":37818},{"name":"colName","isConst":false,"isExported":false,"start":37823,"end":37872}]},{"name":"columnStateFromLocalStorageHasSorts","isAbstract":false,"visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":37922,"end":38208,"decorators":[],"parameters":[],"variables":[{"name":"columnsState","isConst":false,"isExported":false,"start":37985,"end":38059},{"name":"columnsStateWithSorts","isConst":false,"isExported":false,"start":38064,"end":38159}]},{"name":"getColumnStateFromLocalStorage","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":38212,"end":38508,"decorators":[],"parameters":[],"variables":[{"name":"configuration","isConst":false,"isExported":false,"start":38296,"end":38361}]},{"name":"applyColumnStateFromLocalStorage","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":38512,"end":38742,"decorators":[],"parameters":[],"variables":[{"name":"columnState","isConst":false,"isExported":false,"start":38597,"end":38653}]},{"name":"componentStateChanged","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":38746,"end":38974,"decorators":[],"parameters":[{"name":"$event","type":"ComponentStateChangedEvent","start":38768,"end":38802}],"variables":[]},{"name":"getAllLoadedRowIds","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":38978,"end":39352,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[{"name":"rowModelType","isConst":false,"isExported":false,"start":39032,"end":39074}]}],"extendsClauses":["Control"],"implementsClauses":["SelectableComponent"],"ctor":{"name":"BaseGrid","start":8146,"end":8337,"parameters":[{"name":"el","type":"ElementRef","start":8158,"end":8172},{"name":"cd","type":"ChangeDetectorRef","start":8174,"end":8195}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","window","RussianLocale","diff","RowDataTransaction","transaction","rowNodesToUpdate","rowNodes","force","Promise","NgbModal","a","b","localStorageService","LocalStorageService","gridConfiguration","GridColumnStateUtils","PageObjectByIdStorage","grid","$","event","GridSelectionService","GridNavigationService","GridCellTooltipUtils","GridApi","ColumnApi","configurators","configurator","GridConfigurator","resizable","sortable","columnSorts","ColumnSort","columns","columnSort","GridUtils","SortOrder","columnSortFieldName","column","GridColumns","columnDef","ColDef","GridColumnDefUtils","GridSettingHeader","PinnedType","GridDisplayType","params","type","GridColumnFilterUtils","comparator","filterLocalDateAtMidnight","cellValue","filterMoment","Moment","moment","cellMoment","DateTimeUtil","browserDatePicker","GridColumnComparatorUtils","GridValueFormatterUtils","SuppressKeyboardEventParams","GridColumnKeyboardUtils","renderer","ICellRendererFunc","GridValueRendererUtils","DefaultTooltip","ICellRendererParams","HTMLElement","GridCellValueRenderer","undefined","pinnedBottomRow","GridReadyEvent","allRowNodesToUpdate","t","rowsToUpdate","Events","cb","Function","value","BodyScrollEvent","Visible","ExcludeTypeFiltering","columnOrderNum","selectedRow","colDefIndex","colName","id","ids","rowNode","IRowNode","GridRowClickSelectionType","GridLoadingOverlayType","rows","add","remove","update","row","filters","Filter","callback","listener","SelectionChangedEvent","Deferred","onLoadedFunction","indexByColumns","field","Map","defaultSortColumns","Object","index","reason","CellClickedEvent","RowClickedEvent","RowDoubleClickedEvent","SortChangedEvent","onSortChangedFunction","SortInfo","currentSortStateEqualDefault","col","localStorageColState","ColumnState","colState","sortInfo","ColumnMovedEvent","onColumnMovedFunction","GetRowIdFunc","GetRowIdParams","GridColumnIdUtils","WebbpmDatasource","columnKey","visible","GetContextMenuItemsParams","MenuItemDef","contextMenu","item","ProcessCellForExportParams","rowData","clientSideSortState","GridRowModelType","GridRow","colId","sortOrder","configurationDialog","GridConfiguratorDialogComponent","result","state","applyOrder","ColumnResizedEvent","onColumnResizedFunction","ColumnVisibleEvent","onColumnVisibilityFunction","columnsState","columnsStateWithSorts","configuration","columnState","$event","ComponentStateChangedEvent","rowModelType","UnsupportedOperationError","Control","SelectableComponent","Input","AdvancedProperty","headerHeight","rowHeight","rowSelection","rowClassRules","datasource","maxConcurrentDatasourceRequests","blockLoadDebounceMillis","blockSize","columnDefs","defaultColDef","pinnedBottomRowData","suppressColumnTooltip","autoStretchColumns","loadingOverlayType","loadingOverlayMessage","noRowsOverlayMessage","theme","GridTheme","gridLoaded","Event","NotNull","multiselectable","checkboxColumn","checkboxHeader","pinnedBottomRowLabel","rowClickSelectionType","selectionChangeEvent","cellClickEvent","rowClickEvent","rowDoubleClickEvent","showRowNumber","floatingFilter","localeText","allowContextMenuWithControlKey","saveColumnState","gridConfigurationRowHeight","tooltipDelay","enableCellTextSelection","gridApi","columnApi","cellClickListeners","rowClickListeners","rowDoubleClickListeners","postLoadListeners","columnVisibilityChangedListeners","columnResizedListeners","columnMovedListeners","sortChangedListeners","onGridReadyCallbacks","gridSelectionService","gridNavigationService","autoStretchColumnsListener","destroyCalled","defaultSortModel","tempRowData","tempTransactions","initDeferred","initialized","dependDeferred","rowSelectable","IsRowSelectable","contextMenuItems","GridContextMenuItem","ngbModal","gridConfigurationCache","data"],"packageName":"component"},{"rootPath":"/","start":0,"end":3027,"imports":[{"libraryName":"component","start":0,"end":36,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"@angular/common/http","start":37,"end":85,"specifiers":[{"specifier":"HttpClient"}]},{"libraryName":"modules.bpmn.provider","start":86,"end":165,"specifiers":[{"specifier":"TaskParamsProvider"}]},{"libraryName":"modules.core.service","start":166,"end":260,"specifiers":[{"specifier":"ProgressIndicationService"}]},{"libraryName":"@angular/core","start":261,"end":300,"specifiers":[{"specifier":"Injector"}]},{"libraryName":"common","start":301,"end":357,"specifiers":[{"specifier":"PromiseWrapper"}]},{"libraryName":"common","start":358,"end":413,"specifiers":[{"specifier":"rejectMessage"}]}],"exports":[],"declarations":[],"classes":[{"name":"BaseRpcService","isExported":true,"start":415,"end":3026,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"httpClient","visibility":1,"type":"HttpClient","isOptional":false,"isStatic":false,"start":473,"end":506,"decorators":[]},{"name":"taskParamsProvider","visibility":1,"type":"TaskParamsProvider","isOptional":false,"isStatic":false,"start":509,"end":558,"decorators":[]},{"name":"progressIndicationService","visibility":1,"type":"ProgressIndicationService","isOptional":false,"isStatic":false,"start":561,"end":624,"decorators":[]},{"name":"sharedContext","visibility":2,"type":"any","isOptional":false,"isStatic":false,"start":627,"end":653,"decorators":[]},{"name":"promisesToRejectOnDestroyOrReset","visibility":0,"type":"PromiseWrapper[]","isOptional":false,"isStatic":false,"start":656,"end":725,"decorators":[]}],"methods":[{"name":"wrapPromise","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":1068,"end":1321,"decorators":[],"parameters":[{"name":"promise","type":"Promise","start":1080,"end":1101}],"variables":[{"name":"promiseWrapper","isConst":false,"isExported":false,"start":1123,"end":1170},{"name":"returnedPromise","isConst":false,"isExported":false,"start":1175,"end":1226}]},{"name":"getSharedContext","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":1325,"end":1385,"decorators":[],"parameters":[],"variables":[]},{"name":"getSharedProperty","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":1389,"end":1481,"decorators":[],"parameters":[{"name":"propName","type":"string","start":1407,"end":1423}],"variables":[]},{"name":"reset","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1485,"end":1543,"decorators":[],"parameters":[],"variables":[]},{"name":"doRequest","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":1547,"end":2316,"decorators":[],"parameters":[{"name":"serviceName","type":"string","start":1560,"end":1579},{"name":"methodName","type":"string","start":1581,"end":1599},{"name":"argTypes","type":"string[]","start":1601,"end":1619},{"name":"args","type":"any[]","start":1621,"end":1632},{"name":"showProgressBar","type":"boolean","start":1649,"end":1674}],"variables":[{"name":"postObj","isConst":false,"isExported":false,"start":1746,"end":1875},{"name":"url","isConst":false,"isExported":false,"start":1979,"end":2090}]},{"name":"prepareArg","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2320,"end":2409,"decorators":[],"parameters":[{"name":"arg","type":"any","start":2331,"end":2339}],"variables":[]},{"name":"destroy","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":2413,"end":2475,"decorators":[],"parameters":[],"variables":[]},{"name":"getRequestAdditionalProps","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":2479,"end":2755,"decorators":[],"parameters":[],"variables":[]},{"name":"promiseReject","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":2877,"end":3024,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Behavior"],"implementsClauses":[],"ctor":{"name":"BaseRpcService","start":729,"end":1064,"parameters":[{"name":"pageId","type":"string","start":741,"end":756},{"name":"objectId","type":"string","start":758,"end":775},{"name":"injector","type":"Injector","start":777,"end":796},{"name":"interfaces","type":"any[]","start":798,"end":816}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["pageId","objectId","injector","Injector","interfaces","HttpClient","TaskParamsProvider","ProgressIndicationService","promise","Promise","promiseWrapper","PromiseWrapper","returnedPromise","propName","T","serviceName","methodName","argTypes","args","showProgressBar","arg","postObj","url","JSON","taskInstanceId","processInstanceId","undefined","rejectMessage","Behavior","httpClient","taskParamsProvider","progressIndicationService","sharedContext","promisesToRejectOnDestroyOrReset"],"packageName":"component"},{"rootPath":"/","start":0,"end":976,"imports":[{"libraryName":"@angular/core/testing","start":0,"end":89,"specifiers":[{"specifier":"async"},{"specifier":"ComponentFixture"},{"specifier":"fakeAsync"},{"specifier":"flush"},{"specifier":"TestBed"}]},{"libraryName":"@angular/forms","start":90,"end":133,"specifiers":[{"specifier":"FormsModule"}]},{"libraryName":"...testing","start":134,"end":182,"specifiers":[{"specifier":"TestUtil"}]},{"libraryName":"component","start":183,"end":211,"specifiers":[{"specifier":"Text"}]},{"libraryName":"pipe","start":212,"end":271,"specifiers":[{"specifier":"EmptyIfNullPipe"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":272,"end":325,"specifiers":[{"specifier":"NgbModule"}]}],"exports":[],"declarations":[{"name":"component","isConst":false,"isExported":false,"type":"Text","start":358,"end":378},{"name":"fixture","isConst":false,"isExported":false,"type":"ComponentFixture","start":381,"end":417}],"classes":[],"interfaces":[],"enums":[],"resources":[],"usages":["describe","component","Text","fixture","ComponentFixture","TestUtil","beforeEach","async","TestBed","declarations","EmptyIfNullPipe","imports","NgbModule","fakeAsync","flush","it","expect"],"packageName":"component"},{"rootPath":"/","start":0,"end":6518,"imports":[{"libraryName":"@angular/core","start":0,"end":39,"specifiers":[{"specifier":"Injector"}]},{"libraryName":"decorators","start":40,"end":86,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"webbpm.event","start":87,"end":131,"specifiers":[{"specifier":"Event"}]},{"libraryName":"modules.page.model","start":132,"end":217,"specifiers":[{"specifier":"ObjRefInitializerBean"}]},{"libraryName":"component","start":218,"end":256,"specifiers":[{"specifier":"IBehavior"}]},{"libraryName":"util","start":257,"end":303,"specifiers":[{"specifier":"ScriptUtil"}]}],"exports":[],"declarations":[],"classes":[{"name":"Behavior","isExported":true,"start":305,"end":6517,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"injector","visibility":1,"type":"Injector","isOptional":false,"isStatic":false,"start":351,"end":380,"decorators":[]},{"name":"objectId","visibility":1,"type":"string","isOptional":false,"isStatic":false,"start":384,"end":411,"decorators":[]},{"name":"interfaces","visibility":1,"type":"any[]","isOptional":false,"isStatic":false,"start":415,"end":443,"decorators":[]},{"name":"pageId","visibility":1,"type":"string","isOptional":false,"isStatic":false,"start":447,"end":472,"decorators":[]},{"name":"refInitiated","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":476,"end":514,"decorators":[]},{"name":"instantiated","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":518,"end":575,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"context","visibility":2,"type":"any","isOptional":false,"isStatic":false,"start":579,"end":619,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"beforeStart","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":675,"end":763,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"objRefInitializers","visibility":1,"type":"ObjRefInitializerBean[]","isOptional":false,"isStatic":false,"start":767,"end":826,"decorators":[]},{"name":"componentScript","visibility":1,"type":"any","isOptional":false,"isStatic":false,"start":830,"end":861,"decorators":[]},{"name":"scripts","visibility":1,"type":"Behavior[]","isOptional":false,"isStatic":false,"start":865,"end":900,"decorators":[]}],"methods":[{"name":"preInitialize","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1140,"end":1198,"decorators":[],"parameters":[],"variables":[]},{"name":"initialize","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1471,"end":1502,"decorators":[],"parameters":[],"variables":[]},{"name":"bindEvents","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1636,"end":1667,"decorators":[],"parameters":[],"variables":[]},{"name":"start","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1770,"end":1832,"decorators":[],"parameters":[],"variables":[]},{"name":"postStart","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1933,"end":1963,"decorators":[],"parameters":[],"variables":[]},{"name":"unbindEvents","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":1967,"end":1994,"decorators":[],"parameters":[],"variables":[]},{"name":"reset","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1998,"end":2017,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectName","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2096,"end":2231,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectDescription","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2322,"end":2395,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectPath","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2399,"end":2841,"decorators":[],"parameters":[{"name":"relativeParent","type":"any","start":2413,"end":2432}],"variables":[{"name":"path","isConst":false,"isExported":false,"start":2448,"end":2576},{"name":"parentContext","isConst":false,"isExported":false,"start":2581,"end":2625}]},{"name":"getPrototypeId","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2902,"end":3049,"decorators":[],"parameters":[],"variables":[]},{"name":"getComponentRootId","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":3111,"end":3257,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectNameAttr","isAbstract":false,"visibility":0,"type":"string","isOptional":false,"isStatic":true,"isAsync":false,"start":3261,"end":3414,"decorators":[],"parameters":[{"name":"context","type":"any","start":3294,"end":3306},{"name":"attributeName","type":"string","start":3308,"end":3329}],"variables":[]},{"name":"getScriptInChildren","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":3557,"end":3673,"decorators":[],"parameters":[{"name":"_class","type":"any","start":3577,"end":3588}],"variables":[]},{"name":"getScriptsInChildren","isAbstract":false,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":3823,"end":3943,"decorators":[],"parameters":[{"name":"_class","type":"any","start":3844,"end":3855}],"variables":[]},{"name":"getChildScripts","isAbstract":false,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":4113,"end":4223,"decorators":[],"parameters":[{"name":"_class","type":"any","start":4129,"end":4140}],"variables":[]},{"name":"getScript","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":4365,"end":4453,"decorators":[],"parameters":[{"name":"_class","type":"any","start":4375,"end":4386}],"variables":[]},{"name":"getScripts","isAbstract":false,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":4590,"end":4825,"decorators":[],"parameters":[{"name":"_class","type":"any","start":4601,"end":4612}],"variables":[{"name":"result","isConst":false,"isExported":false,"start":4627,"end":4643},{"name":"found","isConst":false,"isExported":false,"start":4689,"end":4741}]},{"name":"getChildComponents","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":4829,"end":4935,"decorators":[],"parameters":[],"variables":[]},{"name":"getScriptInObject","isAbstract":false,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":5106,"end":5226,"decorators":[],"parameters":[{"name":"objectId","type":"string","start":5124,"end":5140},{"name":"_class","type":"any","start":5142,"end":5153}],"variables":[]},{"name":"getPageId","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":5297,"end":5346,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectId","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":5440,"end":5493,"decorators":[],"parameters":[],"variables":[]},{"name":"getContext","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":5566,"end":5621,"decorators":[],"parameters":[],"variables":[]},{"name":"getParentContext","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":5625,"end":5705,"decorators":[],"parameters":[],"variables":[]},{"name":"implementsInterface","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":5709,"end":5814,"decorators":[],"parameters":[{"name":"_interface","type":"string","start":5736,"end":5754}],"variables":[]},{"name":"destroy","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":5818,"end":5865,"decorators":[],"parameters":[],"variables":[]},{"name":"initObjRefs","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":5869,"end":6251,"decorators":[],"parameters":[],"variables":[]},{"name":"setComponentScript","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":6255,"end":6332,"decorators":[],"parameters":[{"name":"script","type":"Behavior","start":6274,"end":6290}],"variables":[]},{"name":"markForCheck","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":6336,"end":6389,"decorators":[],"parameters":[],"variables":[]},{"name":"setObjRefInitializers","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":6393,"end":6515,"decorators":[],"parameters":[{"name":"objRefInitializers","type":"ObjRefInitializerBean[]","start":6415,"end":6458}],"variables":[]}],"extendsClauses":[],"implementsClauses":["IBehavior"],"ctor":{"name":"Behavior","start":904,"end":1136,"parameters":[{"name":"pageId","type":"string","start":916,"end":931},{"name":"objectId","type":"string","start":933,"end":950},{"name":"injector","type":"Injector","start":952,"end":971},{"name":"interfaces","type":"any[]","start":973,"end":991}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["pageId","objectId","injector","Injector","interfaces","returns","relativeParent","path","Behavior","parentContext","context","attributeName","param","_class","ScriptUtil","result","script","found","_interface","initializer","ObjRefInitializerBean","e","console","objRefInitializers","IBehavior","refInitiated","Visible","instantiated","beforeStart","Event","componentScript","scripts"],"packageName":"component"},{"rootPath":"/","start":0,"end":955,"imports":[{"libraryName":"@angular/core","start":0,"end":65,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]},{"libraryName":"@angular/common/http","start":66,"end":114,"specifiers":[{"specifier":"HttpClient"}]},{"libraryName":"component.button","start":115,"end":154,"specifiers":[{"specifier":"Button"}]}],"exports":[],"declarations":[],"classes":[{"name":"ClearSecurityCacheBtn","isExported":true,"start":156,"end":954,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'clear-security-cache-button',\n templateUrl: './../../../src/resources/template/component/button/Button.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n }"]}],"properties":[{"name":"httpClient","visibility":0,"type":"HttpClient","isOptional":false,"isStatic":false,"start":444,"end":475,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":479,"end":574,"decorators":[],"parameters":[],"variables":[]},{"name":"doClickActions","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":578,"end":952,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Button"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["HttpClient","Promise","reason","console","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Button","httpClient"],"packageName":"component"},{"rootPath":"/","start":0,"end":110,"imports":[{"libraryName":"component","start":0,"end":38,"specifiers":[{"specifier":"IBehavior"}]}],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"Collectible","isExported":true,"start":59,"end":109,"accessors":[],"properties":[],"methods":[],"extendsClauses":["IBehavior"],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["IBehavior"],"packageName":"component"},{"rootPath":"/","start":0,"end":6224,"imports":[{"libraryName":"@angular/core","start":0,"end":36,"specifiers":[{"specifier":"Input"}]},{"libraryName":"component.selectize","start":37,"end":93,"specifiers":[{"specifier":"SelectizeBase"}]},{"libraryName":"model","start":94,"end":159,"specifiers":[{"specifier":"StaticComboBoxModel"}]},{"libraryName":"generated.model","start":160,"end":223,"specifiers":[{"specifier":"ComboBoxModel"}]},{"libraryName":"decorators","start":224,"end":270,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"decorators","start":271,"end":335,"specifiers":[{"specifier":"AdvancedProperty"}]},{"libraryName":"component.selectize.enums","start":336,"end":416,"specifiers":[{"specifier":"SelectizeScrollGravity"}]},{"libraryName":"component.selectize.enums","start":417,"end":505,"specifiers":[{"specifier":"SelectizeDropdownDirection"}]}],"exports":[],"declarations":[],"classes":[{"name":"ComboBoxBase","isExported":true,"start":586,"end":6223,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"initialValue","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":648,"end":687,"decorators":[{"name":"Input","parameters":[]}]},{"name":"value","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":691,"end":732,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"scrollGravity","visibility":2,"type":"SelectizeScrollGravity","isOptional":false,"isStatic":false,"start":736,"end":836,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"dropdownDirection","visibility":2,"type":"SelectizeDropdownDirection","isOptional":false,"isStatic":false,"start":840,"end":949,"decorators":[{"name":"AdvancedProperty","parameters":[]}]},{"name":"internalValue","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":953,"end":1013,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"selectize","visibility":1,"type":"Selectize.IApi","isOptional":false,"isStatic":false,"start":1062,"end":1143,"decorators":[]},{"name":"selectizeFieldName","visibility":1,"type":"string","isOptional":false,"isStatic":false,"start":1146,"end":1190,"decorators":[]},{"name":"selectizeMaxItems","visibility":1,"type":"number","isOptional":false,"isStatic":false,"start":1193,"end":1233,"decorators":[]},{"name":"selectizePlugins","visibility":1,"type":"string[] | IPluginOption[] | { [name: string]: any }","isOptional":false,"isStatic":false,"start":1236,"end":1324,"decorators":[]},{"name":"versioningValidationMessage","visibility":1,"type":"string","isOptional":false,"isStatic":false,"start":1328,"end":1374,"decorators":[]}],"methods":[{"name":"ngAfterViewInit","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1378,"end":1456,"decorators":[],"parameters":[],"variables":[]},{"name":"ngOnDestroy","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1460,"end":1534,"decorators":[],"parameters":[],"variables":[]},{"name":"itemShow","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1538,"end":1638,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":1567,"end":1580}],"variables":[]},{"name":"itemHide","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1642,"end":1741,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":1671,"end":1684}],"variables":[]},{"name":"setPlaceholder","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1745,"end":1951,"decorators":[],"parameters":[{"name":"value","type":"string","start":1760,"end":1773}],"variables":[]},{"name":"refreshSelectizeOptions","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":1955,"end":2532,"decorators":[],"parameters":[{"name":"silent","type":"boolean","start":1989,"end":2005}],"variables":[{"name":"options","isConst":true,"isExported":false,"start":2013,"end":2050},{"name":"keys","isConst":false,"isExported":false,"start":2077,"end":2124},{"name":"model","isConst":false,"isExported":false,"start":2179,"end":2223}]},{"name":"setSelectizeValue","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2536,"end":2940,"decorators":[],"parameters":[{"name":"value","type":"any","start":2564,"end":2574}],"variables":[]},{"name":"setSelectizeInvalidValue","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2944,"end":3601,"decorators":[],"parameters":[{"name":"model","type":"any","start":2979,"end":2989}],"variables":[{"name":"value","isConst":false,"isExported":false,"start":3059,"end":3096}]},{"name":"initSelectize","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":3605,"end":5111,"decorators":[],"parameters":[],"variables":[{"name":"self","isConst":false,"isExported":false,"start":3637,"end":3653},{"name":"$select","isConst":false,"isExported":false,"start":3658,"end":3712},{"name":"dropDownLabel","isConst":false,"isExported":false,"start":4763,"end":4844}]},{"name":"getDatasource","isAbstract":true,"visibility":1,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":5115,"end":5157,"decorators":[],"parameters":[],"variables":[]},{"name":"changeItemVisibility","isAbstract":true,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":5161,"end":5239,"decorators":[],"parameters":[{"name":"value","type":"string","start":5201,"end":5214},{"name":"hidden","type":"boolean","start":5216,"end":5231}],"variables":[]},{"name":"onChangeSelectize","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":5404,"end":5669,"decorators":[],"parameters":[{"name":"value","start":5432,"end":5437}],"variables":[{"name":"option","isConst":false,"isExported":false,"type":"any","start":5481,"end":5529}]},{"name":"setEnabled","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":5673,"end":5822,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"boolean","start":5697,"end":5711}],"variables":[]},{"name":"setDisabledByParent","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":5826,"end":5980,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":5846,"end":5860}],"variables":[]},{"name":"clear","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":5984,"end":6052,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getVersioningValidationMessage","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":6056,"end":6147,"decorators":[],"parameters":[],"variables":[]},{"name":"setInitValue","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":6151,"end":6221,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["SelectizeBase"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["Selectize","IPluginOption","Visible","value","silent","options","keys","Object","i","model","item","self","$select","$","maxItems","placeholder","labelField","searchField","create","closeAfterSelect","blurOnSingleSelect","allowEmptyOption","openOnFocus","valueField","delimiter","highlight","scrollGravity","dropdownDirection","plugins","onChange","onFocus","onBlur","render","escape","option","dropDownLabel","hidden","Promise","undefined","author","SelectizeBase","Input","initialValue","AdvancedProperty","SelectizeScrollGravity","SelectizeDropdownDirection","internalValue","selectize","IApi","StaticComboBoxModel","ComboBoxModel","selectizeFieldName","selectizeMaxItems","selectizePlugins","name","versioningValidationMessage"],"packageName":"component"},{"rootPath":"/","start":0,"end":1227,"imports":[{"libraryName":"@angular/core/testing","start":0,"end":71,"specifiers":[{"specifier":"async"},{"specifier":"ComponentFixture"},{"specifier":"TestBed"}]},{"libraryName":"@angular/forms","start":72,"end":115,"specifiers":[{"specifier":"FormsModule"}]},{"libraryName":"...testing","start":116,"end":164,"specifiers":[{"specifier":"TestUtil"}]},{"libraryName":"component","start":165,"end":193,"specifiers":[{"specifier":"Text"}]},{"libraryName":"pipe","start":194,"end":253,"specifiers":[{"specifier":"EmptyIfNullPipe"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":254,"end":307,"specifiers":[{"specifier":"NgbModule"}]}],"exports":[],"declarations":[{"name":"component","isConst":false,"isExported":false,"type":"Text","start":339,"end":359},{"name":"fixture","isConst":false,"isExported":false,"type":"ComponentFixture","start":362,"end":398},{"name":"oldVisibleState","isConst":false,"isExported":false,"start":831,"end":875}],"classes":[],"interfaces":[],"enums":[],"resources":[],"usages":["describe","component","Text","fixture","ComponentFixture","TestUtil","beforeEach","async","TestBed","declarations","EmptyIfNullPipe","imports","NgbModule","it","oldVisibleState","expect"],"packageName":"component"},{"rootPath":"/","start":0,"end":10782,"imports":[{"libraryName":"component","start":0,"end":46,"specifiers":[{"specifier":"BaseComponent"}]},{"libraryName":"@angular/core","start":47,"end":154,"specifiers":[{"specifier":"ChangeDetectorRef"},{"specifier":"ElementRef"},{"specifier":"HostBinding"},{"specifier":"Input"},{"specifier":"SimpleChanges"}]},{"libraryName":"webbpm.event","start":155,"end":199,"specifiers":[{"specifier":"Event"}]},{"libraryName":"decorators","start":200,"end":246,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"common","start":247,"end":293,"specifiers":[{"specifier":"Focusable"}]},{"libraryName":"decorators","start":294,"end":358,"specifiers":[{"specifier":"AdvancedProperty"}]},{"libraryName":"decorators","start":359,"end":405,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"component","start":406,"end":436,"specifiers":[{"specifier":"Style"}]},{"libraryName":"decorators","start":437,"end":497,"specifiers":[{"specifier":"CssClassEditor"}]},{"libraryName":"component","start":498,"end":534,"specifiers":[{"specifier":"IControl"}]}],"exports":[],"declarations":[],"classes":[{"name":"Control","isExported":true,"start":536,"end":10781,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"visible","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":623,"end":678,"decorators":[{"name":"Input","parameters":[]},{"name":"NotNull","parameters":[]}]},{"name":"disabled","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":682,"end":731,"decorators":[{"name":"Input","parameters":[]},{"name":"NotNull","parameters":[]}]},{"name":"tooltip","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":735,"end":769,"decorators":[{"name":"Input","parameters":[]}]},{"name":"style","visibility":2,"type":"Style","isOptional":false,"isStatic":false,"start":773,"end":826,"decorators":[{"name":"Input","parameters":[]},{"name":"AdvancedProperty","parameters":[]}]},{"name":"cssClasses","visibility":2,"type":"string[]","isOptional":false,"isStatic":false,"start":830,"end":916,"decorators":[{"name":"Input","parameters":[]},{"name":"AdvancedProperty","parameters":[]},{"name":"CssClassEditor","parameters":[]}]},{"name":"inheritParent","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":920,"end":990,"decorators":[{"name":"AdvancedProperty","parameters":[]},{"name":"Input","parameters":[]}]},{"name":"hidden","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":994,"end":1062,"decorators":[{"name":"Visible","parameters":["false"]},{"name":"HostBinding","parameters":["hidden"]}]},{"name":"focused","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":1066,"end":1110,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"cssClassesStr","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":1114,"end":1163,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"visibleChangeEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":1167,"end":1252,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"disableChangeEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":1256,"end":1341,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"focusEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":1345,"end":1422,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"visibleByParent","visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"start":1426,"end":1468,"decorators":[]},{"name":"disabledByParent","visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"start":1471,"end":1507,"decorators":[]},{"name":"inheritParentByParent","visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"start":1510,"end":1558,"decorators":[]},{"name":"focusListeners","visibility":0,"type":"Function[]","isOptional":false,"isStatic":false,"start":1562,"end":1602,"decorators":[]},{"name":"blurListeners","visibility":0,"type":"Function[]","isOptional":false,"isStatic":false,"start":1605,"end":1644,"decorators":[]},{"name":"savedDisabledState","visibility":0,"isOptional":false,"isStatic":false,"start":1647,"end":1674,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1757,"end":2076,"decorators":[],"parameters":[],"variables":[{"name":"nativeCssClasses","isConst":false,"isExported":false,"type":"string[]","start":1800,"end":1886}]},{"name":"ngOnChanges","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2080,"end":2601,"decorators":[],"parameters":[{"name":"changes","type":"SimpleChanges","start":2092,"end":2114}],"variables":[{"name":"injectBeanChanged","isConst":false,"isExported":false,"start":2160,"end":2218}]},{"name":"refreshStyles","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2605,"end":3395,"decorators":[],"parameters":[],"variables":[]},{"name":"joinCssClassesAsAttribute","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3399,"end":3581,"decorators":[],"parameters":[],"variables":[]},{"name":"addCssClass","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3585,"end":3807,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"cssClass","type":"string","start":3617,"end":3633}],"variables":[]},{"name":"removeCssClass","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3811,"end":4069,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"cssClass","type":"string","start":3846,"end":3862}],"variables":[]},{"name":"focus","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":4073,"end":4113,"decorators":[],"parameters":[],"variables":[]},{"name":"setInheritParentByParent","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":4117,"end":4238,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":4149,"end":4163}],"variables":[]},{"name":"inheritParentProps","isAbstract":false,"visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":4242,"end":4348,"decorators":[],"parameters":[],"variables":[]},{"name":"setEnabled","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":4352,"end":4516,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"enabled","type":"boolean","start":4383,"end":4399}],"variables":[]},{"name":"isEnabled","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":4520,"end":4664,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"isVisible","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":4668,"end":4806,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"saveDisabledState","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4810,"end":4953,"decorators":[],"parameters":[],"variables":[]},{"name":"getTooltip","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":4957,"end":5028,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getTooltipOrEmpty","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":5032,"end":5135,"decorators":[],"parameters":[],"variables":[]},{"name":"restoreDisableState","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":5139,"end":5313,"decorators":[],"parameters":[],"variables":[]},{"name":"setVisible","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":5317,"end":5600,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"boolean","start":5341,"end":5355}],"variables":[{"name":"oldVisibilityState","isConst":false,"isExported":false,"start":5363,"end":5405}]},{"name":"setTooltip","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":5604,"end":5702,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":5628,"end":5641}],"variables":[]},{"name":"setCssClasses","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":5706,"end":5837,"decorators":[],"parameters":[{"name":"value","type":"string[]","start":5720,"end":5735}],"variables":[]},{"name":"setStyle","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":5841,"end":5947,"decorators":[],"parameters":[{"name":"value","type":"Style","start":5850,"end":5862}],"variables":[]},{"name":"getFocusElement","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":6109,"end":6199,"decorators":[],"parameters":[],"variables":[]},{"name":"setFocused","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":6271,"end":6653,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"boolean","start":6295,"end":6309}],"variables":[{"name":"focusElement","isConst":false,"isExported":false,"start":6317,"end":6359}]},{"name":"isFocused","isAbstract":false,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":6703,"end":6767,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"setVisibleByParent","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":6771,"end":7055,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":6790,"end":6804}],"variables":[{"name":"oldVisibilityState","isConst":false,"isExported":false,"start":6812,"end":6854}]},{"name":"setDisabledByParent","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":7059,"end":7163,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":7079,"end":7093}],"variables":[]},{"name":"getControl","isAbstract":false,"type":"Control","isOptional":false,"isStatic":false,"isAsync":false,"start":7220,"end":7264,"decorators":[],"parameters":[],"variables":[]},{"name":"onFocus","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":7324,"end":7457,"decorators":[],"parameters":[],"variables":[]},{"name":"onBlur","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":7517,"end":7650,"decorators":[],"parameters":[],"variables":[]},{"name":"removeListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":7654,"end":7853,"decorators":[],"parameters":[{"name":"onEventFunction","type":"Function","start":7676,"end":7701},{"name":"listeners","type":"Function[]","start":7703,"end":7724}],"variables":[{"name":"idx","isConst":false,"isExported":false,"type":"number","start":7738,"end":7791}]},{"name":"addListener","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":7857,"end":7968,"decorators":[],"parameters":[{"name":"onEventFunction","type":"Function","start":7876,"end":7901},{"name":"listeners","type":"Function[]","start":7903,"end":7924}],"variables":[]},{"name":"applyListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":7972,"end":8090,"decorators":[],"parameters":[{"name":"listeners","type":"Function[]","start":7993,"end":8014}],"variables":[]},{"name":"addFocusListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8094,"end":8216,"decorators":[],"parameters":[{"name":"onFocusFunction","type":"Function","start":8118,"end":8143}],"variables":[]},{"name":"removeFocusListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8220,"end":8348,"decorators":[],"parameters":[{"name":"onFocusFunction","type":"Function","start":8247,"end":8272}],"variables":[]},{"name":"addBlurListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8352,"end":8470,"decorators":[],"parameters":[{"name":"onBlurFunction","type":"Function","start":8375,"end":8399}],"variables":[]},{"name":"removeBlurListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8474,"end":8598,"decorators":[],"parameters":[{"name":"onBlurFunction","type":"Function","start":8500,"end":8524}],"variables":[]},{"name":"isBooleanValue","isAbstract":false,"visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":8602,"end":8703,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":8627,"end":8641}],"variables":[]},{"name":"cloneStyle","isAbstract":false,"visibility":0,"type":"Style","isOptional":false,"isStatic":false,"isAsync":false,"start":8707,"end":8912,"decorators":[],"parameters":[],"variables":[{"name":"clone","isConst":false,"isExported":false,"start":8741,"end":8765}]},{"name":"setPadding","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8916,"end":9074,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"padding","type":"string","start":8947,"end":8962}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":8976,"end":9009}]},{"name":"setMargin","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":9078,"end":9232,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"margin","type":"string","start":9108,"end":9122}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":9136,"end":9169}]},{"name":"setBorder","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":9236,"end":9390,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"border","type":"string","start":9266,"end":9280}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":9294,"end":9327}]},{"name":"setHeight","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":9394,"end":9548,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"height","type":"string","start":9424,"end":9438}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":9452,"end":9485}]},{"name":"setWidth","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":9552,"end":9702,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"width","type":"string","start":9581,"end":9594}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":9608,"end":9641}]},{"name":"setMinHeight","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":9706,"end":9872,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"minHeight","type":"string","start":9739,"end":9756}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":9770,"end":9803}]},{"name":"setMinWidth","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":9876,"end":10038,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"minWidth","type":"string","start":9908,"end":9924}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":9938,"end":9971}]},{"name":"setMaxHeight","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":10042,"end":10208,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"maxHeight","type":"string","start":10075,"end":10092}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":10106,"end":10139}]},{"name":"setMaxWidth","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":10212,"end":10374,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"maxWidth","type":"string","start":10244,"end":10260}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":10274,"end":10307}]},{"name":"setStretch","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":10378,"end":10537,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"stretch","type":"boolean","start":10409,"end":10425}],"variables":[{"name":"newStyle","isConst":false,"isExported":false,"start":10439,"end":10472}]},{"name":"setInitValue","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":10651,"end":10677,"decorators":[],"parameters":[],"variables":[]},{"name":"hasCssClass","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":10681,"end":10779,"decorators":[],"parameters":[{"name":"cssClass","type":"string","start":10700,"end":10716}],"variables":[]}],"extendsClauses":["BaseComponent"],"implementsClauses":["Focusable","IControl"],"ctor":{"name":"Control","start":1678,"end":1753,"parameters":[{"name":"el","type":"ElementRef","start":1690,"end":1704},{"name":"cd","type":"ChangeDetectorRef","start":1706,"end":1727}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","nativeCssClasses","Array","cssClass","changes","SimpleChanges","injectBeanChanged","Visible","css","value","enabled","oldVisibilityState","Style","focusElement","Control","onEventFunction","Function","listeners","idx","key","onFocusFunction","onBlurFunction","clone","Object","padding","newStyle","margin","border","height","width","minHeight","minWidth","maxHeight","maxWidth","stretch","BaseComponent","Focusable","IControl","Input","NotNull","visible","disabled","tooltip","AdvancedProperty","style","CssClassEditor","cssClasses","inheritParent","HostBinding","hidden","focused","cssClassesStr","visibleChangeEvent","Event","disableChangeEvent","focusEvent","visibleByParent","disabledByParent","inheritParentByParent","focusListeners","blurListeners","savedDisabledState"],"packageName":"component"},{"rootPath":"/","start":0,"end":1198,"imports":[{"libraryName":"component","start":0,"end":34,"specifiers":[{"specifier":"Control"}]},{"libraryName":"component","start":35,"end":77,"specifiers":[{"specifier":"Collectible"}]}],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"ControlWithValue","isExported":true,"start":150,"end":1197,"accessors":[],"properties":[],"methods":[{"name":"getValue","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":209,"end":225,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectId","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":254,"end":276,"decorators":[],"parameters":[],"variables":[]},{"name":"getTextValue","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":383,"end":406,"decorators":[],"parameters":[],"variables":[]},{"name":"getValueForForm","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":410,"end":433,"decorators":[],"parameters":[],"variables":[]},{"name":"getPresentationValue","isAbstract":true,"visibility":2,"type":"string | number | boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":583,"end":633,"decorators":[],"parameters":[],"variables":[]},{"name":"setValue","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":637,"end":658,"decorators":[],"parameters":[{"name":"value","type":"any","start":646,"end":656}],"variables":[]},{"name":"clearValue","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":734,"end":747,"decorators":[],"parameters":[],"variables":[]},{"name":"resetValue","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":824,"end":843,"decorators":[],"parameters":[],"variables":[]},{"name":"isCollectible","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":847,"end":872,"decorators":[],"parameters":[],"variables":[]},{"name":"onChange","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":876,"end":893,"decorators":[],"parameters":[],"variables":[]},{"name":"addChangeListener","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":897,"end":949,"decorators":[],"parameters":[{"name":"onChangeFunction","type":"Function","start":915,"end":941}],"variables":[]},{"name":"removeChangeListener","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":953,"end":1008,"decorators":[],"parameters":[{"name":"onChangeFunction","type":"Function","start":974,"end":1000}],"variables":[]},{"name":"getControl","isAbstract":true,"visibility":2,"type":"Control","isOptional":false,"isStatic":false,"isAsync":false,"start":1012,"end":1034,"decorators":[],"parameters":[],"variables":[]},{"name":"isPristine","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":1078,"end":1100,"decorators":[],"parameters":[],"variables":[]},{"name":"getValueAsModel","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":1119,"end":1142,"decorators":[],"parameters":[],"variables":[]},{"name":"setInitValue","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1146,"end":1167,"decorators":[],"parameters":[],"variables":[]},{"name":"isValueEmpty","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":1171,"end":1195,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Collectible"],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["author","Collectible","getValue","getObjectId","getTextValue","getValueForForm","getPresentationValue","setValue","value","clearValue","resetValue","isCollectible","onChange","addChangeListener","onChangeFunction","Function","removeChangeListener","getControl","Control","isPristine","getValueAsModel","setInitValue","isValueEmpty"],"packageName":"component"},{"rootPath":"/","start":29,"end":116,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"CustomLoadingComponent","isExported":true,"start":29,"end":115,"accessors":[],"properties":[],"methods":[{"name":"setKeyValue","isAbstract":true,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":74,"end":113,"decorators":[],"parameters":[{"name":"value","type":"any","start":86,"end":96}],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["author","setKeyValue","value","Promise"],"packageName":"component"},{"rootPath":"/","start":0,"end":1023,"imports":[{"libraryName":"component","start":0,"end":36,"specifiers":[{"specifier":"Behavior"}]},{"libraryName":"component.field","start":37,"end":83,"specifiers":[{"specifier":"SelectBase"}]},{"libraryName":"component","start":84,"end":112,"specifiers":[{"specifier":"Grid"}]},{"libraryName":"decorators","start":113,"end":159,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"decorators","start":160,"end":210,"specifiers":[{"specifier":"ObjectRef"}]},{"libraryName":"util","start":211,"end":257,"specifiers":[{"specifier":"FilterUtil"}]}],"exports":[],"declarations":[],"classes":[{"name":"DependentOnFieldGrid","isExported":true,"start":259,"end":1022,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"dependsOn","visibility":2,"type":"SelectBase","isOptional":false,"isStatic":false,"start":315,"end":372,"decorators":[{"name":"ObjectRef","parameters":[]},{"name":"NotNull","parameters":[]}]},{"name":"grid","visibility":0,"type":"Grid","isOptional":false,"isStatic":false,"start":376,"end":395,"decorators":[]},{"name":"onSelectFunction","visibility":0,"type":"Function","isOptional":false,"isStatic":false,"start":398,"end":433,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":437,"end":778,"decorators":[],"parameters":[],"variables":[{"name":"filter","isConst":false,"isExported":false,"start":655,"end":734}]},{"name":"bindEvents","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":782,"end":898,"decorators":[],"parameters":[],"variables":[]},{"name":"unbindEvents","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":902,"end":1020,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Behavior"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["Grid","selectedValueId","filter","FilterUtil","Behavior","ObjectRef","NotNull","dependsOn","SelectBase","grid","onSelectFunction","Function"],"packageName":"component"},{"rootPath":"/","start":0,"end":4994,"imports":[{"libraryName":"bootstrap","start":0,"end":19},{"libraryName":"@angular/core","start":20,"end":135,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"component.container","start":136,"end":184,"specifiers":[{"specifier":"Container"}]},{"libraryName":"decorators","start":185,"end":231,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"decorators","start":232,"end":278,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"webbpm.event","start":279,"end":323,"specifiers":[{"specifier":"Event"}]},{"libraryName":"component.container","start":324,"end":394,"specifiers":[{"specifier":"ValidatableContainer"}]},{"libraryName":"component","start":395,"end":429,"specifiers":[{"specifier":"IWindow"}]}],"exports":[],"declarations":[],"classes":[{"name":"Dialog","isExported":true,"start":431,"end":4993,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'webbpm-dialog',\n templateUrl: './../../../src/resources/template/component/Dialog.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n }"]}],"properties":[{"name":"title","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":706,"end":738,"decorators":[{"name":"Input","parameters":[]}]},{"name":"closable","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":742,"end":791,"decorators":[{"name":"Input","parameters":[]},{"name":"NotNull","parameters":[]}]},{"name":"visible","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":795,"end":850,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"showDialogEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":888,"end":964,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"hideDialogEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":968,"end":1044,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"resetValidationStatus","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":1048,"end":1107,"decorators":[{"name":"Visible","parameters":[]}]},{"name":"showListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":1111,"end":1152,"decorators":[]},{"name":"hideListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":1155,"end":1196,"decorators":[]},{"name":"isDestroyed","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":1248,"end":1285,"decorators":[]},{"name":"_actionInProgress","visibility":0,"isOptional":false,"isStatic":false,"start":1289,"end":1323,"decorators":[]},{"name":"_nextActionQueue","visibility":0,"isOptional":false,"isStatic":false,"start":1326,"end":1356,"decorators":[]}],"methods":[{"name":"refreshStyles","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1439,"end":1523,"decorators":[],"parameters":[],"variables":[]},{"name":"show","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1527,"end":1781,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"isDlgShown","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":1785,"end":1877,"decorators":[],"parameters":[],"variables":[]},{"name":"hide","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1881,"end":2358,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[{"name":"shown","isConst":false,"isExported":false,"start":1920,"end":1950}]},{"name":"safeModal","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2362,"end":3819,"decorators":[],"parameters":[{"name":"action","start":2380,"end":2386}],"variables":[{"name":"modal","isConst":true,"isExported":false,"start":2400,"end":2451},{"name":"futureAction","isConst":true,"isExported":false,"start":2594,"end":2640},{"name":"postEventName","isConst":true,"isExported":false,"start":3085,"end":3137},{"name":"clearInProgress","isConst":false,"isExported":false,"start":3178,"end":3744},{"name":"futureAction","isConst":true,"isExported":false,"start":3417,"end":3463},{"name":"next","isConst":true,"isExported":false,"start":3624,"end":3667}]},{"name":"getPostEventName","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":3824,"end":3969,"decorators":[],"parameters":[{"name":"action","type":"string","start":3848,"end":3862}],"variables":[{"name":"prefix","isConst":true,"isExported":false,"start":3878,"end":3932}]},{"name":"addShowListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3973,"end":4091,"decorators":[],"parameters":[{"name":"onShowFunction","type":"Function","start":3996,"end":4020}],"variables":[]},{"name":"removeShowListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4095,"end":4219,"decorators":[],"parameters":[{"name":"onShowFunction","type":"Function","start":4121,"end":4145}],"variables":[]},{"name":"addHideListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4223,"end":4341,"decorators":[],"parameters":[{"name":"onHideFunction","type":"Function","start":4246,"end":4270}],"variables":[]},{"name":"removeHideListener","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4345,"end":4469,"decorators":[],"parameters":[{"name":"onHideFunction","type":"Function","start":4371,"end":4395}],"variables":[]},{"name":"setVisible","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":4473,"end":4584,"decorators":[],"parameters":[{"name":"visible","type":"boolean","start":4484,"end":4500}],"variables":[]},{"name":"setTitle","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":4588,"end":4682,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":4610,"end":4623}],"variables":[]},{"name":"setClosable","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":4686,"end":4774,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":4698,"end":4712}],"variables":[]},{"name":"reset","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4778,"end":4833,"decorators":[],"parameters":[],"variables":[]},{"name":"ngOnDestroy","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4837,"end":4991,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Container"],"implementsClauses":["IWindow"],"ctor":{"name":"Dialog","start":1360,"end":1435,"parameters":[{"name":"el","type":"ElementRef","start":1372,"end":1386},{"name":"cd","type":"ChangeDetectorRef","start":1388,"end":1409}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Visible","$","shown","ValidatableContainer","component","action","modal","i","futureAction","postEventName","clearInProgress","next","prefix","onShowFunction","Function","onHideFunction","visible","value","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Container","IWindow","Input","title","NotNull","closable","showDialogEvent","Event","hideDialogEvent","resetValidationStatus","showListeners","hideListeners","isDestroyed","_actionInProgress","_nextActionQueue"],"packageName":"component"},{"rootPath":"/","start":0,"end":10332,"imports":[{"libraryName":"common","start":0,"end":48,"specifiers":[{"specifier":"Filterable"}]},{"libraryName":"component","start":49,"end":85,"specifiers":[{"specifier":"BaseGrid"}]},{"libraryName":"generated.model","start":86,"end":135,"specifiers":[{"specifier":"Filter"}]},{"libraryName":"component","start":136,"end":194,"specifiers":[{"specifier":"SelectableComponent"}]},{"libraryName":"component.grid","start":195,"end":258,"specifiers":[{"specifier":"EmptyDataDatasource"}]},{"libraryName":"component.filter","start":259,"end":318,"specifiers":[{"specifier":"ClientFilterGrid"}]},{"libraryName":"component.filter","start":319,"end":378,"specifiers":[{"specifier":"BaseClientFilter"}]},{"libraryName":"component.grid","start":379,"end":448,"specifiers":[{"specifier":"GridFilterableOnClient"}]},{"libraryName":"decorators","start":449,"end":499,"specifiers":[{"specifier":"ObjectRef"}]},{"libraryName":"util","start":500,"end":546,"specifiers":[{"specifier":"FilterUtil"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.bean.filter","start":547,"end":654,"specifiers":[{"specifier":"FilterOperation"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.bean.entity_graph.condition","start":655,"end":764,"specifiers":[{"specifier":"Operator"}]},{"libraryName":"generated.model","start":765,"end":824,"specifiers":[{"specifier":"FilterModel"}]},{"libraryName":"decorators","start":825,"end":871,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"generated.model.grid","start":872,"end":930,"specifiers":[{"specifier":"SortInfo"}]},{"libraryName":"generated.model","start":931,"end":986,"specifiers":[{"specifier":"FileModel"}]},{"libraryName":"util","start":987,"end":1031,"specifiers":[{"specifier":"FileUtils"}]},{"libraryName":"generated.model.grid","start":1032,"end":1114,"specifiers":[{"specifier":"GridDataExportFormat"}]},{"libraryName":"generated.rpc","start":1115,"end":1178,"specifiers":[{"specifier":"GridRpcService"}]},{"libraryName":"moment-timezone","start":1179,"end":1216,"specifiers":[],"defaultAlias":"moment"},{"libraryName":"@angular/core","start":1217,"end":1277,"specifiers":[{"specifier":"ChangeDetectorRef"},{"specifier":"ElementRef"}]}],"exports":[],"declarations":[],"classes":[{"name":"DynamicDataGrid","isExported":true,"start":1279,"end":10331,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"parentControl","visibility":2,"type":"SelectableComponent","isOptional":false,"isStatic":false,"start":1401,"end":1458,"decorators":[{"name":"ObjectRef","parameters":[]}]},{"name":"filterMap","visibility":1,"type":"{ [key: string]: Filter }","isOptional":false,"isStatic":false,"start":1462,"end":1514,"decorators":[]},{"name":"loadOnInit","visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"start":1517,"end":1547,"decorators":[]},{"name":"reloadNeeded","visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"start":1550,"end":1590,"decorators":[]},{"name":"started","visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"start":1593,"end":1628,"decorators":[]},{"name":"loadEnabled","visibility":1,"type":"boolean","isOptional":false,"isStatic":false,"start":1631,"end":1669,"decorators":[]},{"name":"onSelectFunction","visibility":1,"type":"Function","isOptional":false,"isStatic":false,"start":1672,"end":1709,"decorators":[]},{"name":"$","visibility":1,"type":"GridRpcService","isOptional":false,"isStatic":false,"start":1712,"end":1740,"decorators":[]}],"methods":[{"name":"initGrid","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1823,"end":2095,"decorators":[],"parameters":[],"variables":[]},{"name":"initialize","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":2099,"end":2215,"decorators":[],"parameters":[],"variables":[]},{"name":"start","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2219,"end":2379,"decorators":[],"parameters":[],"variables":[]},{"name":"reset","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2383,"end":2475,"decorators":[],"parameters":[],"variables":[]},{"name":"bindEvents","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2479,"end":2641,"decorators":[],"parameters":[],"variables":[]},{"name":"unbindEvents","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2645,"end":2814,"decorators":[],"parameters":[],"variables":[]},{"name":"refresh","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2818,"end":2968,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"refreshData","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2972,"end":3008,"decorators":[],"parameters":[],"variables":[]},{"name":"reload","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3013,"end":3873,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":3027,"end":3049}],"variables":[{"name":"filter","isConst":false,"isExported":false,"start":3531,"end":3749}]},{"name":"searchClientFilter","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":3877,"end":4447,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":3904,"end":3926}],"variables":[{"name":"model","isConst":false,"isExported":false,"start":3934,"end":3949},{"name":"clientFilterGrid","isConst":false,"isExported":false,"type":"ClientFilterGrid","start":3988,"end":4102}]},{"name":"saveFiltersToMap","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4451,"end":4571,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":4476,"end":4493}],"variables":[]},{"name":"addFilter","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4575,"end":4663,"decorators":[],"parameters":[{"name":"filter","type":"Filter","start":4585,"end":4599}],"variables":[]},{"name":"removeFilter","isAbstract":false,"type":"Filter","isOptional":false,"isStatic":false,"isAsync":false,"start":4667,"end":4792,"decorators":[],"parameters":[{"name":"guid","type":"string","start":4680,"end":4692}],"variables":[{"name":"ret","isConst":false,"isExported":false,"start":4708,"end":4739}]},{"name":"getFilters","isAbstract":false,"type":"Filter[]","isOptional":false,"isStatic":false,"isAsync":false,"start":4796,"end":4995,"decorators":[],"parameters":[],"variables":[{"name":"fieldComponentFilters","isConst":false,"isExported":false,"start":4825,"end":4883},{"name":"columnFilters","isConst":false,"isExported":false,"start":4888,"end":4931}]},{"name":"getColumnFilters","isAbstract":false,"visibility":0,"type":"Filter[]","isOptional":false,"isStatic":false,"isAsync":false,"start":4999,"end":6136,"decorators":[],"parameters":[],"variables":[{"name":"filterModel","isConst":false,"isExported":false,"start":5042,"end":5090},{"name":"columnFilters","isConst":false,"isExported":false,"start":5199,"end":5222},{"name":"colDef","isConst":false,"isExported":false,"start":5295,"end":5342},{"name":"columnUid","isConst":false,"isExported":false,"start":5372,"end":5408},{"name":"filter","isConst":false,"isExported":false,"start":5417,"end":5443},{"name":"agFilterElement1","isConst":false,"isExported":false,"type":"any","start":5730,"end":5781},{"name":"agFilterElement2","isConst":false,"isExported":false,"type":"any","start":5792,"end":5843}]},{"name":"createFilter","isAbstract":false,"visibility":0,"type":"Filter","isOptional":false,"isStatic":false,"isAsync":false,"start":6140,"end":6412,"decorators":[],"parameters":[{"name":"operator","type":"Operator","start":6161,"end":6179},{"name":"componentGuid","type":"string","start":6181,"end":6202},{"name":"filterModels","type":"FilterModel[]","start":6204,"end":6231}],"variables":[{"name":"filter","isConst":true,"isExported":false,"start":6247,"end":6275}]},{"name":"addFilterCondition","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":6416,"end":8777,"decorators":[],"parameters":[{"name":"filter","type":"Filter","start":6443,"end":6457},{"name":"agFilter","type":"any","start":6459,"end":6472}],"variables":[{"name":"filterModel","isConst":false,"isExported":false,"start":6527,"end":6563},{"name":"filterToModel","isConst":false,"isExported":false,"start":6755,"end":6793},{"name":"filterFromModel","isConst":false,"isExported":false,"start":7258,"end":7298},{"name":"dateFrom","isConst":false,"isExported":false,"start":7305,"end":7348},{"name":"filterToModel","isConst":false,"isExported":false,"start":7478,"end":7516},{"name":"dateTo","isConst":false,"isExported":false,"start":7548,"end":7593},{"name":"filterModel","isConst":false,"isExported":false,"start":7920,"end":7956}]},{"name":"disableInitialLoading","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8781,"end":8882,"decorators":[],"parameters":[],"variables":[]},{"name":"loadingEnabled","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":8886,"end":8986,"decorators":[],"parameters":[],"variables":[]},{"name":"setLoadEnabled","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":8990,"end":9069,"decorators":[],"parameters":[{"name":"value","type":"boolean","start":9012,"end":9026}],"variables":[]},{"name":"isDependentGrid","isAbstract":false,"visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":9073,"end":9152,"decorators":[],"parameters":[],"variables":[]},{"name":"clear","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":9156,"end":9520,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"exportAsXls","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":9524,"end":9599,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"exportAsXlsx","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":9603,"end":9680,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"exportAsCsv","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":9684,"end":9759,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"export","isAbstract":false,"visibility":0,"isOptional":false,"isStatic":false,"isAsync":false,"start":9815,"end":10208,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"format","type":"GridDataExportFormat","start":9843,"end":9871}],"variables":[{"name":"filters","isConst":false,"isExported":false,"type":"Filter[]","start":9879,"end":9921},{"name":"sortInfo","isConst":false,"isExported":false,"type":"SortInfo[]","start":9926,"end":9972},{"name":"columnIdsToExport","isConst":false,"isExported":false,"type":"string[]","start":9977,"end":10039}]},{"name":"clearColumnFilters","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":10212,"end":10329,"decorators":[{"name":"Visible","parameters":["true"]}],"parameters":[],"variables":[]}],"extendsClauses":["BaseGrid"],"implementsClauses":["Filterable"],"ctor":{"name":"DynamicDataGrid","start":1744,"end":1819,"parameters":[{"name":"el","type":"ElementRef","start":1756,"end":1770},{"name":"cd","type":"ChangeDetectorRef","start":1772,"end":1793}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Promise","GridRpcService","Visible","filters","Filter","GridFilterableOnClient","filter","BaseClientFilter","FilterUtil","FilterOperation","model","clientFilterGrid","ClientFilterGrid","filterModel","type","guid","ret","fieldComponentFilters","Object","columnFilters","column","agFilter","colDef","columnUid","Operator","agFilterElement1","agFilterElement2","operator","componentGuid","filterModels","FilterModel","Date","filterToModel","filterFromModel","dateFrom","dateTo","moment","value","EmptyDataDatasource","GridDataExportFormat","format","sortInfo","SortInfo","columnIdsToExport","file","FileModel","FileUtils","BaseGrid","Filterable","ObjectRef","parentControl","SelectableComponent","filterMap","key","loadOnInit","reloadNeeded","started","loadEnabled","onSelectFunction","Function","$"],"packageName":"component"},{"rootPath":"/","start":0,"end":711,"imports":[{"libraryName":"@angular/core","start":0,"end":96,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"}]},{"libraryName":"component","start":97,"end":143,"specifiers":[{"specifier":"BaseComponent"}]},{"libraryName":"decorators","start":144,"end":196,"specifiers":[{"specifier":"Deprecated"}]}],"exports":[],"declarations":[],"classes":[{"name":"EmptyComponent","isExported":true,"start":404,"end":710,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Deprecated","parameters":[]},{"name":"Component","parameters":["{\n selector: 'empty',\n templateUrl: './../../../src/resources/template/component/Empty.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[],"methods":[],"extendsClauses":["BaseComponent"],"implementsClauses":[],"ctor":{"name":"EmptyComponent","start":633,"end":708,"parameters":[{"name":"el","type":"ElementRef","start":645,"end":659},{"name":"cd","type":"ChangeDetectorRef","start":661,"end":682}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Deprecated","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","BaseComponent"],"packageName":"component"},{"rootPath":"/","start":0,"end":453,"imports":[{"libraryName":"component","start":0,"end":34,"specifiers":[{"specifier":"Control"}]}],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"FormValue","isExported":true,"start":65,"end":452,"accessors":[],"properties":[],"methods":[{"name":"getValue","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":97,"end":113,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectId","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":117,"end":139,"decorators":[],"parameters":[],"variables":[]},{"name":"getValueForForm","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":143,"end":166,"decorators":[],"parameters":[],"variables":[]},{"name":"setValue","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":170,"end":191,"decorators":[],"parameters":[{"name":"value","type":"any","start":179,"end":189}],"variables":[]},{"name":"isCollectible","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":242,"end":267,"decorators":[],"parameters":[],"variables":[]},{"name":"onChange","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":270,"end":287,"decorators":[],"parameters":[],"variables":[]},{"name":"addChangeListener","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":290,"end":342,"decorators":[],"parameters":[{"name":"onChangeFunction","type":"Function","start":308,"end":334}],"variables":[]},{"name":"removeChangeListener","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":345,"end":400,"decorators":[],"parameters":[{"name":"onChangeFunction","type":"Function","start":366,"end":392}],"variables":[]},{"name":"getControl","isAbstract":true,"visibility":2,"type":"Control","isOptional":false,"isStatic":false,"isAsync":false,"start":404,"end":426,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["author","getValue","getObjectId","getValueForForm","setValue","value","isCollectible","onChange","addChangeListener","onChangeFunction","Function","removeChangeListener","getControl","Control"],"packageName":"component"},{"rootPath":"/","start":0,"end":15429,"imports":[{"libraryName":"@angular/core/testing","start":0,"end":95,"specifiers":[{"specifier":"async"},{"specifier":"ComponentFixture"},{"specifier":"fakeAsync"},{"specifier":"flush"},{"specifier":"TestBed"},{"specifier":"tick"}]},{"libraryName":"@angular/core","start":96,"end":135,"specifiers":[{"specifier":"Injector"}]},{"libraryName":"component","start":136,"end":164,"specifiers":[{"specifier":"Grid"}]},{"libraryName":"ag-grid-angular","start":165,"end":210,"specifiers":[{"specifier":"AgGridModule"}]},{"libraryName":"component.grid","start":211,"end":284,"specifiers":[{"specifier":"GridInfiniteScrollLoader"}]},{"libraryName":"generated.property.grid","start":285,"end":350,"specifiers":[{"specifier":"GridColumn"}]},{"libraryName":"pipe","start":351,"end":410,"specifiers":[{"specifier":"EmptyIfNullPipe"}]},{"libraryName":"modules.bpmn.provider","start":411,"end":490,"specifiers":[{"specifier":"TaskParamsProvider"}]},{"libraryName":"...testing","start":491,"end":539,"specifiers":[{"specifier":"TestUtil"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":540,"end":593,"specifiers":[{"specifier":"NgbModule"}]},{"libraryName":"modules.core.component","start":594,"end":694,"specifiers":[{"specifier":"ProgressIndicationComponent"}]},{"libraryName":"generated.model.grid","start":695,"end":753,"specifiers":[{"specifier":"GridRows"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.bean.filter","start":754,"end":857,"specifiers":[{"specifier":"FilterOperation"}]},{"libraryName":"component","start":858,"end":888,"specifiers":[{"specifier":"Style"}]},{"libraryName":"modules.core.service","start":889,"end":983,"specifiers":[{"specifier":"ProgressIndicationService"}]},{"libraryName":"generated.property.grid","start":984,"end":1051,"specifiers":[{"specifier":"GridColumns"}]},{"libraryName":"generated.rpc","start":1052,"end":1115,"specifiers":[{"specifier":"GridRpcService"}]},{"libraryName":"...testing","start":1116,"end":1174,"specifiers":[{"specifier":"ConstantsUtil"}]},{"libraryName":"component.grid.enums","start":1175,"end":1250,"specifiers":[{"specifier":"GridLoadingOverlayType"}]},{"libraryName":"modules.core.service","start":1295,"end":1377,"specifiers":[{"specifier":"LocalStorageService"}]},{"libraryName":"modules.core.storage","start":1378,"end":1446,"specifiers":[{"specifier":"WebbpmStorage"}]},{"libraryName":"component.grid.utils","start":1447,"end":1518,"specifiers":[{"specifier":"GridColumnStateUtils"}]},{"libraryName":"util","start":1519,"end":1565,"specifiers":[{"specifier":"FilterUtil"}]}],"exports":[],"declarations":[{"name":"ENTITY","isConst":true,"isExported":false,"start":1603,"end":1627},{"name":"NAME","isConst":true,"isExported":false,"start":1630,"end":1652},{"name":"NAME_DATE","isConst":true,"isExported":false,"start":1655,"end":1688},{"name":"NAME_TIME","isConst":true,"isExported":false,"start":1691,"end":1724},{"name":"COL_ID","isConst":true,"isExported":false,"start":1727,"end":1762},{"name":"COL_DATE_ID","isConst":true,"isExported":false,"start":1765,"end":1810},{"name":"COL_TIME_ID","isConst":true,"isExported":false,"start":1813,"end":1858},{"name":"COL_SELECTOR","isConst":true,"isExported":false,"start":1861,"end":1905},{"name":"DEFAULT_COLUMN_WIDTH","isConst":true,"isExported":false,"start":1908,"end":1940},{"name":"COLUMN_WIDTH","isConst":true,"isExported":false,"start":1943,"end":1968},{"name":"COLUMN_HEIGHT","isConst":true,"isExported":false,"start":1971,"end":1996},{"name":"STYLE_COLUMN_WIDTH","isConst":true,"isExported":false,"start":1999,"end":2053},{"name":"STYLE_COLUMN_HEIGHT","isConst":true,"isExported":false,"start":2056,"end":2113},{"name":"VALUE_1","isConst":true,"isExported":false,"start":2116,"end":2157},{"name":"VALUE_2","isConst":true,"isExported":false,"start":2160,"end":2185},{"name":"DATE_ISO","isConst":true,"isExported":false,"start":2188,"end":2228},{"name":"DATE","isConst":true,"isExported":false,"start":2231,"end":2257},{"name":"TIME","isConst":true,"isExported":false,"start":2260,"end":2296},{"name":"COLUMN_NAME","isConst":true,"isExported":false,"start":2299,"end":2329},{"name":"FILTERS","isConst":true,"isExported":false,"start":2332,"end":2420},{"name":"CTRL_CLICK","isConst":true,"isExported":false,"start":2423,"end":2528},{"name":"component","isConst":false,"isExported":false,"type":"Grid","start":2532,"end":2552},{"name":"fixture","isConst":false,"isExported":false,"type":"ComponentFixture","start":2555,"end":2591},{"name":"gridColumns","isConst":false,"isExported":false,"type":"GridColumns","start":2594,"end":2623},{"name":"gridRpcService","isConst":false,"isExported":false,"type":"jasmine.SpyObj","start":2626,"end":2677},{"name":"gridInfiniteScrollLoader","isConst":false,"isExported":false,"type":"GridInfiniteScrollLoader","start":2680,"end":2735},{"name":"progressIndicationSpy","isConst":false,"isExported":false,"type":"ProgressIndicationService","start":2738,"end":2791},{"name":"gridRows","isConst":false,"isExported":false,"type":"GridRows","start":2794,"end":2817},{"name":"gridColumn","isConst":false,"isExported":false,"type":"GridColumn","start":2820,"end":2847},{"name":"localStorageServiceSpy","isConst":false,"isExported":false,"type":"jasmine.SpyObj","start":2850,"end":2914},{"name":"el","isConst":false,"isExported":false,"type":"HTMLElement","start":2917,"end":2937},{"name":"gridApi","isConst":false,"isExported":false,"start":2940,"end":2952},{"name":"dateGridColumn","isConst":false,"isExported":false,"start":4592,"end":4674},{"name":"timeGridColumn","isConst":false,"isExported":false,"start":4679,"end":4761},{"name":"createGridColumn","isExported":false,"isAsync":false,"type":"GridColumn","start":5641,"end":6127,"parameters":[{"name":"columnName","type":"string","start":5667,"end":5685},{"name":"entity","type":"string","start":5687,"end":5701},{"name":"name","type":"string","start":5703,"end":5715},{"name":"type","type":"string","start":5717,"end":5729}],"variables":[{"name":"gridColumn","isConst":false,"isExported":false,"type":"GridColumn","start":5749,"end":5795}]},{"name":"getColumnDef","isExported":false,"isAsync":false,"start":6131,"end":6221,"parameters":[{"name":"fieldName","type":"string","start":6153,"end":6170}],"variables":[]},{"name":"triggerInitGrid","isExported":false,"isAsync":false,"start":6225,"end":6381,"parameters":[],"variables":[]},{"name":"rows","isConst":true,"isExported":false,"start":6534,"end":6609},{"name":"count","isConst":false,"isExported":false,"start":6857,"end":6871},{"name":"count","isConst":false,"isExported":false,"start":7180,"end":7194},{"name":"containerWidth","isConst":true,"isExported":false,"start":7983,"end":8077},{"name":"columnWidth","isConst":true,"isExported":false,"start":8082,"end":8158},{"name":"leftRange","isConst":false,"isExported":false,"start":8163,"end":8235},{"name":"rightRange","isConst":false,"isExported":false,"start":8240,"end":8312},{"name":"columnWidth","isConst":true,"isExported":false,"start":8466,"end":8542},{"name":"columnWidth","isConst":true,"isExported":false,"start":9310,"end":9386},{"name":"rows","isConst":true,"isExported":false,"start":10106,"end":10176},{"name":"rows","isConst":true,"isExported":false,"start":10363,"end":10433},{"name":"rowNumbers","isConst":true,"isExported":false,"start":10677,"end":10745},{"name":"rowNumbers","isConst":true,"isExported":false,"start":11074,"end":11142},{"name":"cell","isConst":true,"isExported":false,"start":11260,"end":11302},{"name":"tooltip","isConst":true,"isExported":false,"start":11402,"end":11453},{"name":"tooltip","isConst":true,"isExported":false,"start":11877,"end":11928},{"name":"checkBoxes","isConst":false,"isExported":false,"start":12265,"end":12354},{"name":"grid","isConst":true,"isExported":false,"start":13404,"end":13443},{"name":"style","isConst":false,"isExported":false,"start":13743,"end":13767},{"name":"grid","isConst":true,"isExported":false,"type":"HTMLElement","start":14088,"end":14150},{"name":"getCellValue","isExported":false,"isAsync":false,"type":"string","start":14596,"end":14735,"parameters":[{"name":"colId","type":"string","start":14618,"end":14631}],"variables":[]},{"name":"dateValue","isConst":true,"isExported":false,"start":14789,"end":14833},{"name":"dateValue","isConst":true,"isExported":false,"start":15132,"end":15181},{"name":"formattedDateTime","isConst":true,"isExported":false,"start":15186,"end":15230},{"name":"timeValue","isConst":true,"isExported":false,"start":15337,"end":15381}],"classes":[],"interfaces":[],"enums":[],"resources":[],"usages":["jasmine","createSpyObj","describe","ENTITY","NAME","NAME_DATE","NAME_TIME","COL_ID","COL_DATE_ID","COL_TIME_ID","COL_SELECTOR","DEFAULT_COLUMN_WIDTH","COLUMN_WIDTH","COLUMN_HEIGHT","STYLE_COLUMN_WIDTH","STYLE_COLUMN_HEIGHT","VALUE_1","VALUE_2","DATE_ISO","DATE","TIME","COLUMN_NAME","FILTERS","FilterUtil","FilterOperation","CTRL_CLICK","MouseEvent","view","window","bubbles","ctrlKey","component","Grid","fixture","ComponentFixture","gridColumns","GridColumns","gridRpcService","SpyObj","GridRpcService","gridInfiniteScrollLoader","GridInfiniteScrollLoader","progressIndicationSpy","ProgressIndicationService","gridRows","GridRows","gridColumn","GridColumn","localStorageServiceSpy","LocalStorageService","el","HTMLElement","gridApi","TestUtil","beforeEach","async","TestBed","declarations","EmptyIfNullPipe","ProgressIndicationComponent","providers","Injector","provide","useValue","TaskParamsProvider","imports","AgGridModule","NgbModule","GridLoadingOverlayType","fetchSize","createGridColumn","dateGridColumn","timeGridColumn","row_uid","entity$column","entity$column_date","entity$column_time","Promise","WebbpmStorage","GridColumnStateUtils","spyOn","columnName","entity","name","type","schema","table","fieldName","it","expect","rows","fakeAsync","count","tick","flush","containerWidth","columnWidth","leftRange","Math","rightRange","getColumnDef","triggerInitGrid","row","rowNumbers","i","cell","tooltip","document","Event","checkBoxes","checkBox","xit","grid","ConstantsUtil","style","Style","colId","dateValue","getCellValue","formattedDateTime","timeValue"],"packageName":"component"},{"rootPath":"/","start":0,"end":852,"imports":[{"libraryName":"@angular/core","start":0,"end":96,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"}]},{"libraryName":"component.grid","start":97,"end":150,"specifiers":[{"specifier":"GridDataLoader"}]},{"libraryName":"component","start":151,"end":201,"specifiers":[{"specifier":"DynamicDataGrid"}]},{"libraryName":"decorators","start":202,"end":248,"specifiers":[{"specifier":"Visible"}]}],"exports":[],"declarations":[],"classes":[{"name":"Grid","isExported":true,"start":250,"end":851,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'grid',\n templateUrl: './../../../src/resources/template/component/Grid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"gridDataLoader","visibility":0,"type":"GridDataLoader","isOptional":false,"isStatic":false,"start":455,"end":494,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":577,"end":716,"decorators":[],"parameters":[],"variables":[]},{"name":"refreshData","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":720,"end":784,"decorators":[],"parameters":[],"variables":[]},{"name":"getRowModelType","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":788,"end":849,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["DynamicDataGrid"],"implementsClauses":[],"ctor":{"name":"Grid","start":498,"end":573,"parameters":[{"name":"el","type":"ElementRef","start":510,"end":524},{"name":"cd","type":"ChangeDetectorRef","start":526,"end":547}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Promise","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","DynamicDataGrid","gridDataLoader","GridDataLoader"],"packageName":"component"},{"rootPath":"/","start":0,"end":1776,"imports":[{"libraryName":"@angular/core","start":0,"end":115,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"decorators","start":116,"end":162,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"component","start":163,"end":197,"specifiers":[{"specifier":"Control"}]},{"libraryName":"decorators","start":198,"end":244,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"common","start":245,"end":295,"specifiers":[{"specifier":"ObjectValue"}]},{"libraryName":"modules.core.service","start":296,"end":373,"specifiers":[{"specifier":"NavigationService"}]}],"exports":[],"declarations":[],"classes":[{"name":"HyperLink","isExported":true,"start":375,"end":1775,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'hyper-link',\n templateUrl: './../../../src/resources/template/component/HyperLink.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n }"]}],"properties":[{"name":"url","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":632,"end":688,"decorators":[{"name":"NotNull","parameters":[]},{"name":"Visible","parameters":[]},{"name":"Input","parameters":[]}]},{"name":"text","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":692,"end":749,"decorators":[{"name":"NotNull","parameters":[]},{"name":"Visible","parameters":[]},{"name":"Input","parameters":[]}]},{"name":"isAbsolute","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":753,"end":806,"decorators":[{"name":"NotNull","parameters":[]},{"name":"Visible","parameters":[]}]},{"name":"openInNewTab","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":810,"end":865,"decorators":[{"name":"NotNull","parameters":[]},{"name":"Visible","parameters":[]}]},{"name":"parameterProviders","visibility":2,"type":"ObjectValue[]","isOptional":false,"isStatic":false,"start":869,"end":923,"decorators":[{"name":"Visible","parameters":[]}]},{"name":"navigationService","visibility":0,"type":"NavigationService","isOptional":false,"isStatic":false,"start":926,"end":971,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1054,"end":1163,"decorators":[],"parameters":[],"variables":[]},{"name":"setUrl","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1167,"end":1238,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"url","type":"string","start":1194,"end":1205}],"variables":[]},{"name":"onLinkClick","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1242,"end":1773,"decorators":[],"parameters":[],"variables":[{"name":"url","isConst":false,"isExported":false,"start":1321,"end":1340},{"name":"value","isConst":false,"isExported":false,"start":1449,"end":1478}]}],"extendsClauses":["Control"],"implementsClauses":[],"ctor":{"name":"HyperLink","start":975,"end":1050,"parameters":[{"name":"el","type":"ElementRef","start":987,"end":1001},{"name":"cd","type":"ChangeDetectorRef","start":1003,"end":1024}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","NavigationService","Visible","url","param","ObjectValue","value","Array","RegExp","openInNewTab","isAbsolute","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Control","NotNull","Input","text","parameterProviders","navigationService"],"packageName":"component"},{"rootPath":"/","start":0,"end":2404,"imports":[{"libraryName":"modules.page.model","start":0,"end":85,"specifiers":[{"specifier":"ObjRefInitializerBean"}]}],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"IBehavior","isExported":true,"start":87,"end":2403,"accessors":[],"properties":[],"methods":[{"name":"preInitialize","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":120,"end":142,"decorators":[],"parameters":[],"variables":[]},{"name":"initialize","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":228,"end":247,"decorators":[],"parameters":[],"variables":[]},{"name":"bindEvents","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":251,"end":270,"decorators":[],"parameters":[],"variables":[]},{"name":"start","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":274,"end":288,"decorators":[],"parameters":[],"variables":[]},{"name":"postStart","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":292,"end":310,"decorators":[],"parameters":[],"variables":[]},{"name":"unbindEvents","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":314,"end":329,"decorators":[],"parameters":[],"variables":[]},{"name":"reset","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":333,"end":347,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectName","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":426,"end":450,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectDescription","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":541,"end":572,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectPath","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":576,"end":619,"decorators":[],"parameters":[{"name":"relativeParent","type":"any","start":590,"end":609}],"variables":[]},{"name":"getPrototypeId","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":680,"end":705,"decorators":[],"parameters":[],"variables":[]},{"name":"getComponentRootId","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":767,"end":796,"decorators":[],"parameters":[],"variables":[]},{"name":"getScriptInChildren","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":939,"end":977,"decorators":[],"parameters":[{"name":"_class","type":"any","start":959,"end":970}],"variables":[]},{"name":"getScriptsInChildren","isAbstract":true,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":1127,"end":1168,"decorators":[],"parameters":[{"name":"_class","type":"any","start":1148,"end":1159}],"variables":[]},{"name":"getChildScripts","isAbstract":true,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":1338,"end":1374,"decorators":[],"parameters":[{"name":"_class","type":"any","start":1354,"end":1365}],"variables":[]},{"name":"getScript","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":1515,"end":1543,"decorators":[],"parameters":[{"name":"_class","type":"any","start":1525,"end":1536}],"variables":[]},{"name":"getScripts","isAbstract":true,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":1681,"end":1712,"decorators":[],"parameters":[{"name":"_class","type":"any","start":1692,"end":1703}],"variables":[]},{"name":"getScriptInObject","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":1883,"end":1937,"decorators":[],"parameters":[{"name":"objectId","type":"string","start":1901,"end":1917},{"name":"_class","type":"any","start":1919,"end":1930}],"variables":[]},{"name":"getPageId","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2008,"end":2028,"decorators":[],"parameters":[],"variables":[]},{"name":"getObjectId","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2122,"end":2144,"decorators":[],"parameters":[],"variables":[]},{"name":"getContext","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":2217,"end":2235,"decorators":[],"parameters":[],"variables":[]},{"name":"getParentContext","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":2239,"end":2263,"decorators":[],"parameters":[],"variables":[]},{"name":"implementsInterface","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":2267,"end":2316,"decorators":[],"parameters":[{"name":"_interface","type":"string","start":2287,"end":2305}],"variables":[]},{"name":"destroy","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":2320,"end":2329,"decorators":[],"parameters":[],"variables":[]},{"name":"setObjRefInitializers","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":2333,"end":2400,"decorators":[],"parameters":[{"name":"objRefInitializers","type":"ObjRefInitializerBean[]","start":2355,"end":2398}],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["preInitialize","initialize","bindEvents","start","postStart","unbindEvents","reset","returns","getObjectName","getObjectDescription","getObjectPath","relativeParent","getPrototypeId","getComponentRootId","param","_class","getScriptInChildren","getScriptsInChildren","getChildScripts","getScript","getScripts","objectId","getScriptInObject","getPageId","getObjectId","getContext","getParentContext","implementsInterface","_interface","destroy","setObjRefInitializers","objRefInitializers","ObjRefInitializerBean"],"packageName":"component"},{"rootPath":"/","start":0,"end":194,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"IControl","isExported":true,"start":0,"end":194,"accessors":[],"properties":[],"methods":[{"name":"addCssClass","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":31,"end":67,"decorators":[],"parameters":[{"name":"cssClass","type":"string","start":43,"end":59}],"variables":[]},{"name":"removeCssClass","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":71,"end":110,"decorators":[],"parameters":[{"name":"cssClass","type":"string","start":86,"end":102}],"variables":[]},{"name":"hasCssClass","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":114,"end":153,"decorators":[],"parameters":[{"name":"cssClass","type":"string","start":126,"end":142}],"variables":[]},{"name":"setEnabled","isAbstract":true,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":157,"end":192,"decorators":[],"parameters":[{"name":"enabled","type":"boolean","start":168,"end":184}],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["addCssClass","cssClass","removeCssClass","hasCssClass","setEnabled","enabled"],"packageName":"component"},{"rootPath":"/","start":0,"end":635,"imports":[{"libraryName":"@angular/core","start":0,"end":103,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"component","start":104,"end":138,"specifiers":[{"specifier":"Control"}]}],"exports":[],"declarations":[],"classes":[{"name":"IFrame","isExported":true,"start":169,"end":634,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'iframe-window',\n templateUrl: './../../../src/resources/template/component/IFrame.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"source","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":378,"end":411,"decorators":[{"name":"Input","parameters":[]}]}],"methods":[{"name":"setSource","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":494,"end":579,"decorators":[],"parameters":[{"name":"source","type":"string","start":504,"end":518}],"variables":[]},{"name":"getSource","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":583,"end":632,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Control"],"implementsClauses":[],"ctor":{"name":"IFrame","start":415,"end":490,"parameters":[{"name":"el","type":"ElementRef","start":427,"end":441},{"name":"cd","type":"ChangeDetectorRef","start":443,"end":464}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","source","author","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Control","Input"],"packageName":"component"},{"rootPath":"/","start":20,"end":50,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"IWindow","isExported":true,"start":20,"end":49,"accessors":[],"properties":[],"methods":[],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":[],"packageName":"component"},{"rootPath":"/","start":0,"end":415,"imports":[{"libraryName":"component","start":0,"end":28,"specifiers":[{"specifier":"Grid"}]},{"libraryName":"@angular/core","start":29,"end":94,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]}],"exports":[],"declarations":[],"classes":[{"name":"InMemoryGrid","isExported":true,"start":126,"end":414,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'in-memory-grid',\n templateUrl: './../../../src/resources/template/component/ClientSideGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[],"methods":[{"name":"getRowModelType","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":348,"end":411,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Grid"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["author","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Grid"],"packageName":"component"},{"rootPath":"/","start":0,"end":1845,"imports":[{"libraryName":"component","start":0,"end":66,"specifiers":[{"specifier":"StaticColumnInitializer"}]},{"libraryName":"@angular/core","start":67,"end":132,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]},{"libraryName":"component","start":133,"end":177,"specifiers":[{"specifier":"InMemoryGrid"}]},{"libraryName":"generated.property.grid","start":178,"end":257,"specifiers":[{"specifier":"StaticGridColumns"}]},{"libraryName":"generated.property.grid","start":258,"end":335,"specifiers":[{"specifier":"StaticGridColumn"}]},{"libraryName":"ag-grid-community","start":336,"end":377,"specifiers":[{"specifier":"ColDef"}]},{"libraryName":"component.grid.utils","start":378,"end":445,"specifiers":[{"specifier":"GridColumnDefUtils"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.api.dao.option","start":446,"end":540,"specifiers":[{"specifier":"SortOrder"}]}],"exports":[],"declarations":[],"classes":[{"name":"InMemoryStaticColumnGrid","isExported":true,"start":542,"end":1844,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'in-memory-static-column-grid',\n templateUrl: './../../../src/resources/template/component/ClientSideGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[],"methods":[{"name":"initDefaultSortModel","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":801,"end":1259,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":false,"isExported":false,"type":"StaticGridColumn[]","start":846,"end":912}]},{"name":"getColumnsScript","isAbstract":false,"visibility":1,"type":"StaticGridColumns","isOptional":false,"isStatic":false,"isAsync":false,"start":1263,"end":1362,"decorators":[],"parameters":[],"variables":[]},{"name":"initColumnDefs","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1366,"end":1703,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":false,"isExported":false,"type":"StaticGridColumn[]","start":1405,"end":1471},{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":1601,"end":1662}]},{"name":"columnToColumnDef","isAbstract":false,"visibility":1,"type":"ColDef","isOptional":false,"isStatic":false,"isAsync":false,"start":1707,"end":1842,"decorators":[],"parameters":[{"name":"column","type":"StaticGridColumn","start":1735,"end":1759}],"variables":[]}],"extendsClauses":["InMemoryGrid"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["columns","StaticGridColumn","column","SortOrder","StaticGridColumns","colum","columnDef","ColDef","GridColumnDefUtils","StaticColumnInitializer","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","InMemoryGrid"],"packageName":"component"},{"rootPath":"/","start":0,"end":422,"imports":[{"libraryName":"@angular/core","start":0,"end":102,"specifiers":[{"specifier":"AfterViewInit"},{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"},{"specifier":"EventEmitter"},{"specifier":"Output"}]}],"exports":[],"declarations":[],"classes":[{"name":"InitEventsComponent","isExported":true,"start":104,"end":422,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'init-events',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"afterViewInit","visibility":2,"type":"EventEmitter","isOptional":false,"isStatic":false,"start":276,"end":356,"decorators":[{"name":"Output","parameters":[]}]}],"methods":[{"name":"ngAfterViewInit","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":360,"end":420,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":[],"implementsClauses":["AfterViewInit"]}],"interfaces":[],"enums":[],"resources":[],"usages":["Component","selector","template","changeDetection","ChangeDetectionStrategy","AfterViewInit","Output","afterViewInit","EventEmitter"],"packageName":"component"},{"rootPath":"/","start":0,"end":556,"imports":[{"libraryName":"@angular/core","start":0,"end":103,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"component","start":104,"end":138,"specifiers":[{"specifier":"Control"}]},{"libraryName":"decorators","start":139,"end":201,"specifiers":[{"specifier":"TextAreaEditor"}]}],"exports":[],"declarations":[],"classes":[{"name":"InnerHtml","isExported":true,"start":203,"end":555,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'inner-html',\n templateUrl: './../../../src/resources/template/component/InnerHtml.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"htmlAsString","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":415,"end":474,"decorators":[{"name":"Input","parameters":[]},{"name":"TextAreaEditor","parameters":[]}]}],"methods":[],"extendsClauses":["Control"],"implementsClauses":[],"ctor":{"name":"InnerHtml","start":478,"end":553,"parameters":[{"name":"el","type":"ElementRef","start":490,"end":504},{"name":"cd","type":"ChangeDetectorRef","start":506,"end":527}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Control","Input","TextAreaEditor","htmlAsString"],"packageName":"component"},{"rootPath":"/","start":0,"end":16671,"imports":[{"libraryName":"@angular/core/testing","start":0,"end":95,"specifiers":[{"specifier":"async"},{"specifier":"ComponentFixture"},{"specifier":"fakeAsync"},{"specifier":"flush"},{"specifier":"TestBed"},{"specifier":"tick"}]},{"libraryName":"pipe","start":96,"end":155,"specifiers":[{"specifier":"EmptyIfNullPipe"}]},{"libraryName":"ag-grid-angular","start":156,"end":201,"specifiers":[{"specifier":"AgGridModule"}]},{"libraryName":"modules.core.component","start":202,"end":302,"specifiers":[{"specifier":"ProgressIndicationComponent"}]},{"libraryName":"@angular/core","start":303,"end":342,"specifiers":[{"specifier":"Injector"}]},{"libraryName":"modules.core.service","start":343,"end":437,"specifiers":[{"specifier":"ProgressIndicationService"}]},{"libraryName":"modules.bpmn.provider","start":438,"end":517,"specifiers":[{"specifier":"TaskParamsProvider"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":518,"end":571,"specifiers":[{"specifier":"NgbModule"}]},{"libraryName":"component","start":572,"end":612,"specifiers":[{"specifier":"PagingGrid"}]},{"libraryName":"generated.property.grid","start":613,"end":680,"specifiers":[{"specifier":"GridColumns"}]},{"libraryName":"generated.property.grid","start":681,"end":746,"specifiers":[{"specifier":"GridColumn"}]},{"libraryName":"...testing","start":747,"end":795,"specifiers":[{"specifier":"TestUtil"}]},{"libraryName":"component","start":796,"end":826,"specifiers":[{"specifier":"Style"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.bean.filter","start":827,"end":930,"specifiers":[{"specifier":"FilterOperation"}]},{"libraryName":"generated.model.grid","start":931,"end":989,"specifiers":[{"specifier":"GridRows"}]},{"libraryName":"component.grid","start":990,"end":1047,"specifiers":[{"specifier":"GridPagingLoader"}]},{"libraryName":"...testing","start":1048,"end":1106,"specifiers":[{"specifier":"ConstantsUtil"}]},{"libraryName":"component.grid.enums","start":1107,"end":1182,"specifiers":[{"specifier":"GridLoadingOverlayType"}]},{"libraryName":"modules.core.service","start":1183,"end":1265,"specifiers":[{"specifier":"LocalStorageService"}]},{"libraryName":"modules.core.storage","start":1266,"end":1334,"specifiers":[{"specifier":"WebbpmStorage"}]},{"libraryName":"component.grid.utils","start":1335,"end":1406,"specifiers":[{"specifier":"GridColumnStateUtils"}]},{"libraryName":"util","start":1451,"end":1497,"specifiers":[{"specifier":"FilterUtil"}]},{"libraryName":"generated.rpc","start":1498,"end":1561,"specifiers":[{"specifier":"GridRpcService"}]}],"exports":[],"declarations":[{"name":"TEXT","isConst":true,"isExported":false,"start":1605,"end":1639},{"name":"TOTAL_ROW_COUNT","isConst":true,"isExported":false,"start":1642,"end":1670},{"name":"DEFAULT_PAGE_SIZE","isConst":true,"isExported":false,"start":1673,"end":1702},{"name":"DEFAULT_PAGE_COUNT","isConst":true,"isExported":false,"start":1705,"end":1777},{"name":"LESS_PAGE_SIZE","isConst":true,"isExported":false,"start":1780,"end":1806},{"name":"MORE_PAGE_SIZE","isConst":true,"isExported":false,"start":1809,"end":1835},{"name":"LAST_PAGE_SIZE","isConst":true,"isExported":false,"start":1838,"end":1924},{"name":"ENTITY","isConst":true,"isExported":false,"start":1927,"end":1951},{"name":"NAME","isConst":true,"isExported":false,"start":1954,"end":1976},{"name":"COL_ID","isConst":true,"isExported":false,"start":1979,"end":2014},{"name":"COL_SELECTOR","isConst":true,"isExported":false,"start":2017,"end":2061},{"name":"CELL_SELECTOR","isConst":true,"isExported":false,"start":2064,"end":2103},{"name":"MIN_COLUMN_WIDTH","isConst":true,"isExported":false,"start":2106,"end":2133},{"name":"COLUMN_WIDTH","isConst":true,"isExported":false,"start":2136,"end":2161},{"name":"COLUMN_HEIGHT","isConst":true,"isExported":false,"start":2164,"end":2189},{"name":"STYLE_COLUMN_WIDTH","isConst":true,"isExported":false,"start":2192,"end":2246},{"name":"STYLE_COLUMN_HEIGHT","isConst":true,"isExported":false,"start":2249,"end":2306},{"name":"COLUMN_NAME","isConst":true,"isExported":false,"start":2309,"end":2339},{"name":"FILTERS","isConst":false,"isExported":false,"start":2342,"end":2429},{"name":"CTRL_CLICK","isConst":true,"isExported":false,"start":2433,"end":2538},{"name":"progressIndicationSpy","isConst":false,"isExported":false,"type":"ProgressIndicationService","start":2542,"end":2595},{"name":"component","isConst":false,"isExported":false,"type":"PagingGrid","start":2598,"end":2624},{"name":"fixture","isConst":false,"isExported":false,"type":"ComponentFixture","start":2627,"end":2669},{"name":"gridPagingLoader","isConst":false,"isExported":false,"type":"GridPagingLoader","start":2672,"end":2711},{"name":"gridRpcService","isConst":false,"isExported":false,"type":"jasmine.SpyObj","start":2714,"end":2765},{"name":"gridColumns","isConst":false,"isExported":false,"type":"GridColumns","start":2768,"end":2797},{"name":"gridColumn","isConst":false,"isExported":false,"type":"GridColumn","start":2800,"end":2827},{"name":"gridRows","isConst":false,"isExported":false,"type":"GridRows","start":2830,"end":2853},{"name":"localStorageServiceSpy","isConst":false,"isExported":false,"type":"jasmine.SpyObj","start":2856,"end":2920},{"name":"el","isConst":false,"isExported":false,"type":"HTMLElement","start":2923,"end":2943},{"name":"gridApi","isConst":false,"isExported":false,"start":2946,"end":2958},{"name":"getColumnDef","isExported":false,"isAsync":false,"start":5731,"end":5821,"parameters":[{"name":"fieldName","type":"string","start":5753,"end":5770}],"variables":[]},{"name":"triggerInitGrid","isExported":false,"isAsync":false,"start":5825,"end":5974,"parameters":[],"variables":[]},{"name":"count","isConst":false,"isExported":false,"start":6162,"end":6176},{"name":"count","isConst":false,"isExported":false,"start":6472,"end":6486},{"name":"containerWidth","isConst":true,"isExported":false,"start":7566,"end":7660},{"name":"columnWidth","isConst":true,"isExported":false,"start":7665,"end":7741},{"name":"leftRange","isConst":false,"isExported":false,"start":7746,"end":7818},{"name":"rightRange","isConst":false,"isExported":false,"start":7823,"end":7895},{"name":"columnWidth","isConst":true,"isExported":false,"start":8129,"end":8205},{"name":"columnWidth","isConst":true,"isExported":false,"start":9008,"end":9084},{"name":"rows","isConst":true,"isExported":false,"start":9787,"end":9857},{"name":"rows","isConst":true,"isExported":false,"start":10067,"end":10137},{"name":"rowNumbers","isConst":true,"isExported":false,"start":10403,"end":10471},{"name":"rowNumbers","isConst":true,"isExported":false,"start":10787,"end":10855},{"name":"checkBoxes","isConst":false,"isExported":false,"start":11199,"end":11288},{"name":"grid","isConst":false,"isExported":false,"start":12318,"end":12355},{"name":"style","isConst":false,"isExported":false,"start":12636,"end":12660},{"name":"grid","isConst":true,"isExported":false,"type":"HTMLElement","start":12981,"end":13043},{"name":"pageCount1","isConst":false,"isExported":false,"start":14415,"end":14468},{"name":"pageCount2","isConst":false,"isExported":false,"start":14555,"end":14608},{"name":"SECOND_PAGE","isConst":true,"isExported":false,"start":14869,"end":14891},{"name":"INVALID_PAGE","isConst":true,"isExported":false,"start":15212,"end":15237},{"name":"NEXT_PAGE","isConst":true,"isExported":false,"start":15552,"end":15572},{"name":"PREVIOUS_PAGE","isConst":true,"isExported":false,"start":16179,"end":16203}],"classes":[],"interfaces":[],"enums":[],"resources":[],"usages":["jasmine","createSpyObj","describe","TEXT","TOTAL_ROW_COUNT","DEFAULT_PAGE_SIZE","DEFAULT_PAGE_COUNT","Math","LESS_PAGE_SIZE","MORE_PAGE_SIZE","LAST_PAGE_SIZE","ENTITY","NAME","COL_ID","COL_SELECTOR","CELL_SELECTOR","MIN_COLUMN_WIDTH","COLUMN_WIDTH","COLUMN_HEIGHT","STYLE_COLUMN_WIDTH","STYLE_COLUMN_HEIGHT","COLUMN_NAME","FILTERS","FilterUtil","FilterOperation","CTRL_CLICK","MouseEvent","view","window","bubbles","ctrlKey","progressIndicationSpy","ProgressIndicationService","component","PagingGrid","fixture","ComponentFixture","gridPagingLoader","GridPagingLoader","gridRpcService","SpyObj","GridRpcService","gridColumns","GridColumns","gridColumn","GridColumn","gridRows","GridRows","localStorageServiceSpy","LocalStorageService","el","HTMLElement","gridApi","TestUtil","beforeEach","async","TestBed","declarations","EmptyIfNullPipe","ProgressIndicationComponent","providers","Injector","provide","useValue","TaskParamsProvider","imports","AgGridModule","NgbModule","GridLoadingOverlayType","defaultPageSize","pageSizes","schema","table","entity","name","type","i","row_uid","entity$column","Promise","WebbpmStorage","GridColumnStateUtils","spyOn","fieldName","it","expect","fakeAsync","count","tick","flush","xit","containerWidth","columnWidth","leftRange","rightRange","triggerInitGrid","getColumnDef","rows","rowNumbers","Event","checkBoxes","checkBox","grid","ConstantsUtil","style","Style","pageCount1","pageCount2","SECOND_PAGE","INVALID_PAGE","NEXT_PAGE","PREVIOUS_PAGE"],"packageName":"component"},{"rootPath":"/","start":0,"end":3173,"imports":[{"libraryName":"@angular/core","start":0,"end":115,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"component","start":116,"end":144,"specifiers":[{"specifier":"Grid"}]},{"libraryName":"decorators","start":145,"end":191,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"component.grid","start":192,"end":257,"specifiers":[{"specifier":"GridPagingDataLoader"}]}],"exports":[],"declarations":[],"classes":[{"name":"PagingGrid","isExported":true,"start":259,"end":3172,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'paging-grid',\n templateUrl: './../../../src/resources/template/component/PagingGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"pageSizes","visibility":2,"type":"number[]","isOptional":false,"isStatic":false,"start":471,"end":529,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"pageSize","visibility":2,"type":"number","isOptional":false,"isStatic":false,"start":533,"end":588,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"paginationPageSize","visibility":2,"type":"any","isOptional":false,"isStatic":false,"start":592,"end":654,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["false"]}]},{"name":"gridPagingLoader","visibility":0,"type":"GridPagingDataLoader","isOptional":false,"isStatic":false,"start":658,"end":705,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":788,"end":1101,"decorators":[],"parameters":[],"variables":[{"name":"loadingOptions","isConst":false,"isExported":false,"start":902,"end":962}]},{"name":"refresh","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1105,"end":1180,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"setPageSize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1184,"end":1271,"decorators":[],"parameters":[{"name":"value","type":"number","start":1196,"end":1209}],"variables":[]},{"name":"setPaginationPageSize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":1275,"end":1382,"decorators":[],"parameters":[{"name":"value","type":"number","start":1297,"end":1310}],"variables":[]},{"name":"getRowModelType","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":1386,"end":1447,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationIsLastPageFound","isAbstract":false,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":1451,"end":1546,"decorators":[],"parameters":[],"variables":[]},{"name":"isOnFirstPage","isAbstract":false,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":1550,"end":1616,"decorators":[],"parameters":[],"variables":[]},{"name":"isOnLastPage","isAbstract":false,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":1620,"end":1714,"decorators":[],"parameters":[],"variables":[]},{"name":"firstRowOnPage","isAbstract":false,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":1718,"end":1853,"decorators":[],"parameters":[],"variables":[]},{"name":"lastRowOnPage","isAbstract":false,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":1857,"end":1996,"decorators":[],"parameters":[],"variables":[]},{"name":"currentPage","isAbstract":false,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":2000,"end":2083,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationGetPageSize","isAbstract":false,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":2087,"end":2173,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationSetPageSize","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2177,"end":2270,"decorators":[],"parameters":[{"name":"size","type":"number","start":2199,"end":2211}],"variables":[]},{"name":"paginationGetTotalPages","isAbstract":false,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":2274,"end":2364,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationGetRowCount","isAbstract":false,"type":"number","isOptional":false,"isStatic":false,"isAsync":false,"start":2368,"end":2454,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationGoToNextPage","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2458,"end":2537,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationGoToPreviousPage","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2541,"end":2628,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationGoToFirstPage","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2632,"end":2713,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationGoToLastPage","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2717,"end":2796,"decorators":[],"parameters":[],"variables":[]},{"name":"paginationGoToPage","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2800,"end":2889,"decorators":[],"parameters":[{"name":"page","type":"any","start":2819,"end":2828}],"variables":[]},{"name":"onPageSizeChange","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2893,"end":3170,"decorators":[],"parameters":[{"name":"newSize","type":"number","start":2910,"end":2925}],"variables":[]}],"extendsClauses":["Grid"],"implementsClauses":[],"ctor":{"name":"PagingGrid","start":709,"end":784,"parameters":[{"name":"el","type":"ElementRef","start":721,"end":735},{"name":"cd","type":"ChangeDetectorRef","start":737,"end":758}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Promise","loadingOptions","Visible","value","Math","size","page","newSize","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Grid","Input","pageSizes","pageSize","paginationPageSize","gridPagingLoader","GridPagingDataLoader"],"packageName":"component"},{"rootPath":"/","start":0,"end":299,"imports":[{"libraryName":"common","start":0,"end":44,"specifiers":[{"specifier":"Deferred"}]}],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"SelectableComponent","isExported":true,"start":46,"end":298,"accessors":[],"properties":[],"methods":[{"name":"isMultiselectable","isAbstract":true,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":88,"end":117,"decorators":[],"parameters":[],"variables":[]},{"name":"getSelectValue","isAbstract":true,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":121,"end":143,"decorators":[],"parameters":[],"variables":[]},{"name":"getSelectValues","isAbstract":true,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":147,"end":172,"decorators":[],"parameters":[],"variables":[]},{"name":"addSelectListener","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":176,"end":214,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":194,"end":212}],"variables":[]},{"name":"removeSelectListener","isAbstract":true,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":218,"end":259,"decorators":[],"parameters":[{"name":"listener","type":"Function","start":239,"end":257}],"variables":[]},{"name":"getDependValue","isAbstract":true,"visibility":2,"type":"Deferred","isOptional":false,"isStatic":false,"isAsync":false,"start":263,"end":296,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["isMultiselectable","getSelectValue","getSelectValues","addSelectListener","listener","Function","removeSelectListener","getDependValue","Deferred"],"packageName":"component"},{"rootPath":"/","start":0,"end":1975,"imports":[{"libraryName":"component","start":0,"end":46,"specifiers":[{"specifier":"SelectionItem"}]}],"exports":[],"declarations":[],"classes":[{"name":"SelectionChangeEvent","isExported":true,"start":48,"end":1975,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"selection","visibility":0,"type":"SelectionItem[]","isOptional":false,"isStatic":false,"start":86,"end":121,"decorators":[]}],"methods":[{"name":"getSelection","isAbstract":false,"visibility":2,"type":"SelectionItem[]","isOptional":false,"isStatic":false,"isAsync":false,"start":715,"end":786,"decorators":[],"parameters":[],"variables":[]},{"name":"isSelected","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":790,"end":868,"decorators":[],"parameters":[],"variables":[]},{"name":"isSingleSelected","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":872,"end":957,"decorators":[],"parameters":[],"variables":[]},{"name":"isMultiSelected","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":961,"end":1044,"decorators":[],"parameters":[],"variables":[]},{"name":"selectedItems","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":1048,"end":1330,"decorators":[],"parameters":[],"variables":[{"name":"selected","isConst":false,"isExported":false,"type":"any[]","start":1084,"end":1109},{"name":"index","isConst":false,"isExported":false,"type":"number","start":1114,"end":1132}]},{"name":"deselectedItems","isAbstract":false,"visibility":2,"type":"any[]","isOptional":false,"isStatic":false,"isAsync":false,"start":1334,"end":1625,"decorators":[],"parameters":[],"variables":[{"name":"deselected","isConst":false,"isExported":false,"type":"any[]","start":1372,"end":1399},{"name":"index","isConst":false,"isExported":false,"type":"number","start":1404,"end":1422}]},{"name":"selectedItem","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":1629,"end":1973,"decorators":[],"parameters":[],"variables":[{"name":"selected","isConst":false,"isExported":false,"type":"any[]","start":1662,"end":1705}]}],"extendsClauses":[],"implementsClauses":[],"ctor":{"name":"SelectionChangeEvent","start":259,"end":711,"parameters":[{"name":"selectionOrItem","type":"any","start":271,"end":291},{"name":"selected","type":"boolean","start":293,"end":311}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["selection","SelectionItem","selectionItem","item","selected","selectionOrItem","Array","undefined","index","deselected","window","console"],"packageName":"component"},{"rootPath":"/","start":0,"end":189,"imports":[],"exports":[],"declarations":[],"classes":[{"name":"SelectionItem","isExported":true,"start":0,"end":189,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"item","visibility":2,"type":"any","isOptional":false,"isStatic":false,"start":31,"end":48,"decorators":[]},{"name":"isSelected","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":51,"end":78,"decorators":[]}],"methods":[],"extendsClauses":[],"implementsClauses":[],"ctor":{"name":"SelectionItem","start":82,"end":187,"parameters":[{"name":"item","type":"any","start":94,"end":103},{"name":"isSelected","type":"boolean","start":105,"end":124}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["item","isSelected"],"packageName":"component"},{"rootPath":"/","start":0,"end":1800,"imports":[{"libraryName":"component","start":0,"end":28,"specifiers":[{"specifier":"Grid"}]},{"libraryName":"generated.property.grid","start":29,"end":108,"specifiers":[{"specifier":"StaticGridColumns"}]},{"libraryName":"generated.property.grid","start":109,"end":186,"specifiers":[{"specifier":"StaticGridColumn"}]},{"libraryName":"component","start":187,"end":253,"specifiers":[{"specifier":"StaticColumnInitializer"}]},{"libraryName":"@angular/core","start":254,"end":319,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]},{"libraryName":"ag-grid-community","start":320,"end":361,"specifiers":[{"specifier":"ColDef"}]},{"libraryName":"component.grid.utils","start":362,"end":429,"specifiers":[{"specifier":"GridColumnDefUtils"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.api.dao.option","start":430,"end":524,"specifiers":[{"specifier":"SortOrder"}]}],"exports":[],"declarations":[],"classes":[{"name":"StaticColumnGrid","isExported":true,"start":526,"end":1799,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'static-column-grid',\n templateUrl: './../../../src/resources/template/component/ClientSideGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[],"methods":[{"name":"initDefaultSortModel","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":756,"end":1214,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":false,"isExported":false,"type":"StaticGridColumn[]","start":801,"end":867}]},{"name":"getColumnsScript","isAbstract":false,"visibility":1,"type":"StaticGridColumns","isOptional":false,"isStatic":false,"isAsync":false,"start":1218,"end":1317,"decorators":[],"parameters":[],"variables":[]},{"name":"initColumnDefs","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1321,"end":1658,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":false,"isExported":false,"type":"StaticGridColumn[]","start":1360,"end":1426},{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":1556,"end":1617}]},{"name":"columnToColumnDef","isAbstract":false,"visibility":1,"type":"ColDef","isOptional":false,"isStatic":false,"isAsync":false,"start":1662,"end":1797,"decorators":[],"parameters":[{"name":"column","type":"StaticGridColumn","start":1690,"end":1714}],"variables":[]}],"extendsClauses":["Grid"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["columns","StaticGridColumn","column","SortOrder","StaticGridColumns","colum","columnDef","ColDef","GridColumnDefUtils","StaticColumnInitializer","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Grid"],"packageName":"component"},{"rootPath":"/","start":0,"end":2252,"imports":[{"libraryName":"component.grid.utils","start":0,"end":75,"specifiers":[{"specifier":"GridValueRendererUtils"}]},{"libraryName":"generated.property.grid","start":76,"end":153,"specifiers":[{"specifier":"StaticGridColumn"}]},{"libraryName":"ag-grid-community","start":154,"end":243,"specifiers":[{"specifier":"ColDef"},{"specifier":"ICellRendererFunc"},{"specifier":"SuppressKeyboardEventParams"}]},{"libraryName":"component.grid.utils","start":244,"end":321,"specifiers":[{"specifier":"GridValueFormatterUtils"}]},{"libraryName":"component.grid.utils","start":322,"end":399,"specifiers":[{"specifier":"GridColumnKeyboardUtils"}]},{"libraryName":"component.grid.utils","start":400,"end":481,"specifiers":[{"specifier":"GridColumnComparatorUtils"}]},{"libraryName":"component.grid.headers","start":482,"end":549,"specifiers":[{"specifier":"GridSettingHeader"}]},{"libraryName":"component.grid.utils","start":550,"end":621,"specifiers":[{"specifier":"GridCellTooltipUtils"}]}],"exports":[],"declarations":[],"classes":[{"name":"StaticColumnInitializer","isExported":true,"start":623,"end":2251,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[],"methods":[{"name":"columnToColumnDef","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":true,"isAsync":false,"start":665,"end":2249,"decorators":[],"parameters":[{"name":"gridRef","type":"any","start":697,"end":709},{"name":"column","type":"StaticGridColumn","start":711,"end":735}],"variables":[{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":743,"end":770},{"name":"type","isConst":false,"isExported":false,"start":1349,"end":1372},{"name":"renderer","isConst":true,"isExported":false,"type":"ICellRendererFunc","start":1751,"end":1831}]}],"extendsClauses":[],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["gridRef","column","StaticGridColumn","columnDef","ColDef","GridSettingHeader","type","GridValueFormatterUtils","GridColumnComparatorUtils","GridValueRendererUtils","renderer","ICellRendererFunc","params","GridCellTooltipUtils","SuppressKeyboardEventParams","GridColumnKeyboardUtils"],"packageName":"component"},{"rootPath":"/","start":0,"end":2874,"imports":[{"libraryName":"component","start":0,"end":36,"specifiers":[{"specifier":"TreeGrid"}]},{"libraryName":"generated.property.grid","start":37,"end":116,"specifiers":[{"specifier":"StaticGridColumns"}]},{"libraryName":"generated.property.grid","start":117,"end":194,"specifiers":[{"specifier":"StaticGridColumn"}]},{"libraryName":"component.grid.utils","start":195,"end":270,"specifiers":[{"specifier":"GridValueRendererUtils"}]},{"libraryName":"@angular/core","start":271,"end":336,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]},{"libraryName":"ag-grid-community","start":337,"end":378,"specifiers":[{"specifier":"ColDef"}]},{"libraryName":"component.grid.utils","start":379,"end":446,"specifiers":[{"specifier":"GridColumnDefUtils"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.api.dao.option","start":447,"end":541,"specifiers":[{"specifier":"SortOrder"}]},{"libraryName":"component.grid.utils","start":542,"end":619,"specifiers":[{"specifier":"GridValueFormatterUtils"}]},{"libraryName":"component.grid.utils","start":620,"end":701,"specifiers":[{"specifier":"GridColumnComparatorUtils"}]},{"libraryName":"component.grid.headers","start":702,"end":769,"specifiers":[{"specifier":"GridSettingHeader"}]}],"exports":[],"declarations":[],"classes":[{"name":"StaticColumnTreeGrid","isExported":true,"start":771,"end":2873,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'static-column-tree-grid',\n templateUrl: './../../../src/resources/template/component/TreeGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[],"methods":[{"name":"initDefaultSortModel","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1008,"end":1466,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":false,"isExported":false,"type":"StaticGridColumn[]","start":1053,"end":1119}]},{"name":"getColumnsScript","isAbstract":false,"visibility":1,"type":"StaticGridColumns","isOptional":false,"isStatic":false,"isAsync":false,"start":1470,"end":1569,"decorators":[],"parameters":[],"variables":[]},{"name":"initColumnDefs","isAbstract":false,"visibility":1,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1573,"end":1979,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":true,"isExported":false,"type":"StaticGridColumn[]","start":1612,"end":1680},{"name":"colDefs","isConst":false,"isExported":false,"start":1685,"end":1753},{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":1788,"end":1849}]},{"name":"columnToColumnDef","isAbstract":false,"visibility":1,"type":"ColDef","isOptional":false,"isStatic":false,"isAsync":false,"start":1983,"end":2871,"decorators":[],"parameters":[{"name":"column","type":"StaticGridColumn","start":2011,"end":2035}],"variables":[{"name":"columnDef","isConst":true,"isExported":false,"type":"ColDef","start":2051,"end":2080},{"name":"type","isConst":false,"isExported":false,"start":2431,"end":2454},{"name":"renderer","isConst":true,"isExported":false,"start":2657,"end":2724}]}],"extendsClauses":["TreeGrid"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["columns","StaticGridColumn","column","SortOrder","StaticGridColumns","colDefs","columnDef","ColDef","GridColumnDefUtils","GridSettingHeader","type","GridValueFormatterUtils","GridColumnComparatorUtils","renderer","GridValueRendererUtils","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","TreeGrid"],"packageName":"component"},{"rootPath":"/","start":29,"end":315,"imports":[],"exports":[],"declarations":[],"classes":[{"name":"Style","isExported":true,"start":29,"end":314,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"padding","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":53,"end":76,"decorators":[]},{"name":"margin","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":79,"end":101,"decorators":[]},{"name":"border","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":104,"end":126,"decorators":[]},{"name":"height","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":129,"end":151,"decorators":[]},{"name":"width","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":154,"end":175,"decorators":[]},{"name":"minHeight","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":178,"end":203,"decorators":[]},{"name":"minWidth","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":206,"end":230,"decorators":[]},{"name":"maxHeight","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":233,"end":258,"decorators":[]},{"name":"maxWidth","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":261,"end":285,"decorators":[]},{"name":"stretch","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":288,"end":312,"decorators":[]}],"methods":[],"extendsClauses":[],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["author","padding","margin","border","height","width","minHeight","minWidth","maxHeight","maxWidth","stretch"],"packageName":"component"},{"rootPath":"/","start":0,"end":1196,"imports":[{"libraryName":"component.button","start":0,"end":39,"specifiers":[{"specifier":"Button"}]},{"libraryName":"component","start":40,"end":68,"specifiers":[{"specifier":"Grid"}]},{"libraryName":"modules.security.service","start":69,"end":171,"specifiers":[{"specifier":"AuthenticationMethodService"}]},{"libraryName":"decorators","start":172,"end":218,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"@angular/core","start":219,"end":284,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"Component"}]},{"libraryName":"@angular/common/http","start":285,"end":333,"specifiers":[{"specifier":"HttpClient"}]},{"libraryName":"decorators","start":334,"end":384,"specifiers":[{"specifier":"ObjectRef"}]}],"exports":[],"declarations":[],"classes":[{"name":"SyncLDAPButton","isExported":true,"start":386,"end":1195,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'ldap-button',\n templateUrl: './../../../src/resources/template/component/button/Button.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"httpClient","visibility":0,"type":"HttpClient","isOptional":false,"isStatic":false,"start":610,"end":641,"decorators":[]},{"name":"authenticationMethodService","visibility":0,"type":"AuthenticationMethodService","isOptional":false,"isStatic":false,"start":644,"end":709,"decorators":[]},{"name":"usersGrid","visibility":2,"type":"Grid","isOptional":false,"isStatic":false,"start":713,"end":764,"decorators":[{"name":"ObjectRef","parameters":[]},{"name":"NotNull","parameters":[]}]}],"methods":[{"name":"initialize","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":768,"end":950,"decorators":[],"parameters":[],"variables":[]},{"name":"doClickActions","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":954,"end":1193,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Button"],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["HttpClient","AuthenticationMethodService","Promise","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Button","httpClient","authenticationMethodService","ObjectRef","NotNull","usersGrid","Grid"],"packageName":"component"},{"rootPath":"/","start":0,"end":4294,"imports":[{"libraryName":"@angular/core/testing","start":0,"end":71,"specifiers":[{"specifier":"async"},{"specifier":"ComponentFixture"},{"specifier":"TestBed"}]},{"libraryName":"@angular/forms","start":72,"end":115,"specifiers":[{"specifier":"FormsModule"}]},{"libraryName":"...testing","start":116,"end":164,"specifiers":[{"specifier":"TestUtil"}]},{"libraryName":"pipe","start":165,"end":224,"specifiers":[{"specifier":"EmptyIfNullPipe"}]},{"libraryName":"component","start":225,"end":253,"specifiers":[{"specifier":"Text"}]},{"libraryName":"component","start":254,"end":284,"specifiers":[{"specifier":"Style"}]},{"libraryName":"...testing","start":285,"end":343,"specifiers":[{"specifier":"ConstantsUtil"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":344,"end":409,"specifiers":[{"specifier":"NgbModule"},{"specifier":"NgbTooltip"}]}],"exports":[],"declarations":[{"name":"TEXT","isConst":true,"isExported":false,"start":438,"end":472},{"name":"component","isConst":false,"isExported":false,"type":"Text","start":475,"end":495},{"name":"fixture","isConst":false,"isExported":false,"type":"ComponentFixture","start":498,"end":534},{"name":"el","isConst":false,"isExported":false,"type":"HTMLElement","start":537,"end":557},{"name":"div","isConst":false,"isExported":false,"start":1837,"end":1871},{"name":"style","isConst":true,"isExported":false,"start":3086,"end":3112},{"name":"testPadding","isConst":true,"isExported":false,"start":3117,"end":3143},{"name":"testMargin","isConst":true,"isExported":false,"start":3148,"end":3173},{"name":"testBorder","isConst":true,"isExported":false,"start":3178,"end":3203},{"name":"testHeight","isConst":true,"isExported":false,"start":3208,"end":3234},{"name":"testWidth","isConst":true,"isExported":false,"start":3239,"end":3265},{"name":"testMinHeight","isConst":true,"isExported":false,"start":3270,"end":3299},{"name":"testMinWidth","isConst":true,"isExported":false,"start":3304,"end":3332},{"name":"testMaxHeight","isConst":true,"isExported":false,"start":3337,"end":3366},{"name":"testMaxWidth","isConst":true,"isExported":false,"start":3371,"end":3400}],"classes":[],"interfaces":[],"enums":[],"resources":[],"usages":["describe","TEXT","component","Text","fixture","ComponentFixture","el","HTMLElement","TestUtil","beforeEach","async","TestBed","declarations","EmptyIfNullPipe","imports","NgbModule","it","expect","xit","div","undefined","ConstantsUtil","style","Style","testPadding","testMargin","testBorder","testHeight","testWidth","testMinHeight","testMinWidth","testMaxHeight","testMaxWidth"],"packageName":"component"},{"rootPath":"/","start":0,"end":3433,"imports":[{"libraryName":"@angular/core","start":0,"end":115,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"component","start":116,"end":150,"specifiers":[{"specifier":"Control"}]},{"libraryName":"component","start":151,"end":197,"specifiers":[{"specifier":"TextFormatter"}]},{"libraryName":"decorators","start":198,"end":244,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"decorators","start":245,"end":291,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"component","start":292,"end":344,"specifiers":[{"specifier":"ControlWithValue"}]},{"libraryName":"webbpm.event","start":345,"end":389,"specifiers":[{"specifier":"Event"}]}],"exports":[],"declarations":[],"classes":[{"name":"Text","isExported":true,"start":420,"end":3432,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'text',\n templateUrl: './../../../src/resources/template/component/field/Text.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n }"]}],"properties":[{"name":"label","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":694,"end":726,"decorators":[{"name":"Input","parameters":[]}]},{"name":"initialValue","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":730,"end":769,"decorators":[{"name":"Input","parameters":[]}]},{"name":"value","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":773,"end":814,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"collectible","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":818,"end":870,"decorators":[{"name":"Input","parameters":[]},{"name":"NotNull","parameters":[]}]},{"name":"internalValue","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":874,"end":923,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"textFormatter","visibility":2,"type":"TextFormatter","isOptional":false,"isStatic":false,"start":927,"end":963,"decorators":[]},{"name":"valueChangeEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":967,"end":1048,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"htmlValue","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":1052,"end":1102,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"changeListeners","visibility":0,"type":"Function[]","isOptional":false,"isStatic":false,"start":1130,"end":1171,"decorators":[]},{"name":"pristine","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":1174,"end":1207,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1290,"end":1370,"decorators":[],"parameters":[],"variables":[]},{"name":"reset","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":1374,"end":1481,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getValue","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":1485,"end":1560,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getValueForForm","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":1564,"end":1633,"decorators":[],"parameters":[],"variables":[]},{"name":"getPresentationValue","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":1637,"end":1711,"decorators":[],"parameters":[],"variables":[]},{"name":"getTextValue","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":1715,"end":1809,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getValueAsModel","isAbstract":false,"visibility":2,"type":"any","isOptional":false,"isStatic":false,"isAsync":false,"start":1813,"end":1876,"decorators":[],"parameters":[],"variables":[]},{"name":"setValue","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":1880,"end":2108,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":1909,"end":1922}],"variables":[]},{"name":"setLabel","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":2112,"end":2213,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":2141,"end":2154}],"variables":[]},{"name":"clearValue","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":2217,"end":2280,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"isCollectible","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":2284,"end":2363,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getLabel","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":2367,"end":2434,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"onChange","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":2438,"end":2555,"decorators":[],"parameters":[],"variables":[]},{"name":"addChangeListener","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2559,"end":2678,"decorators":[],"parameters":[{"name":"onChangeFunction","type":"Function","start":2577,"end":2603}],"variables":[]},{"name":"removeChangeListener","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2682,"end":2807,"decorators":[],"parameters":[{"name":"onChangeFunction","type":"Function","start":2703,"end":2729}],"variables":[]},{"name":"resetValue","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2811,"end":2879,"decorators":[],"parameters":[],"variables":[]},{"name":"isPristine","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":2883,"end":2943,"decorators":[],"parameters":[],"variables":[]},{"name":"setInitValue","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2947,"end":3037,"decorators":[],"parameters":[],"variables":[]},{"name":"resetPristine","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3041,"end":3102,"decorators":[],"parameters":[],"variables":[]},{"name":"isValueEmpty","isAbstract":false,"visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":3106,"end":3203,"decorators":[],"parameters":[],"variables":[]},{"name":"getHtmlValue","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":3207,"end":3430,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["Control"],"implementsClauses":["ControlWithValue"],"ctor":{"name":"Text","start":1211,"end":1286,"parameters":[{"name":"el","type":"ElementRef","start":1223,"end":1237},{"name":"cd","type":"ChangeDetectorRef","start":1239,"end":1260}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Visible","value","onChangeFunction","Function","author","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","Control","ControlWithValue","Input","label","initialValue","NotNull","collectible","internalValue","textFormatter","TextFormatter","valueChangeEvent","Event","htmlValue","changeListeners","pristine"],"packageName":"component"},{"rootPath":"/","start":0,"end":68,"imports":[],"exports":[],"declarations":[],"classes":[],"interfaces":[{"name":"TextFormatter","isExported":true,"start":0,"end":67,"accessors":[],"properties":[],"methods":[{"name":"format","isAbstract":true,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":35,"end":65,"decorators":[],"parameters":[{"name":"value","type":"string","start":42,"end":55}],"variables":[]}],"extendsClauses":[],"implementsClauses":[]}],"enums":[],"resources":[],"usages":["format","value"],"packageName":"component"},{"rootPath":"/","start":0,"end":13952,"imports":[{"libraryName":"@angular/core/testing","start":0,"end":89,"specifiers":[{"specifier":"async"},{"specifier":"ComponentFixture"},{"specifier":"fakeAsync"},{"specifier":"flush"},{"specifier":"TestBed"}]},{"libraryName":"@angular/core","start":90,"end":129,"specifiers":[{"specifier":"Injector"}]},{"libraryName":"component","start":130,"end":166,"specifiers":[{"specifier":"TreeGrid"}]},{"libraryName":"ag-grid-angular","start":167,"end":212,"specifiers":[{"specifier":"AgGridModule"}]},{"libraryName":"generated.property.grid","start":213,"end":278,"specifiers":[{"specifier":"GridColumn"}]},{"libraryName":"pipe","start":279,"end":338,"specifiers":[{"specifier":"EmptyIfNullPipe"}]},{"libraryName":"modules.bpmn.provider","start":339,"end":418,"specifiers":[{"specifier":"TaskParamsProvider"}]},{"libraryName":"...testing","start":419,"end":467,"specifiers":[{"specifier":"TestUtil"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":468,"end":521,"specifiers":[{"specifier":"NgbModule"}]},{"libraryName":"modules.core.component","start":522,"end":622,"specifiers":[{"specifier":"ProgressIndicationComponent"}]},{"libraryName":"modules.core.service","start":623,"end":717,"specifiers":[{"specifier":"ProgressIndicationService"}]},{"libraryName":"generated.model.grid","start":718,"end":784,"specifiers":[{"specifier":"TreeGridRows"}]},{"libraryName":"component","start":785,"end":815,"specifiers":[{"specifier":"Style"}]},{"libraryName":"generated.property.grid","start":816,"end":883,"specifiers":[{"specifier":"GridColumns"}]},{"libraryName":"generated.rpc","start":884,"end":955,"specifiers":[{"specifier":"TreeGridRpcService"}]},{"libraryName":"...testing","start":956,"end":1014,"specifiers":[{"specifier":"ConstantsUtil"}]},{"libraryName":"component.grid.enums","start":1015,"end":1090,"specifiers":[{"specifier":"GridLoadingOverlayType"}]},{"libraryName":"modules.core.storage","start":1091,"end":1159,"specifiers":[{"specifier":"WebbpmStorage"}]},{"libraryName":"component.grid.utils","start":1160,"end":1231,"specifiers":[{"specifier":"GridColumnStateUtils"}]},{"libraryName":"modules.core.service","start":1232,"end":1314,"specifiers":[{"specifier":"LocalStorageService"}]},{"libraryName":"generated.property.grid","start":1315,"end":1380,"specifiers":[{"specifier":"ColumnSort"}]},{"libraryName":"generated.ru.cg.webbpm.modules.database.api.dao.option","start":1381,"end":1475,"specifiers":[{"specifier":"SortOrder"}]}],"exports":[],"declarations":[{"name":"TEXT","isConst":true,"isExported":false,"start":1552,"end":1586},{"name":"COL_ID","isConst":true,"isExported":false,"start":1589,"end":1611},{"name":"COL_ID_REINIT","isConst":true,"isExported":false,"start":1614,"end":1648},{"name":"COL_SELECTOR","isConst":true,"isExported":false,"start":1651,"end":1695},{"name":"COL_SELECTOR_REINIT","isConst":true,"isExported":false,"start":1698,"end":1756},{"name":"DEFAULT_COLUMN_WIDTH","isConst":true,"isExported":false,"start":1759,"end":1792},{"name":"COLUMN_WIDTH","isConst":true,"isExported":false,"start":1795,"end":1820},{"name":"COLUMN_HEIGHT","isConst":true,"isExported":false,"start":1823,"end":1848},{"name":"STYLE_COLUMN_WIDTH","isConst":true,"isExported":false,"start":1851,"end":1905},{"name":"STYLE_COLUMN_HEIGHT","isConst":true,"isExported":false,"start":1908,"end":1965},{"name":"PARENT_LEVEL","isConst":true,"isExported":false,"start":1968,"end":2007},{"name":"CHILD_LEVEL","isConst":true,"isExported":false,"start":2010,"end":2048},{"name":"PARENT_GROUP_VALUE","isConst":true,"isExported":false,"start":2051,"end":2087},{"name":"PARENT_VALUE","isConst":true,"isExported":false,"start":2090,"end":2126},{"name":"CHILD_GROUP_VALUE1","isConst":true,"isExported":false,"start":2129,"end":2165},{"name":"CHILD_GROUP_VALUE2","isConst":true,"isExported":false,"start":2168,"end":2204},{"name":"CHILD_VALUE","isConst":true,"isExported":false,"start":2207,"end":2241},{"name":"COLUMN_NAME","isConst":true,"isExported":false,"start":2244,"end":2273},{"name":"CTRL_CLICK","isConst":true,"isExported":false,"start":2276,"end":2381},{"name":"component","isConst":false,"isExported":false,"type":"TreeGrid","start":2385,"end":2409},{"name":"fixture","isConst":false,"isExported":false,"type":"ComponentFixture","start":2412,"end":2452},{"name":"treeGridRpcService","isConst":false,"isExported":false,"type":"jasmine.SpyObj","start":2455,"end":2514},{"name":"progressIndicationSpy","isConst":false,"isExported":false,"type":"ProgressIndicationService","start":2517,"end":2570},{"name":"gridColumns","isConst":false,"isExported":false,"type":"GridColumns","start":2573,"end":2602},{"name":"gridColumn1","isConst":false,"isExported":false,"type":"GridColumn","start":2605,"end":2633},{"name":"gridColumn2","isConst":false,"isExported":false,"type":"GridColumn","start":2636,"end":2664},{"name":"treeGridRows","isConst":false,"isExported":false,"start":2667,"end":2684},{"name":"localStorageServiceSpy","isConst":false,"isExported":false,"type":"jasmine.SpyObj","start":2687,"end":2751},{"name":"el","isConst":false,"isExported":false,"type":"HTMLElement","start":2754,"end":2774},{"name":"gridApi","isConst":false,"isExported":false,"start":2777,"end":2789},{"name":"columnSort","isConst":false,"isExported":false,"start":4860,"end":4894},{"name":"getColumnDef","isExported":false,"isAsync":false,"start":6041,"end":6131,"parameters":[{"name":"fieldName","type":"string","start":6063,"end":6080}],"variables":[]},{"name":"triggerInitGrid","isExported":false,"isAsync":false,"start":6135,"end":6291,"parameters":[],"variables":[]},{"name":"childCount","isConst":true,"isExported":false,"start":6716,"end":6774},{"name":"groupValues","isConst":true,"isExported":false,"start":6988,"end":7047},{"name":"cellValues","isConst":true,"isExported":false,"start":7189,"end":7283},{"name":"containerWidth","isConst":true,"isExported":false,"start":7773,"end":7867},{"name":"columnWidth","isConst":true,"isExported":false,"start":7872,"end":7948},{"name":"leftRange","isConst":false,"isExported":false,"start":7953,"end":8025},{"name":"rightRange","isConst":false,"isExported":false,"start":8030,"end":8102},{"name":"columnWidth","isConst":true,"isExported":false,"start":8334,"end":8417},{"name":"columnWidth","isConst":true,"isExported":false,"start":9311,"end":9394},{"name":"rows","isConst":true,"isExported":false,"start":10168,"end":10245},{"name":"rows","isConst":true,"isExported":false,"start":10432,"end":10509},{"name":"rowNumbers","isConst":true,"isExported":false,"start":10753,"end":10821},{"name":"rowNumbers","isConst":true,"isExported":false,"start":11150,"end":11218},{"name":"checkBoxes","isConst":false,"isExported":false,"start":11633,"end":11722},{"name":"grid","isConst":false,"isExported":false,"start":12774,"end":12811},{"name":"style","isConst":false,"isExported":false,"start":13092,"end":13116},{"name":"grid","isConst":true,"isExported":false,"type":"HTMLElement","start":13440,"end":13502}],"classes":[],"interfaces":[],"enums":[],"resources":[],"usages":["jasmine","createSpyObj","describe","TEXT","COL_ID","COL_ID_REINIT","COL_SELECTOR","COL_SELECTOR_REINIT","DEFAULT_COLUMN_WIDTH","COLUMN_WIDTH","COLUMN_HEIGHT","STYLE_COLUMN_WIDTH","STYLE_COLUMN_HEIGHT","PARENT_LEVEL","CHILD_LEVEL","PARENT_GROUP_VALUE","PARENT_VALUE","CHILD_GROUP_VALUE1","CHILD_GROUP_VALUE2","CHILD_VALUE","COLUMN_NAME","CTRL_CLICK","MouseEvent","view","window","bubbles","ctrlKey","component","TreeGrid","fixture","ComponentFixture","treeGridRpcService","SpyObj","TreeGridRpcService","progressIndicationSpy","ProgressIndicationService","gridColumns","GridColumns","gridColumn1","GridColumn","gridColumn2","treeGridRows","localStorageServiceSpy","LocalStorageService","el","HTMLElement","gridApi","TestUtil","beforeEach","async","TestBed","declarations","EmptyIfNullPipe","ProgressIndicationComponent","providers","Injector","provide","useValue","TaskParamsProvider","imports","AgGridModule","NgbModule","GridLoadingOverlayType","schema","table","entity","name","type","columnSort","ColumnSort","SortOrder","TreeGridRows","row_uid","entity$column1","entity$column2","showChildren","innerNodes","Promise","WebbpmStorage","GridColumnStateUtils","fieldName","it","expect","childCount","groupValues","cellValues","containerWidth","columnWidth","leftRange","Math","rightRange","triggerInitGrid","getColumnDef","fakeAsync","result","flush","rows","row","rowNumbers","i","Event","checkBoxes","checkBox","xit","grid","ConstantsUtil","style","Style"],"packageName":"component"},{"rootPath":"/","start":0,"end":5415,"imports":[{"libraryName":"@angular/core","start":0,"end":103,"specifiers":[{"specifier":"ChangeDetectionStrategy"},{"specifier":"ChangeDetectorRef"},{"specifier":"Component"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"modules.core.service","start":104,"end":177,"specifiers":[{"specifier":"MessagesService"}]},{"libraryName":"ag-grid-community","start":178,"end":290,"specifiers":[{"specifier":"IRowNode"},{"specifier":"GroupCellRenderer"},{"specifier":"ColDef"},{"specifier":"GroupCellRendererParams"},{"specifier":"RowClickedEvent"}]},{"libraryName":"generated.rpc","start":291,"end":362,"specifiers":[{"specifier":"TreeGridRpcService"}]},{"libraryName":"generated.model.grid","start":363,"end":429,"specifiers":[{"specifier":"TreeGridRows"}]},{"libraryName":"decorators","start":430,"end":476,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"decorators","start":477,"end":541,"specifiers":[{"specifier":"AdvancedProperty"}]},{"libraryName":"decorators","start":542,"end":588,"specifiers":[{"specifier":"NotNull"}]},{"libraryName":"component","start":589,"end":639,"specifiers":[{"specifier":"DynamicDataGrid"}]},{"libraryName":"generated.model","start":640,"end":689,"specifiers":[{"specifier":"Filter"}]},{"libraryName":"component.grid.utils","start":690,"end":757,"specifiers":[{"specifier":"GridColumnDefUtils"}]}],"exports":[],"declarations":[],"classes":[{"name":"TreeGrid","isExported":true,"start":759,"end":5414,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Component","parameters":["{\n selector: 'tree-grid',\n templateUrl: './../../../src/resources/template/component/TreeGrid.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n}"]}],"properties":[{"name":"messagesService","visibility":1,"type":"MessagesService","isOptional":false,"isStatic":false,"start":976,"end":1019,"decorators":[]},{"name":"treeGridRpcService","visibility":1,"type":"TreeGridRpcService","isOptional":false,"isStatic":false,"start":1023,"end":1072,"decorators":[]},{"name":"fixedRowName","visibility":1,"type":"string","isOptional":false,"isStatic":false,"start":1075,"end":1106,"decorators":[]},{"name":"selectGroupRowWithChildren","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":1110,"end":1223,"decorators":[{"name":"Visible","parameters":["multiselectable == true && checkboxInMainColumn == true"]}]},{"name":"checkboxInMainColumn","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":1226,"end":1263,"decorators":[]},{"name":"hideChildCount","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":1266,"end":1297,"decorators":[]},{"name":"collapseOnLoad","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":1300,"end":1331,"decorators":[]},{"name":"showFilteredChildren","visibility":2,"type":"boolean","isOptional":false,"isStatic":false,"start":1335,"end":1426,"decorators":[{"name":"Input","parameters":[]},{"name":"AdvancedProperty","parameters":[]},{"name":"NotNull","parameters":[]}]}],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":1509,"end":1646,"decorators":[],"parameters":[],"variables":[]},{"name":"initColumnDefs","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":1650,"end":2028,"decorators":[],"parameters":[],"variables":[{"name":"columns","isConst":false,"isExported":false,"start":1683,"end":1729},{"name":"colDefs","isConst":false,"isExported":false,"start":1734,"end":1802},{"name":"columnDef","isConst":false,"isExported":false,"type":"ColDef","start":1837,"end":1898}]},{"name":"initFirstColumn","isAbstract":false,"visibility":1,"isOptional":false,"isStatic":false,"isAsync":false,"start":2032,"end":2577,"decorators":[],"parameters":[{"name":"firstColumn","start":2058,"end":2069}],"variables":[]},{"name":"refreshData","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":2581,"end":2688,"decorators":[],"parameters":[],"variables":[{"name":"filters","isConst":false,"isExported":false,"type":"Filter[]","start":2614,"end":2656}]},{"name":"getNodeChildDetails","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":2739,"end":3021,"decorators":[{"name":"Visible","parameters":["false"]}],"parameters":[{"name":"node","start":2786,"end":2790}],"variables":[]},{"name":"loadGrid","isAbstract":false,"visibility":1,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":3025,"end":4049,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":3044,"end":3061}],"variables":[]},{"name":"selectRow","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4053,"end":4299,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"id","type":"string","start":4083,"end":4093}],"variables":[{"name":"node","isConst":false,"isExported":false,"type":"IRowNode","start":4152,"end":4201}]},{"name":"selectRows","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4303,"end":4585,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"ids","type":"string[]","start":4334,"end":4347}],"variables":[{"name":"node","isConst":false,"isExported":false,"start":4434,"end":4473}]},{"name":"expandAllRowGroups","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4589,"end":4671,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"collapseAllRowGroups","isAbstract":false,"visibility":2,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":4675,"end":4761,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"getRowModelType","isAbstract":false,"visibility":2,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":4765,"end":4828,"decorators":[],"parameters":[],"variables":[]},{"name":"reload","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":4832,"end":5032,"decorators":[],"parameters":[{"name":"filters","type":"Filter[]","start":4846,"end":4863}],"variables":[]},{"name":"applyCollapseOnLoad","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":5036,"end":5234,"decorators":[],"parameters":[{"name":"gridRows","start":5056,"end":5064}],"variables":[]},{"name":"collapseRecursively","isAbstract":false,"visibility":0,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":5238,"end":5412,"decorators":[],"parameters":[{"name":"row","start":5266,"end":5269}],"variables":[]}],"extendsClauses":["DynamicDataGrid"],"implementsClauses":[],"ctor":{"name":"TreeGrid","start":1430,"end":1505,"parameters":[{"name":"el","type":"ElementRef","start":1442,"end":1456},{"name":"cd","type":"ChangeDetectorRef","start":1458,"end":1479}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Promise","TreeGridRpcService","columns","colDefs","column","columnDef","ColDef","GridColumnDefUtils","firstColumn","GroupCellRenderer","checkbox","innerRenderer","params","suppressCount","GroupCellRendererParams","filters","Filter","Visible","node","group","children","expanded","gridRows","TreeGridRows","reason","Error","console","id","IRowNode","ids","filter","row","Component","selector","templateUrl","changeDetection","ChangeDetectionStrategy","DynamicDataGrid","messagesService","MessagesService","treeGridRpcService","fixedRowName","selectGroupRowWithChildren","checkboxInMainColumn","hideChildCount","collapseOnLoad","Input","AdvancedProperty","NotNull","showFilteredChildren"],"packageName":"component"},{"rootPath":"/","start":0,"end":599,"imports":[{"libraryName":"@angular/core","start":0,"end":41,"specifiers":[{"specifier":"Injectable"}]},{"libraryName":"common","start":42,"end":92,"specifiers":[{"specifier":"Validatable"}]}],"exports":[],"declarations":[],"classes":[{"name":"ValidationService","isExported":true,"start":94,"end":598,"accessors":[],"getters":[],"setters":[],"decorators":[{"name":"Injectable","parameters":["{providedIn: 'root'}"]}],"properties":[],"methods":[{"name":"validate","isAbstract":false,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":164,"end":596,"decorators":[],"parameters":[{"name":"validators","type":"Validatable[]","start":173,"end":198}],"variables":[{"name":"neededValidators","isConst":false,"isExported":false,"start":224,"end":498}]}],"extendsClauses":[],"implementsClauses":[]}],"interfaces":[],"enums":[],"resources":[],"usages":["validators","Validatable","Promise","neededValidators","validator","valid","result","Injectable","providedIn"],"packageName":"component"},{"rootPath":"/","start":0,"end":4448,"imports":[{"libraryName":"@angular/core","start":0,"end":67,"specifiers":[{"specifier":"ChangeDetectorRef"},{"specifier":"ElementRef"},{"specifier":"Input"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":68,"end":150,"specifiers":[{"specifier":"NgbModal"},{"specifier":"NgbModalOptions"},{"specifier":"NgbModalRef"}]},{"libraryName":"modules.core.service","start":151,"end":248,"specifiers":[{"specifier":"ProgressIndicationService"}]},{"libraryName":"webbpm.event","start":249,"end":296,"specifiers":[{"specifier":"Event"}]},{"libraryName":"directive","start":297,"end":387,"specifiers":[{"specifier":"ConfirmationDialogComponent"}]},{"libraryName":"decorators","start":388,"end":437,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"component","start":438,"end":473,"specifiers":[{"specifier":"Control"}]},{"libraryName":"webbpm.ui_scripting","start":474,"end":544,"specifiers":[{"specifier":"ActionService"}]},{"libraryName":"rxjs/operators","start":545,"end":583,"specifiers":[{"specifier":"filter"}]}],"exports":[],"declarations":[],"classes":[{"name":"AbstractButton","isExported":true,"start":614,"end":4447,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"caption","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":671,"end":705,"decorators":[{"name":"Input","parameters":[]}]},{"name":"confirmationText","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":708,"end":751,"decorators":[{"name":"Input","parameters":[]}]},{"name":"confirmBtnText","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":754,"end":834,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["confirmationText != null"]}]},{"name":"cancelConfirmBtnText","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":837,"end":923,"decorators":[{"name":"Input","parameters":[]},{"name":"Visible","parameters":["confirmationText != null"]}]},{"name":"clickEvent","visibility":2,"type":"Event","isOptional":false,"isStatic":false,"start":927,"end":998,"decorators":[{"name":"Visible","parameters":["false"]}]},{"name":"clickListeners","visibility":1,"type":"Function[]","isOptional":false,"isStatic":false,"start":1002,"end":1044,"decorators":[]},{"name":"ngbModal","visibility":1,"type":"NgbModal","isOptional":false,"isStatic":false,"start":1047,"end":1076,"decorators":[]},{"name":"confirmationDialogRef","visibility":1,"type":"NgbModalRef","isOptional":false,"isStatic":false,"start":1079,"end":1124,"decorators":[]},{"name":"options","visibility":1,"type":"NgbModalOptions","isOptional":false,"isStatic":false,"start":1127,"end":1194,"decorators":[]},{"name":"progressIndicationService","visibility":1,"type":"ProgressIndicationService","isOptional":false,"isStatic":false,"start":1197,"end":1260,"decorators":[]},{"name":"ready","visibility":0,"type":"boolean","isOptional":false,"isStatic":false,"start":1264,"end":1295,"decorators":[]}],"methods":[{"name":"initialize","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":1378,"end":1559,"decorators":[],"parameters":[],"variables":[]},{"name":"onClick","isAbstract":false,"visibility":2,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":1563,"end":2398,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[],"variables":[]},{"name":"doClickAndTrigger","isAbstract":false,"visibility":0,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":2402,"end":2999,"decorators":[],"parameters":[],"variables":[]},{"name":"isEnabled","isAbstract":false,"type":"boolean","isOptional":false,"isStatic":false,"isAsync":false,"start":3004,"end":3074,"decorators":[],"parameters":[],"variables":[]},{"name":"doClickActions","isAbstract":true,"type":"Promise","isOptional":false,"isStatic":false,"isAsync":false,"start":3078,"end":3117,"decorators":[],"parameters":[],"variables":[]},{"name":"closeConfirmationDialog","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":3121,"end":3248,"decorators":[],"parameters":[],"variables":[]},{"name":"addClickListener","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3252,"end":3367,"decorators":[],"parameters":[{"name":"onClickFunction","type":"Function","start":3269,"end":3294}],"variables":[]},{"name":"removeClickListener","isAbstract":false,"type":"void","isOptional":false,"isStatic":false,"isAsync":false,"start":3371,"end":3492,"decorators":[],"parameters":[{"name":"onClickFunction","type":"Function","start":3391,"end":3416}],"variables":[]},{"name":"setCaption","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":3496,"end":3594,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":3520,"end":3533}],"variables":[]},{"name":"setConfirmationText","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":3598,"end":3714,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":3631,"end":3644}],"variables":[]},{"name":"setСonfirmBtnText","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":3718,"end":3837,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":3756,"end":3769}],"variables":[]},{"name":"setCancelСonfirmBtnText","isAbstract":false,"visibility":2,"isOptional":false,"isStatic":false,"isAsync":false,"start":3841,"end":3972,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"value","type":"string","start":3885,"end":3898}],"variables":[]},{"name":"postStart","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":3976,"end":4445,"decorators":[],"parameters":[],"variables":[{"name":"actionService","isConst":false,"isExported":false,"start":4017,"end":4070},{"name":"subscription","isConst":false,"isExported":false,"start":4197,"end":4435}]}],"extendsClauses":["Control"],"implementsClauses":[],"ctor":{"name":"AbstractButton","start":1299,"end":1374,"parameters":[{"name":"el","type":"ElementRef","start":1311,"end":1325},{"name":"cd","type":"ChangeDetectorRef","start":1327,"end":1348}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","NgbModal","ProgressIndicationService","Visible","Promise","ConfirmationDialogComponent","reason","func","Function","console","onClickFunction","value","actionService","ActionService","subscription","filter","counter","author","Control","Input","caption","confirmationText","confirmBtnText","cancelConfirmBtnText","clickEvent","Event","clickListeners","ngbModal","confirmationDialogRef","NgbModalRef","options","NgbModalOptions","backdrop","progressIndicationService","ready"],"packageName":"component.button"},{"rootPath":"/","start":0,"end":532,"imports":[{"libraryName":"decorators","start":0,"end":49,"specifiers":[{"specifier":"Visible"}]},{"libraryName":"component.button","start":50,"end":98,"specifiers":[{"specifier":"AbstractButton"}]},{"libraryName":"@angular/core","start":99,"end":159,"specifiers":[{"specifier":"ChangeDetectorRef"},{"specifier":"ElementRef"}]}],"exports":[],"declarations":[],"classes":[{"name":"AbstractNavigatableButton","isExported":true,"start":198,"end":532,"accessors":[],"getters":[],"setters":[],"decorators":[],"properties":[{"name":"navigateTo","visibility":2,"type":"string","isOptional":false,"isStatic":false,"start":274,"end":300,"decorators":[]}],"methods":[{"name":"setNavigateTo","isAbstract":false,"isOptional":false,"isStatic":false,"isAsync":false,"start":383,"end":469,"decorators":[{"name":"Visible","parameters":[]}],"parameters":[{"name":"navigateTo","type":"string","start":410,"end":428}],"variables":[]},{"name":"getNavigateTo","isAbstract":false,"type":"string","isOptional":false,"isStatic":false,"isAsync":false,"start":473,"end":530,"decorators":[],"parameters":[],"variables":[]}],"extendsClauses":["AbstractButton"],"implementsClauses":[],"ctor":{"name":"AbstractNavigatableButton","start":304,"end":379,"parameters":[{"name":"el","type":"ElementRef","start":316,"end":330},{"name":"cd","type":"ChangeDetectorRef","start":332,"end":353}],"variables":[]}}],"interfaces":[],"enums":[],"resources":[],"usages":["el","ElementRef","cd","ChangeDetectorRef","Visible","navigateTo","author","AbstractButton"],"packageName":"component.button"},{"rootPath":"/","start":0,"end":6315,"imports":[{"libraryName":"@angular/core/testing","start":0,"end":95,"specifiers":[{"specifier":"async"},{"specifier":"ComponentFixture"},{"specifier":"fakeAsync"},{"specifier":"flush"},{"specifier":"TestBed"},{"specifier":"tick"}]},{"libraryName":"@angular/forms","start":96,"end":139,"specifiers":[{"specifier":"FormsModule"}]},{"libraryName":"@angular/common/http/testing","start":140,"end":209,"specifiers":[{"specifier":"HttpClientTestingModule"}]},{"libraryName":"@ng-bootstrap/ng-bootstrap","start":210,"end":263,"specifiers":[{"specifier":"NgbModule"}]},{"libraryName":"...testing","start":264,"end":315,"specifiers":[{"specifier":"TestUtil"}]},{"libraryName":"component.button","start":316,"end":348,"specifiers":[{"specifier":"Button"}]},{"libraryName":"modules.core.service","start":393,"end":490,"specifiers":[{"specifier":"ProgressIndicationService"}]},{"libraryName":"directive","start":491,"end":581,"specifiers":[{"specifier":"ConfirmationDialogComponent"}]},{"libraryName":"pipe","start":582,"end":644,"specifiers":[{"specifier":"EmptyIfNullPipe"}]},{"libraryName":"modules.bpmn.provider","start":645,"end":727,"specifiers":[{"specifier":"TaskParamsProvider"}]},{"libraryName":"component","start":728,"end":759,"specifiers":[{"specifier":"Style"}]},{"libraryName":"...testing","start":760,"end":821,"specifiers":[{"specifier":"ConstantsUtil"}]},{"libraryName":"webbpm.ui_scripting","start":822,"end":892,"specifiers":[{"specifier":"ActionService"}]},{"libraryName":"rxjs/operators","start":893,"end":931,"specifiers":[{"specifier":"filter"}]}],"exports":[],"declarations":[{"name":"TEXT","isConst":true,"isExported":false,"start":962,"end":996},{"name":"component","isConst":false,"isExported":false,"type":"Button","start":999,"end":1021},{"name":"fixture","isConst":false,"isExported":false,"type":"ComponentFixture