From c43cf85dec04f73e0376c37fb275507a40589e05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D1=82=D0=BE=D0=B1=D0=B8=D0=BD=20=D0=95?= =?UTF-8?q?=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= Date: Wed, 21 Aug 2024 12:20:40 +0300 Subject: [PATCH] initial commit --- .gitignore | 67 + .studioignore | 29 + Dockerfile | 22 + README.md | 224 + backend/backend-deps.txt | 222 + backend/deps3.txt | 222 + backend/deps4.txt | 222 + backend/deps5.txt | Bin 0 -> 17596 bytes backend/frontend-deps.txt | 82 + backend/pom.xml | 306 + backend/src/main/java/AppConfig.java | 67 + backend/src/main/java/WebAppInitializer.java | 31 + .../java/dto/jivoprofile/JivoProfileDto.java | 35 + .../chart/BarMockChartV2Service.java | 26 + .../chart/DoughnutMockChartV2Service.java | 22 + .../chart/ErvuMultiChartDataSetService.java | 237 + .../chart/RoundSingleChartDataSetService.java | 316 + .../AbstractRoundLabelConfiguration.java | 29 + .../label/DefaultRoundLabelConfiguration.java | 42 + .../chart/label/RoundLabelConfiguration.java | 13 + .../chart/label/StaticRoundLabelDataSet.java | 16 + .../converter/UUIDValueConverter.java | 20 + .../filter/AbstractFilterReference.java | 58 + .../component/filter/FilterReference.java | 16 + .../component/filter/FilterReferences.java | 45 + .../filter/GraphFilterReference.java | 25 + .../filter/StaticFilterReference.java | 22 + .../db_beans/DefaultCatalog.java | 105 + .../db_beans/appeals/Appeals.java | 76 + .../ervu_dashboard/db_beans/appeals/Keys.java | 52 + .../db_beans/appeals/Tables.java | 38 + .../db_beans/appeals/tables/MainProfile.java | 317 + .../appeals/tables/ReasonsAppeal.java | 333 + .../db_beans/appeals/tables/ReviewRating.java | 323 + .../db_beans/appeals/tables/TopicAppeal.java | 341 + .../tables/records/MainProfileRecord.java | 172 + .../tables/records/ReasonsAppealRecord.java | 213 + .../tables/records/ReviewRatingRecord.java | 147 + .../tables/records/TopicAppealRecord.java | 234 + .../db_beans/main_dashboard/Keys.java | 49 + .../main_dashboard/MainDashboard.java | 76 + .../db_beans/main_dashboard/Tables.java | 38 + .../main_dashboard/tables/Appeals.java | 346 + .../tables/RecruitmentCampaign.java | 388 + .../tables/TotalRegistered.java | 365 + .../tables/WaitingRegistration.java | 376 + .../tables/records/AppealsRecord.java | 249 + .../records/RecruitmentCampaignRecord.java | 347 + .../tables/records/TotalRegisteredRecord.java | 288 + .../records/WaitingRegistrationRecord.java | 313 + .../ervu_dashboard/db_beans/public_/Keys.java | 63 + .../db_beans/public_/Public.java | 104 + .../db_beans/public_/Routines.java | 41 + .../db_beans/public_/Tables.java | 62 + .../public_/routines/UuidGenerateV4.java | 38 + .../db_beans/public_/tables/Citizen.java | 438 + .../db_beans/public_/tables/Education.java | 283 + .../db_beans/public_/tables/Employment.java | 283 + .../db_beans/public_/tables/Gender.java | 297 + .../public_/tables/MaritalStatus.java | 308 + .../public_/tables/PubRecruitment.java | 726 + .../public_/tables/ReasonRegistration.java | 284 + .../db_beans/public_/tables/Subpoena.java | 281 + .../public_/tables/records/CitizenRecord.java | 352 + .../tables/records/EducationRecord.java | 94 + .../tables/records/EmploymentRecord.java | 94 + .../public_/tables/records/GenderRecord.java | 94 + .../tables/records/MaritalStatusRecord.java | 109 + .../tables/records/PubRecruitmentRecord.java | 577 + .../records/ReasonRegistrationRecord.java | 96 + .../tables/records/SubpoenaRecord.java | 232 + .../ervu_dashboard/db_beans/ratings/Keys.java | 50 + .../db_beans/ratings/Ratings.java | 69 + .../db_beans/ratings/Tables.java | 32 + .../ratings/tables/AppearSubppoena.java | 324 + .../tables/ConsiderationComplaint.java | 329 + .../db_beans/ratings/tables/Recruitment.java | 328 + .../tables/records/AppearSubppoenaRecord.java | 149 + .../records/ConsiderationComplaintRecord.java | 155 + .../tables/records/RecruitmentRecord.java | 162 + .../db_beans/recruitment_campaign/Keys.java | 45 + .../RecruitmentCampaign.java | 69 + .../db_beans/recruitment_campaign/Tables.java | 32 + .../recruitment_campaign/tables/Appeals.java | 345 + .../tables/Recruitment.java | 337 + .../tables/Subpoenas.java | 403 + .../tables/records/AppealsRecord.java | 238 + .../tables/records/RecruitmentRecord.java | 212 + .../tables/records/SubpoenasRecord.java | 399 + .../db_beans/security/Keys.java | 86 + .../db_beans/security/Security.java | 125 + .../db_beans/security/Tables.java | 80 + .../db_beans/security/tables/AccessLevel.java | 284 + .../db_beans/security/tables/Authority.java | 294 + .../db_beans/security/tables/EsiaUser.java | 289 + .../tables/LinkUserAccountUserGroup.java | 315 + .../tables/LinkUserGroupUserRole.java | 310 + .../tables/LinkUserRoleAuthority.java | 310 + .../db_beans/security/tables/OrgUnit.java | 312 + .../db_beans/security/tables/UserAccount.java | 395 + .../tables/UserAccountRefreshToken.java | 302 + .../db_beans/security/tables/UserGroup.java | 346 + .../db_beans/security/tables/UserRole.java | 322 + .../tables/records/AccessLevelRecord.java | 94 + .../tables/records/AuthorityRecord.java | 96 + .../tables/records/EsiaUserRecord.java | 94 + .../LinkUserAccountUserGroupRecord.java | 117 + .../records/LinkUserGroupUserRoleRecord.java | 113 + .../records/LinkUserRoleAuthorityRecord.java | 113 + .../tables/records/OrgUnitRecord.java | 124 + .../tables/records/UserAccountRecord.java | 261 + .../UserAccountRefreshTokenRecord.java | 134 + .../tables/records/UserGroupRecord.java | 126 + .../tables/records/UserRoleRecord.java | 111 + .../ervu_dashboard/db_beans/space/Keys.java | 37 + .../ervu_dashboard/db_beans/space/Space.java | 76 + .../ervu_dashboard/db_beans/space/Tables.java | 38 + .../space/tables/MilitaryCommissariat.java | 234 + .../space/tables/MilitaryDistrict.java | 230 + .../db_beans/space/tables/Region.java | 320 + .../space/tables/Testrecruitment.java | 223 + .../records/MilitaryCommissariatRecord.java | 85 + .../records/MilitaryDistrictRecord.java | 81 + .../space/tables/records/RegionRecord.java | 79 + .../tables/records/TestrecruitmentRecord.java | 79 + .../db_beans/total_registered/Keys.java | 69 + .../db_beans/total_registered/Tables.java | 73 + .../total_registered/TotalRegistered.java | 116 + .../db_beans/total_registered/tables/Age.java | 392 + .../total_registered/tables/Busyness.java | 339 + .../total_registered/tables/ChildMinor.java | 359 + .../tables/DriverLicense.java | 371 + .../tables/EducationLevel.java | 353 + .../tables/MaritalStatus.java | 328 + .../total_registered/tables/RegMilCat.java | 391 + .../tables/RemovedRegistry.java | 385 + .../total_registered/tables/Subpoenas.java | 419 + .../tables/records/AgeRecord.java | 386 + .../tables/records/BusynessRecord.java | 230 + .../tables/records/ChildMinorRecord.java | 281 + .../tables/records/DriverLicenseRecord.java | 314 + .../tables/records/EducationLevelRecord.java | 258 + .../tables/records/MaritalStatusRecord.java | 188 + .../tables/records/RegMilCatRecord.java | 364 + .../tables/records/RemovedRegistryRecord.java | 348 + .../tables/records/SubpoenasRecord.java | 455 + .../main/java/ervu_dashboard/model/Font.java | 51 + .../model/chart/BarMockDataset.java | 20 + .../model/chart/BarMockDatasets.java | 14 + .../model/chart/ChartDatasetType.java | 11 + .../model/chart/ColumnAggregationData.java | 30 + .../model/chart/ColumnAggregationDataSet.java | 36 + .../model/chart/DoughnutMockDataset.java | 18 + .../model/chart/DoughnutMockDatasets.java | 12 + .../model/chart/ErvuChartDataSetDto.java | 46 + .../chart/round/RoundAggregationData.java | 26 + .../chart/round/RoundAggregationDataSet.java | 30 + .../chart/round/RoundChartColumnSort.java | 33 + .../model/chart/round/RoundChartDataDto.java | 33 + .../round/RoundChartDataSetConfiguration.java | 42 + .../chart/round/RoundChartDataSetDto.java | 65 + .../round/RoundChartDataSetDtoWrapper.java | 33 + .../round/RoundColumnAggregationData.java | 30 + .../round/RoundColumnAggregationDataSet.java | 13 + .../model/chart/round/RoundStaticData.java | 37 + .../model/chart/round/RoundStaticDataSet.java | 12 + .../chart/round/label/ChartLabelModel.java | 50 + .../ru/micord/security/SecurityConfig.java | 25 + .../ProjectDefaultValueLoaderServiceImpl.java | 89 + backend/src/main/resources/.gitkeep | 0 config.md | 749 + config/.gitignore | 2 + config/Dockerfile | 44 + config/Dockerfile.build | 10 + config/Dockerfile.secdb | 5 + config/JDK_version | 1 + config/browsers.json | 31 + config/create-databases.sh | 12 + config/docker-compose.secdb.yaml | 12 + config/docker-compose.selenoid.yaml | 28 + config/docker-compose.tests.yaml | 41 + config/docker-compose.tomcat.yaml | 31 + config/docker-compose.yaml | 31 + config/entrypoint.sh | 48 + config/patches/add-logger-database.cli | 3 + config/patches/default.cli | 30 + config/patches/system/add-demo-user.sh | 1 + .../patches/system/add-postgresql-driver.cli | 5 + config/patches/system/init.cli | 14 + config/secdb.sql | 25 + config/standalone/dev/standalone.xml | 561 + config/testing.env | 37 + config/tomcat/tomee/bin/setenv.sh | 17 + config/tomcat/tomee/conf/context.xml | 36 + config/tomcat/tomee/conf/tomcat-users.xml | 39 + config/tomcat/tomee/conf/webbpm.properties | 15 + .../webapps/manager/META-INF/context.xml | 26 + distribution/pom.xml | 66 + frontend/.npmrc | 1 + frontend/angular.json | 71 + frontend/bs-config.json | 10 + frontend/index.html | 24 + frontend/index.webpack.html | 12 + frontend/package-lock.json | 10689 ++++++ frontend/package.json | 101 + frontend/pom.xml | 113 + frontend/preview.html | 24 + frontend/save.ts.metadata.js | 72 + frontend/src/resources/app-config.json | 20 + frontend/src/resources/app.version | 1 + frontend/src/resources/css/components-app.css | 1584 + .../resources/css/components-dashboard.css | 1262 + frontend/src/resources/css/inbox-app.css | 342 + .../src/resources/css/inbox-dashboard.css | 333 + frontend/src/resources/css/structure.css | 846 + frontend/src/resources/css/style.css | 10 + .../src/resources/fonts/gilroy-extrabold.otf | Bin 0 -> 54956 bytes frontend/src/resources/fonts/gilroy-light.otf | Bin 0 -> 54704 bytes .../src/resources/fonts/gilroy-medium.ttf | Bin 0 -> 84564 bytes .../src/resources/fonts/gilroy-regular.ttf | Bin 0 -> 84300 bytes .../src/resources/fonts/gilroy-semibold.ttf | Bin 0 -> 80716 bytes frontend/src/resources/img/access_denied.png | Bin 0 -> 855 bytes frontend/src/resources/img/admin.png | Bin 0 -> 811 bytes frontend/src/resources/img/bg_image.png | Bin 0 -> 1728793 bytes frontend/src/resources/img/country-flags.jpg | Bin 0 -> 31142 bytes frontend/src/resources/img/create.png | Bin 0 -> 673 bytes .../resources/img/icons/dots-six-vertical.svg | 10 + .../src/resources/img/icons/settings-sm.svg | 3 + frontend/src/resources/img/logo-full.png | Bin 0 -> 8391 bytes frontend/src/resources/img/logo-full.svg | 28 + frontend/src/resources/img/logo.png | Bin 0 -> 7719 bytes frontend/src/resources/img/progress.gif | Bin 0 -> 6794 bytes frontend/src/resources/img/project.png | Bin 0 -> 712 bytes .../src/resources/img/svg/arrow-right-wt.svg | 4 + .../src/resources/img/svg/arrow-right.svg | 3 + frontend/src/resources/img/svg/bg-diamond.svg | 24 + frontend/src/resources/img/svg/bg-pers.svg | 34 + frontend/src/resources/img/svg/close.svg | 3 + frontend/src/resources/img/svg/mark.svg | 3 + frontend/src/resources/img/tasks.png | Bin 0 -> 351 bytes .../template/app/component/access_denied.html | 4 + .../template/app/component/app_footer.html | 6 + .../template/app/component/app_header.html | 10 + .../app/component/application_version.html | 1 + .../app/component/progress-indication.html | 3 + .../template/ervu-dashboard/ErvuChartV2.html | 3 + .../ervu-dashboard/FilterContainer.html | 8 + .../resources/template/preview/preview.html | 3 + .../template/preview/preview_container.html | 1 + .../src/resources/template/webbpm/home.html | 6 + .../src/resources/template/webbpm/page.html | 1 + .../src/resources/template/webbpm/webbpm.html | 12 + .../component/chart/ChartUtils.ts | 30 + .../component/chart/ErvuChartV2.ts | 312 + .../component/chart/model/AxisGridSettings.ts | 4 + .../component/chart/model/AxisSettings.ts | 8 + .../chart/model/AxisTicksSettings.ts | 3 + .../component/chart/model/ChartBarSettings.ts | 6 + .../chart/model/ChartLegendSettings.ts | 19 + .../chart/plugin/ArcBackgroundChartPlugin.ts | 54 + .../chart/plugin/BarDataLabelChartPlugin.ts | 48 + .../component/chart/plugin/ChartPlugin.ts | 13 + .../plugin/DoughnutCenterLabelsPlugin.ts | 127 + .../plugin/RoundArcCornersChartPlugin.ts | 42 + .../plugin/formatters/ChartLabelFormatter.ts | 7 + ...itsLabelReplaceValueChartLabelFormatter.ts | 58 + .../model/ArcDatasetBackgroundConfig.ts | 8 + .../component/filter/FilterContainer.ts | 162 + .../component/filter/FilterGroupDelegate.ts | 107 + .../formatter/FormatterUtils.ts | 63 + .../formatter/ReplaceValueTextFormatter.ts | 19 + .../UnitsLabelReplaceValueTextFormatter.ts | 53 + .../formatter/model/ReplaceValueModel.ts | 4 + frontend/src/ts/main.aot.ts | 8 + frontend/src/ts/main.ts | 7 + .../src/ts/modules/app/app-routing.module.ts | 63 + frontend/src/ts/modules/app/app.module.ts | 62 + .../app/component/access-denied.component.ts | 11 + .../app/component/app-footer.component.ts | 9 + .../app/component/app-header.component.ts | 15 + .../app-progress-indication.component.ts | 11 + .../application-version.component.ts | 24 + .../app-progress-indication.service.ts | 95 + .../component/preview-container.component.ts | 9 + .../preview/component/preview.component.ts | 9 + .../modules/preview/preview-routing.module.ts | 20 + .../src/ts/modules/preview/preview.main.ts | 7 + .../src/ts/modules/preview/preview.module.ts | 53 + .../http-preview-interceptor.service.ts | 16 + .../webbpm/component/home.component.ts | 9 + .../webbpm/component/webbpm.component.ts | 34 + .../handler/global-error.handler.prod.ts | 10 + .../webbpm/handler/global-error.handler.ts | 35 + .../interceptor/default-interceptors.prod.ts | 12 + .../interceptor/default-interceptors.ts | 9 + .../http-security-error-interceptor.dev.ts | 31 + .../modules/webbpm/webbpm-routing.module.ts | 29 + .../src/ts/modules/webbpm/webbpm.module.ts | 52 + frontend/src/ts/page.routing.d.ts | 3 + frontend/src/ts/polyfills.ts | 59 + frontend/src/ts/vendor.ts | 38 + frontend/systemjs.config.js | 93 + frontend/systemjs.preview.config.js | 92 + frontend/tsconfig.aot.json | 42 + frontend/tsconfig.json | 40 + frontend/webpack.aot.config.js | 136 + packages/.gitkeep | 0 .../.flattened-pom.xml | 78 + .../META-INF/MANIFEST.MF | 4 + .../META-INF/components-package.xml | 30 + .../BpmnStartProcessVariable.ts.html | 71 + .../docs/component/buttons/index.html | 70 + ...び契ミコミスミセミソミコムダミソミオムミームひク_ミクミキ_ミウムミームミー_ムムτ禍スミセムムひク_ミスミー_ムムびミーミスミクムムダ.html | 86 + ...クムび契ミコミスミセミソミコムダミソミオムミームひク_ミセムびミオムひー_ミクミキ_ムミセムミシム祇ミスミー_ムムびミーミスミクムムダ.html | 87 + .../ミ墟スミセミソミコミー_ミソミオムミームひク_ミクミキ_ミウムミームミー_ムムτ禍スミセムムひク.html | 118 + .../ミ墟スミセミソミコミー_ミソミオムミームひク_ミセムびミオムひー_ミクミキ_ムミセムミシム.html | 117 + ...ミーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミイム巾アミセムミー_ミスミー_ムムびミーミスミクムムダ.html | 90 + ...ミセミアミーミイミクムび契ミコミスミセミソミコムダミイム巾キミセミイミー_ミセム威クミアミコミク_ミスミー_ムムびミーミスミクムムダ.html | 80 + ...セミアミーミイミクムび契ミコミスミセミソミコムダミイム巾ソミセミサミスミオミスミクム柔SQL_ミスミー_ムムびミーミスミクムムダ.html | 103 + ...セミアミーミイミクムび契ミコミスミセミソミコムダミエミサム柔ムミクミサム袴びミームミクミク_ミスミー_ムムびミーミスミクムムダ.html | 81 + ...ミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミキミーミウムムσキミコミク_ミスミー_ムムびミーミスミクムムダ.html | 82 + .../ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミスミー_ムムびミーミスミクムムダ.html | 86 + ...コ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミスミーミイミクミウミームミクミク_ミスミー_ムムびミーミスミクムムダ.html | 84 + ...ミーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミセムひシミオミスム祇ミスミー_ムムびミーミスミクムムダ.html | 82 + ...ミアミーミイミクムび契ミコミスミセミソミコムダミセムミクムムひコミク_ムミクミサム袴びミー_ミスミー_ムムびミーミスミクムムダ.html | 83 + ..._ミエミセミアミーミイミクムび契ミコミスミセミソミコムダムミセムムミーミスミオミスミクム柔ミスミー_ムムびミーミスミクムムダ.html | 86 + ...ミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダムσエミーミサミオミスミクム柔ミスミー_ムムびミーミスミクムムダ.html | 84 + .../docs/component/buttons/ミ墟スミセミソミコミー.html | 105 + .../docs/component/buttons/ミ墟スミセミソミコミー_ミイム巾アミセムミー.html | 117 + .../buttons/ミ墟スミセミソミコミー_ミイム巾キミセミイミー_ミセム威クミアミコミク.html | 172 + .../buttons/ミ墟スミセミソミコミー_ミイム巾ソミセミサミスミオミスミクム柔SQL.html | 117 + .../ミ墟スミセミソミコミー_ミイム巾ソミセミサミスミオミスミクム柔ミアミクミキミスミオム-ミソムミセムミオムムミー.html | 86 + .../buttons/ミ墟スミセミソミコミー_ミエミサム柔ムミクミサム袴びミームミクミク.html | 110 + .../component/buttons/ミ墟スミセミソミコミー_ミキミーミウムムσキミコミク.html | 115 + .../ミ墟スミセミソミコミー_ミキミーミソムτミコミー_ミアミクミキミスミオム-ミソムミセムミオムムミー.html | 81 + .../component/buttons/ミ墟スミセミソミコミー_ミスミーミイミクミウミームミクミク.html | 107 + .../docs/component/buttons/ミ墟スミセミソミコミー_ミセムひシミオミスム.html | 107 + .../buttons/ミ墟スミセミソミコミー_ミセムミクムムひコミク_ムミクミサム袴びミー.html | 118 + .../component/buttons/ミ墟スミセミソミコミー_ミソミセミエミソミクムミク.html | 152 + .../buttons/ミ墟スミセミソミコミー_ミソムミセミイミオムミコミク_ミソミセミエミソミクムミク.html | 100 + .../component/buttons/ミ墟スミセミソミコミー_ムミセムムミーミスミオミスミクム.html | 112 + .../component/buttons/ミ墟スミセミソミコミー_ムσエミーミサミオミスミクム.html | 110 + .../docs/component/buttons/ミ墟スミセミソミコミク.html | 69 + ..._ContainerValueByEventLoaderRpcService.html | 53 + .../docs/component/containers/index.html | 130 + .../containers/ミ漬オムムひクミコミーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム.html | 162 + .../docs/component/containers/ミ漬コミサミーミエミコミー.html | 92 + ...イミサミオミスミクミオ_ミ漬コミサミーミエミコミセミケ_ミ渙オムミオムミセミエ_ミクミキ_ムひオミコムτ禍オミケ_ミスミー_ミソミセムミサミオミエムτ紗禾τ.html | 82 + ...ミイミサミオミスミクミオ_ミ漬コミサミーミエミコミセミケ_ミ渙オムミオムミセミエ_ミクミキ_ムひオミコムτ禍オミケ_ミスミー_ミソムミオミエム巾エムτ禾τ.html | 82 + ...ムミーミイミサミオミスミクミオ_ミ漬コミサミーミエミコミセミケ_ミ渙オムミオムミセミエ_ミスミー_ミイミコミサミーミエミコムダミソミセ_ミスミセミシミオムム.html | 82 + .../containers/ミ寅セムミクミキミセミスムひーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム.html | 98 + .../component/containers/ミ酉ムσソミソミー_ミソミセミサミオミケ.html | 123 + .../docs/component/containers/ミ頒クミーミサミセミウ.html | 118 + .../component/containers/ミ頒クミーミサミセミウ_ミ柘巾キミイミームび.html | 78 + .../component/containers/ミ頒クミーミサミセミウ_ミ。ミコムム錦び.html | 79 + ...契ミコミセミシミソミセミスミオミスムびダミ漬オムムひクミコミーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム_ミスミー_ムムびミーミスミクムムダ.html | 166 + ...ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ漬コミサミーミエミコミー_ミスミー_ムムびミーミスミクムムダ.html | 115 + ...ミコミセミシミソミセミスミオミスムびダミ寅セムミクミキミセミスムひーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム_ミスミー_ムムびミーミスミクムムダ.html | 173 + ...アミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ酉ムσソミソミー_ミソミセミサミオミケ_ミスミー_ムムびミーミスミクムムダ.html | 157 + ...ミクムび契ミコミセミシミソミセミスミオミスムびダミ墟セミスムひオミケミスミオム_ミイミコミサミーミエミセミコ_ミスミー_ムムびミーミスミクムムダ.html | 90 + ...イミクムび契ミコミセミシミソミセミスミオミスムびダミ墟セミスムひオミケミスミオム_ミコミスミセミソミセミコ_ミスミー_ムムびミーミスミクムムダ.html | 191 + ...ーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ斷ーミアミセム_ムミクミサム袴びミセミイ_ミスミー_ムムびミーミスミクムムダ.html | 135 + ...び契ミコミセミシミソミセミスミオミスムびダミ。ミイミセムミームミクミイミーミオミシミーム柔ミソミーミスミオミサム契ミスミー_ムムびミーミスミクムムダ.html | 161 + ...コ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ、ミセムミシミー_ミスミー_ムムびミーミスミクムムダ.html | 184 + .../ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ榧コミスミセ_.html | 137 + ...ミサミセミウ_ミエミサム柔ミイム巾イミセミエミー_ミソムミオミエムσソムミオミカミエミオミスミクム柔ミソミセミサム糊キミセミイミームひオミサム酸ミスミー_ムムびミーミスミクムミオ_.html | 146 + .../containers/ミ墟セミスムひオミケミスミオム_ミイミコミサミーミエミセミコ.html | 121 + .../containers/ミ墟セミスムひオミケミスミオム_ム\ミコミスミセミソミコミーミシミク.html | 98 + .../docs/component/containers/ミ墟セミスムひオミケミスミオムム.html | 53 + .../component/containers/ミ斷ーミアミセム_ムミクミサム袴びミセミイ.html | 181 + .../docs/component/containers/ミ榧コミスミセ.html | 179 + .../containers/ミ。ミイミセムミームミクミイミーミオミシミーム柔ミソミーミスミオミサム.html | 107 + .../containers/ミ。ムひクミサミク-ミコミセミスムひオミケミスミオムミセミイ.html | 129 + .../docs/component/containers/ミ、ミセムミシミー.html | 162 + ...ミ、ミセムミシミー_ミアミオミキ_ミソミオムミオムミセミエミー_ミ樮ミスミセミイミスム巾オ_ミソミームミーミシミオムびム.html | 56 + .../ミ、ミセムミシミー_ム\ミソミオムミオムミセミエミセミシ_ミ樮ミスミセミイミスム巾オ_ミソミームミーミシミオムびム.html | 56 + .../docs/component/control-properties.html | 140 + .../editable-grids/EditableGrid.html | 244 + .../component/fields/EditableOneToMany.html | 118 + .../docs/component/fields/ManyToMany.html | 464 + .../component/fields/ManyToManyField.html | 115 + .../docs/component/fields/OneToMany.html | 170 + .../docs/component/fields/TreeField.html | 146 + .../docs/component/fields/filters/index.html | 63 + ...ミーミイミクムび契ミ、ミクミサム袴び_ミソミセ_ムミクムミサミセミイミセミシムダミソミセミサム酸ミスミー_ムムびミーミスミクムムダ.html | 193 + ...災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコムダミスミー_ムムびミーミスミクムムダ.html | 159 + ...ミアミーミイミクムび契ム災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ミエミームひオ_ミスミー_ムムびミーミスミクムムダ.html | 136 + ...ミオミスム_ミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミシミスミセミウミセムムびミセムミスミセミウミセ_ミイミイミセミエミー_ミスミー_ムムびミーミスミクムムダ.html | 172 + ...ム_ミ、ミクミサム袴び_ミソミセ_ムムひームひクムミスミセミシムダミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコムダミスミー_ムムびミーミスミクムムダ.html | 140 + ...契ム災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ムひオミコムムひセミイミセミシムダミソミセミサム酸ミスミー_ムムびミーミスミクムムダ.html | 178 + ...キミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ、ミクミサム袴び_ミソミセ_ミ、ミサミーミウムダ.html | 181 + ...ム契ミコミセミシミソミセミスミオミスムびダミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミーミエムミオムミー_ミ、ミ侑籍。_ミスミー_ムムびミーミスミクムミオ_.html | 144 + ...スミオミスムびダミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム柔ミスミー_ムムびミーミスミクムミオ_.html | 240 + .../filters/ミ、ミクミサム袴び_ミソミセ_ミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコム.html | 116 + .../fields/filters/ミ、ミクミサム袴び_ミソミセ_ミエミームひオ.html | 140 + .../filters/ミ、ミクミサム袴び_ミソミセ_ミコミセミシミソミセミスミオミスムひオ_ミ、ミサミーミウ.html | 115 + .../filters/ミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミーミエムミオムミー_ミ、ミ侑籍。.html | 173 + ...クミサム袴び_ミソミセ_ミソミセミサム酸ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html | 241 + .../ミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミシミスミセミウミセムムびミセムミスミセミウミセ_ミイミイミセミエミー.html | 193 + ...ミクミサム袴び_ミソミセ_ムムひームひクムミスミセミシムダミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコム.html | 118 + .../filters/ミ、ミクミサム袴び_ミソミセ_ムひオミコムムひセミイミセミシムダミソミセミサム.html | 181 + .../filters/ミ、ミクミサム袴び_ミソミセ_ムミクムミサミセミイミセミシムダミソミセミサム.html | 132 + .../component/fields/filters/ミ、ミクミサム袴びム.html | 63 + .../docs/component/fields/index.html | 79 + .../docs/component/fields/ミ籍エムミオム.html | 290 + .../docs/component/fields/ミ柘ミオミシム.html | 142 + .../component/fields/ミ柘巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ.html | 223 + .../docs/component/fields/ミ頒ームひー.html | 191 + .../docs/component/fields/ミ頒オミスミオミカミスミセミオ_ミソミセミサミオ.html | 174 + ...ミエミセミアミーミイミクムび契ミ慴スミセミウミセムムびミセムミスミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html | 88 + ...ミーミコ_ミエミセミアミーミイミクムび契ミ渙オムミオミコミサム紗ミームひオミサム契ミスミー_ムムびミーミスミクムムダ.html | 88 + ...ーミコ_ミエミセミアミーミイミクムび契ミ「ミオミコムムひセミイミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html | 109 + ...ミーミコ_ミエミセミアミーミイミクムび契ミエミオミスミオミカミスミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html | 89 + ...コ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ「ミオミコムム_ミスミー_ムムびミーミスミクムムダ.html | 99 + ...ミオミケ_ミ頒ームひー_ミスミー_ムムびミーミスミクムムダム\ミーミイムひセミシミームひクムミオムミコミクミシ_ミキミーミソミセミサミスミオミスミクミオミシ_ミソミセムミサミオミエミスミオミウミセ_.html | 116 + .../ミ墟ーミコ_ミエミセミアミーミイミクムび契ミソミセミサミオ_ミ柘ミオミシム柔ミスミー_ムムびミーミスミクムムダ.html | 95 + .../ミ墟ーミコ_ミエミセミアミーミイミクムび契ミソミセミサミオ_ミ頒ームひー_ミスミー_ムムびミーミスミクムムダ.html | 93 + ...ミセミコ_ム\ミソミセミクムミコミセミシ_ミエミサム柔ミイム巾アミセムミー_ミセミエミスミセミウミセ_ミキミスミームミオミスミクム柔ミスミー_ムムびミーミスミクムムダ.html | 239 + ...イミクムび契ムムひームひクムミスム巾ケ_ミイム巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ_ミスミー_ムムびミーミスミクムムダ.html | 85 + ...ミーミコ_ミエミセミアミーミイミクムび契ムミクムミサミセミイミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html | 91 + ...ーミイミクムび契ム災サミオミシミオミスム_ミ柘巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ_ミスミー_ムムびミーミスミクムムダ.html | 82 + ...び契ム災サミオミシミオミスム_ミ。ムひームひクムミスム巾ケ_ミソミオムミオミコミサム紗ミームひオミサム契ミスミー_ムムびミーミスミクムムダ.html | 82 + ...ムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ厘ーミウムムσキミコミー_ムミーミケミサミー_ミスミー_ムムびミーミスミクムミオ_.html | 300 + ...コミセミシミソミセミスミオミスムびダミ渙セミサミオ_ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム柔ミスミー_ムムびミーミスミクムミオ_.html | 187 + ...ムび契ミコミセミシミソミセミスミオミスムびダミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_.html | 290 + ...ムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_.html | 165 + ...イミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_ミソミセミサミオ_.html | 133 + ...ミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ、ミサミーミウ_ミスミー_ムムびミーミスミクムミオ_.html | 135 + ...ミスムびダミ「ミオミコムム_ミエミサム柔ミセムひセミアムミーミカミオミスミクム柔ミスミーミキミイミーミスミクム柔ミセムミウミーミスミクミキミームミクミク_ミスミー_ムムびミーミスミクムミオ_.html | 95 + ...オミコムムひセミイミセミオ_ミソミセミサミオ_ミイ_ミコミームミオムムひイミオ_ミソミームミーミシミオムびミー_ミエミサム柔ミソミオムミームひスミセミケ_ムミセムミシム祇.html | 104 + ...ミオ_ミソミセミサミオ_ミエミサム柔ミスミームムびミセミケミコミク_ミイミクミエミクミシミセムムひク_ミエムムσウミクム_ム災サミオミシミオミスムひセミイ_ミスミー_ムムびミーミスミクムミオ_.html | 137 + ..._ミセムひセミアムミーミキミクムび契ミスミーミキミイミーミスミクミオ_ミセムミウミーミスミクミキミームミクミク_ムひオミコムムひセミシ.html | 95 + .../component/fields/ミ慴スミセミウミセムムびミセムミスミセミオ_ミソミセミサミオ.html | 213 + ...ミコミー_ミイミキミーミクミシミセミキミーミイミクムミクミシム錦_ミソミセミサミオミケ_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html | 88 + .../docs/component/fields/ミ渙オムミオミコミサム紗ミームひオミサム.html | 152 + .../ミ渙セミサミオ_ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html | 201 + .../ミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html | 449 + .../fields/ミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html | 777 + .../ミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_ミソミセミサミオ_.html | 751 + ...ムミセミコ_ム\ミソミセミクムミコミセミシ_ミエミサム柔ミイム巾アミセムミー_ミセミエミスミセミウミセ_ミキミスミームミオミスミクム.html | 675 + .../fields/ミ。ムひームひクムミスム巾ケ_ミイム巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ.html | 144 + .../fields/ミ。ムひームひクムミスム巾ケ_ミソミオムミオミコミサム紗ミームひオミサム.html | 138 + .../component/fields/ミ。ムひクミサミク-ミソミセミサミオミケ-ミイミイミセミエミー.html | 201 + .../docs/component/fields/ミ「ミオミコムム.html | 146 + .../docs/component/fields/ミ「ミオミコムムひセミイミセミオ_ミソミセミサミオ.html | 231 + .../docs/component/fields/ミ、ミーミケミサ.html | 172 + .../fields/ミ、ミクミサム袴びミームミクム柔ミクムムひセムミスミクミコミー_ミエミーミスミスム錦.html | 105 + ...ミセミシ_ミキミスミームミオミスミクム柔ミイ_ミキミーミイミクムミクミシミセムムひク_ミセム_ミイム巾アムミーミスミスミセミウミセ_ミキミスミームミオミスミクム柔ミイ_ミエムムσウミセミシ_ミソミセミサミオ_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html | 105 + .../docs/component/fields/ミ、ミサミーミウ.html | 138 + .../docs/component/fields/ミァミクムミサミセミイミセミオ_ミソミセミサミオ.html | 165 + .../grids/ColumnNavigationRenderer.html | 70 + .../CustomSqlLoadDao-ミク-CustomSqlFormDao.html | 53 + ...eWithAggregationColumnsImpl-ミーミウムミオミウミームミクム.html | 52 + .../docs/component/grids/GridV2.html | 264 + .../grids/MaskCellValueFormatter.html | 51 + .../grids/NavigateOnGridCellOrRow.html | 98 + .../component/grids/RowNavigationHandler.html | 69 + ...onfigurator.ts-(ミ墟セミサミセミスミコミク-ム-ミスミーミイミクミウミームミクミオミケ).html | 58 + .../docs/component/grids/index.html | 72 + .../component/grids/ミ飯ミオミイミセミイミクミエミスミーム柔ムひーミアミサミクムミー.html | 182 + ...アミサミクムムダミスミー_ムムびミーミスミクムムダム\ムミクミサム袴びミームミクミオミケ_ミキミーミソミクムミオミケ_ミソミセ_ムτミサミセミイミクム酸.html | 104 + ...ミスミー_ムムびミーミスミクムムダミ「ミーミアミサミクムムダム\ミソミセムムびミーミスミクムミスム巾シ_ミセムひセミアムミーミカミオミスミクミオミシ_.html | 102 + ..._ミエミセミアミーミイミクムび契ムミイム紹キミーミスミスム巾オ_ミ「ミーミアミサミクムム祇ミスミー_ムムびミーミスミクムムダ.html | 89 + ...ソミセミスミオミスムびダミ飯ミオミイミセミイミクミエミスミーム柔ムひーミアミサミクムミー_ミスミー_ミソミセミサム糊キミセミイミームひオミサム袴ミコミセミケ_ムムびミーミスミクムミオ_.html | 158 + ...クミコミームひセム_ムミイム紹キミーミスミスミセミケ_ムひーミアミサミクムム祇ミクムミソミセミサム糊キムτ柔ムミコムム錦ひセミオ_ムミクムミサミセミイミセミオ_ミソミセミサミオ_.html | 68 + .../grids/ミ斷ームムびミセミケミコミー_ミコミセミサミセミスミセミコ_ミ「ミーミアミサミクムム.html | 100 + ...ムミクムムひクムび契ムミセムミシミームひクムミセミイミーミスミクミオ_ミコミセミサミセミスミセミコ_ムひーミアミサミクムム.html | 77 + .../docs/component/grids/ミ「ミーミアミサミクムミー.html | 247 + .../ミ「ミーミアミサミクムミー_ム\ミソミセムムびミーミスミクムミスム巾シ_ミセムひセミアムミーミカミオミスミクミオミシ.html | 187 + .../docs/component/grids/ミ「ミーミアミサミクムム.html | 53 + .../components/docs/component/index.html | 104 + .../AC._ミ慴オムひセミエム-ミセミアム諌オミコムひセミイ-ムムびミーミスミクムム.html | 83 + .../uncategorized/ConditionOperation.html | 108 + .../uncategorized/EventCalendar.html | 359 + .../component/uncategorized/HyperLink.html | 80 + .../docs/component/uncategorized/IFrame.html | 98 + .../component/uncategorized/InnerHtml.html | 69 + .../docs/component/uncategorized/Menu.html | 100 + .../component/uncategorized/MenuGroup.html | 75 + .../component/uncategorized/MenuItem.html | 119 + .../uncategorized/ValidationController.html | 138 + .../docs/component/uncategorized/index.html | 52 + .../component/uncategorized/ミ頒クミーミウムミーミシミシミー.html | 160 + .../uncategorized/ミ頒クミーミウムミーミシミシミー_chart-v2.html | 257 + .../ミ頒クミーミウムミーミシミシミー_ミ寅ーミスムびひー_ミ墟ーミサミオミスミエミームミスム巾ケ_ミソミサミーミス_.html | 152 + ...ミシミソミセミスミオミスムびダミ頒クミーミウムミーミシミシミー_ミ寅ーミスムびひー_ミ墟ーミサミオミスミエミームミスム巾ケ_ミソミサミーミス_ミスミー_ムムびミーミスミクムミオ_.html | 141 + ...オミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ頒クミーミウムミーミシミシミー_ミスミー_ムムびミーミスミクムミオ_.html | 163 + ...イミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ榧アムミーミアミセムひコミー_ムミセミアム錦ひクミケ_ミスミー_ムムびミーミスミクムミオ_.html | 239 + ...びミームミクミク_ミイ_ムひーミアミサミクムミオ_ミク_ミウムミームミクミコミオ_ミエミサム柔ミコミセミシミソミセミスミオミスムび祇ミ頒クミーミウムミーミシミシミー.html | 54 + .../uncategorized/ミ榧アムミーミアミセムひコミー_ムミセミアム錦ひクミケ.html | 148 + .../uncategorized/ミミーミキミスム巾オ_ミコミセミシミソミセミスミオミスムび.html | 52 + ...ム紗ミクムび契ミイム錦ミクムミサミオミスミクミオ_ミシミームひオミシミームひクムミオムミコミクム_ミセミソミオムミームミクミケ.html | 63 + ...ミアミーミイミクムび契ムムびミセミコムダミコ_ミキミスミームミオミスミクム酸ミイ_ムひオミコムτ禍オミシ_ミソミセミサミオ.html | 63 + ...ソミセミサミスミクムび契ミキミスミームミオミスミクミオミシ_ミクミキ_ミソミオムミオミシミオミスミスミセミケ_ミソムミセムミオムムミー.html | 78 + .../ミ厘ーミソミセミサミスミクムび契ミキミスミームミオミスミクミオミシ_ミソミセ_ムσシミセミサムミーミスミクム.html | 115 + ...クミオミシ_ミソミセ_ムσシミセミサムミーミスミクム酸ミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html | 83 + ...キミスミームミオミスミクミオミシ_ミソミセ_ムσシミセミサムミーミスミクム酸ミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html | 93 + ..._ムσシミセミサムミーミスミクム酸ミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html | 83 + ...アミーミイミクムび-ム尉ミクムムび-ミイ-ミシミセミエムσサム-ミソミオムミームひク-JasperReports.html | 56 + .../component/ミ斷ームムびミセミケミコミー_ミ酉ミームミー_ムムτ禍スミセムムひオミケ.html | 144 + .../docs/component/ミ榧アム禍クミオ-ムムひクミサミク.html | 65 + .../component/ミ榧アム禍クミオ_ムミイミセミケムムひイミー_ミコミセミシミソミセミスミオミスム.html | 177 + ...榧ソムミオミエミオミサミクムび契ミソムミーミイミー_ムひオミコムτ禍オミウミセ_ミソミセミサム糊キミセミイミームひオミサム.html | 57 + ...ミ榧ソムミオミエミオミサミクムび契ムミセミサミク_ムひオミコムτ禍オミウミセ_ミソミセミサム糊キミセミイミームひオミサム.html | 57 + ...ミエミームびダミク_ムミシミオムムひクムび契ミオム狙ミイミソミオムミオミエ_ミクミサミク_ミスミーミキミーミエ_ミスミー_ミキミーミエミーミスミスム巾ケ_ミソミオムミクミセミエ.html | 104 + .../docs/component/ミ渙セミエミウムムσキミコミー_ミエミーミスミスム錦.html | 105 + .../ミ渙セミエミウムムσキミコミー_ミエミーミスミスム錦_ミソミセ_ムσシミセミサムミーミスミクム.html | 105 + .../ミ湲ミオミセミアムミーミキミセミイミーミスミクミオ_ムひオミコムτ禍オミケ_ミエミームび.html | 104 + ...ミーミキミセミイミームび契ミイ_ミコミセミサミセミスミコミク_ムミセ_ミキミスミームミオミスミクム紹シミク-ミソミオムミオムミセミエミーミシミク.html | 96 + .../component/ミ。ミコミサミオミクムび契ミスミオムミコミセミサム糊コミセ_ミキミスミームミオミスミクミケ.html | 112 + ...スミイミオムムひクムミセミイミームび契ミキミスミームミオミスミクミオ_ミイ_ムミオミサミセムミクムミサミオミスミスム巾ケ_ムひクミソ.html | 65 + ...クムび契ミエミームびダミクミキ_ミソミセミサム柔ミスミー_ミソミオムミクミセミエ_ミイミソミオムミオミエ_ミクミサミク_ミスミーミキミーミエ.html | 97 + ...ミーミウミセミサミセミイミコミー_ミイム巾アムミーミスミスミセミケ_ミイミコミサミーミエミコミク_ミイ_ミソミオムミオミシミオミスミスムτ酸ミソムミセムミオムムミー.html | 54 + ...セムムミーミスミクムび契ミキミスミームミオミスミクミオ_ミイ_ミソミオムミオミシミオミスミスムτ酸ミソムミセムミオムムミー.html | 58 + .../docs/component/ミ」ミソムミーミイミサミオミスミクミオ_ミスミーミイミクミウミームミクミオミケ.html | 72 + .../components/docs/component/ミ、ムσスミコムミクミク.html | 77 + .../docs/css/apache-maven-fluido-1.9.min.css | 17 + .../META-INF/components/docs/css/print.css | 21 + .../META-INF/components/docs/css/site.css | 1 + .../components/docs/dependencies.html | 5824 +++ .../components/docs/dependency-info.html | 73 + .../docs/dependency-management.html | 1167 + .../docs/distribution-management.html | 54 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 35691 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 55383 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 42340 bytes .../docs/handlers/EmailHandler.html | 105 + .../docs/handlers/JiraCreateIssueHandler.html | 120 + .../components/docs/handlers/RESTHandler.html | 100 + .../docs/handlers/SetVariableHandler.html | 73 + .../handlers/SqlAttachmentsEmailHandler.html | 75 + .../components/docs/handlers/Telegram.html | 96 + .../docs/handlers/UserAuthorityHandler.html | 119 + .../components/docs/handlers/index.html | 60 + .../docs/images/accessories-text-editor.png | Bin 0 -> 746 bytes .../META-INF/components/docs/images/add.gif | Bin 0 -> 397 bytes .../docs/images/apache-maven-project-2.png | Bin 0 -> 43073 bytes .../docs/images/application-certificate.png | Bin 0 -> 923 bytes .../META-INF/components/docs/images/close.gif | Bin 0 -> 279 bytes .../components/docs/images/contact-new.png | Bin 0 -> 736 bytes .../docs/images/document-properties.png | Bin 0 -> 577 bytes .../components/docs/images/drive-harddisk.png | Bin 0 -> 700 bytes .../META-INF/components/docs/images/fix.gif | Bin 0 -> 366 bytes .../components/docs/images/icon_error_sml.gif | Bin 0 -> 633 bytes .../components/docs/images/icon_help_sml.gif | Bin 0 -> 1072 bytes .../components/docs/images/icon_info_sml.gif | Bin 0 -> 638 bytes .../docs/images/icon_success_sml.gif | Bin 0 -> 604 bytes .../docs/images/icon_warning_sml.gif | Bin 0 -> 625 bytes .../docs/images/image-x-generic.png | Bin 0 -> 662 bytes .../docs/images/internet-web-browser.png | Bin 0 -> 1017 bytes .../images/logos/build-by-maven-black.png | Bin 0 -> 2294 bytes .../images/logos/build-by-maven-white.png | Bin 0 -> 2260 bytes .../docs/images/logos/maven-feather.png | Bin 0 -> 3330 bytes .../components/docs/images/network-server.png | Bin 0 -> 536 bytes .../docs/images/package-x-generic.png | Bin 0 -> 717 bytes .../docs/images/profiles/pre-release.png | Bin 0 -> 32607 bytes .../docs/images/profiles/retired.png | Bin 0 -> 22003 bytes .../docs/images/profiles/sandbox.png | Bin 0 -> 33010 bytes .../components/docs/images/remove.gif | Bin 0 -> 607 bytes .../META-INF/components/docs/images/rss.png | Bin 0 -> 474 bytes .../components/docs/images/update.gif | Bin 0 -> 1090 bytes .../components/docs/images/window-new.png | Bin 0 -> 583 bytes .../docs/img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../docs/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../META-INF/components/docs/index.html | 52 + .../docs/js/apache-maven-fluido-1.9.min.js | 25 + .../components/docs/plugin-management.html | 176 + .../META-INF/components/docs/plugins.html | 130 + .../components/docs/project-info.html | 84 + .../ru/css/apache-maven-fluido-1.9.min.css | 17 + .../META-INF/components/docs/ru/css/print.css | 21 + .../META-INF/components/docs/ru/css/site.css | 1 + .../components/docs/ru/dependencies.html | 5824 +++ .../components/docs/ru/dependency-info.html | 73 + .../docs/ru/dependency-management.html | 1167 + .../docs/ru/distribution-management.html | 54 + .../ru/fonts/glyphicons-halflings-regular.eot | Bin 0 -> 35691 bytes .../ru/fonts/glyphicons-halflings-regular.svg | 229 + .../ru/fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 55383 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 42340 bytes .../ru/images/accessories-text-editor.png | Bin 0 -> 746 bytes .../components/docs/ru/images/add.gif | Bin 0 -> 397 bytes .../docs/ru/images/apache-maven-project-2.png | Bin 0 -> 43073 bytes .../ru/images/application-certificate.png | Bin 0 -> 923 bytes .../components/docs/ru/images/close.gif | Bin 0 -> 279 bytes .../components/docs/ru/images/contact-new.png | Bin 0 -> 736 bytes .../docs/ru/images/document-properties.png | Bin 0 -> 577 bytes .../docs/ru/images/drive-harddisk.png | Bin 0 -> 700 bytes .../components/docs/ru/images/fix.gif | Bin 0 -> 366 bytes .../docs/ru/images/icon_error_sml.gif | Bin 0 -> 633 bytes .../docs/ru/images/icon_help_sml.gif | Bin 0 -> 1072 bytes .../docs/ru/images/icon_info_sml.gif | Bin 0 -> 638 bytes .../docs/ru/images/icon_success_sml.gif | Bin 0 -> 604 bytes .../docs/ru/images/icon_warning_sml.gif | Bin 0 -> 625 bytes .../docs/ru/images/image-x-generic.png | Bin 0 -> 662 bytes .../docs/ru/images/internet-web-browser.png | Bin 0 -> 1017 bytes .../ru/images/logos/build-by-maven-black.png | Bin 0 -> 2294 bytes .../ru/images/logos/build-by-maven-white.png | Bin 0 -> 2260 bytes .../docs/ru/images/logos/maven-feather.png | Bin 0 -> 3330 bytes .../docs/ru/images/network-server.png | Bin 0 -> 536 bytes .../docs/ru/images/package-x-generic.png | Bin 0 -> 717 bytes .../docs/ru/images/profiles/pre-release.png | Bin 0 -> 32607 bytes .../docs/ru/images/profiles/retired.png | Bin 0 -> 22003 bytes .../docs/ru/images/profiles/sandbox.png | Bin 0 -> 33010 bytes .../components/docs/ru/images/remove.gif | Bin 0 -> 607 bytes .../components/docs/ru/images/rss.png | Bin 0 -> 474 bytes .../components/docs/ru/images/update.gif | Bin 0 -> 1090 bytes .../components/docs/ru/images/window-new.png | Bin 0 -> 583 bytes .../ru/img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../docs/ru/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../META-INF/components/docs/ru/index.html | 52 + .../docs/ru/js/apache-maven-fluido-1.9.min.js | 25 + .../components/docs/ru/plugin-management.html | 176 + .../META-INF/components/docs/ru/plugins.html | 130 + .../components/docs/ru/project-info.html | 84 + .../META-INF/components/docs/ru/scm.html | 59 + .../META-INF/components/docs/ru/summary.html | 96 + .../META-INF/components/docs/scm.html | 59 + .../META-INF/components/docs/summary.html | 96 + .../CheckUserAuthority.ts.html | 51 + .../user-management/CheckUserRole.ts.html | 51 + .../components/icons/buttons/Button.png | Bin 0 -> 284 bytes .../components/icons/buttons/Cancel.png | Bin 0 -> 826 bytes .../components/icons/buttons/ClearFilter.png | Bin 0 -> 551 bytes .../components/icons/buttons/Delete.png | Bin 0 -> 401 bytes .../components/icons/buttons/Download.png | Bin 0 -> 447 bytes .../icons/buttons/EntityGraphReporting.png | Bin 0 -> 507 bytes .../components/icons/buttons/Error.png | Bin 0 -> 611 bytes .../icons/buttons/ExecProcessButton.png | Bin 0 -> 988 bytes .../icons/buttons/ExecuteSQLButton.png | Bin 0 -> 508 bytes .../components/icons/buttons/Filter.png | Bin 0 -> 379 bytes .../icons/buttons/FormReporting.png | Bin 0 -> 453 bytes .../components/icons/buttons/Navigation.png | Bin 0 -> 503 bytes .../components/icons/buttons/Save.png | Bin 0 -> 406 bytes .../components/icons/buttons/Select.png | Bin 0 -> 338 bytes .../components/icons/buttons/SignButton.png | Bin 0 -> 702 bytes .../icons/buttons/StartProcessButton.png | Bin 0 -> 425 bytes .../icons/containers/CollapsiblePanel.png | Bin 0 -> 356 bytes .../components/icons/containers/Dialog.png | Bin 0 -> 270 bytes .../components/icons/containers/DropDown.png | Bin 0 -> 485 bytes .../components/icons/containers/FieldSet.png | Bin 0 -> 326 bytes .../icons/containers/FilterGroup.png | Bin 0 -> 281 bytes .../components/icons/containers/Form.png | Bin 0 -> 440 bytes .../components/icons/containers/HBox.png | Bin 0 -> 255 bytes .../icons/containers/TabContainer.png | Bin 0 -> 327 bytes .../components/icons/containers/TabItem.png | Bin 0 -> 234 bytes .../components/icons/containers/VBox.png | Bin 0 -> 285 bytes .../components/icons/containers/Window.png | Bin 0 -> 270 bytes .../icons/editable-grids/EditableGrid.png | Bin 0 -> 204 bytes .../components/icons/fields/Address.png | Bin 0 -> 637 bytes .../components/icons/fields/Autocomplete.png | Bin 0 -> 355 bytes .../components/icons/fields/Checkbox.png | Bin 0 -> 589 bytes .../components/icons/fields/Combobox.png | Bin 0 -> 313 bytes .../icons/fields/DateTimePicker.png | Bin 0 -> 370 bytes .../components/icons/fields/EditableLinks.png | Bin 0 -> 588 bytes .../icons/fields/EditableOnetoMany.png | Bin 0 -> 479 bytes .../components/icons/fields/FilePreview.png | Bin 0 -> 418 bytes .../components/icons/fields/FileUpload.png | Bin 0 -> 399 bytes .../components/icons/fields/ManytoMany.png | Bin 0 -> 432 bytes .../icons/fields/ManytoManyField.png | Bin 0 -> 509 bytes .../components/icons/fields/MoneyField.png | Bin 0 -> 499 bytes .../components/icons/fields/NumberField.png | Bin 0 -> 2043 bytes .../components/icons/fields/OnetoMany.png | Bin 0 -> 425 bytes .../components/icons/fields/Radiobutton.png | Bin 0 -> 1357 bytes .../icons/fields/SignVerification.png | Bin 0 -> 765 bytes .../icons/fields/StaticCombobox.png | Bin 0 -> 433 bytes .../icons/fields/StaticRadiobutton.png | Bin 0 -> 1313 bytes .../META-INF/components/icons/fields/Text.png | Bin 0 -> 241 bytes .../components/icons/fields/TextArea.png | Bin 0 -> 346 bytes .../components/icons/fields/TextField.png | Bin 0 -> 376 bytes .../components/icons/fields/TimePicker.png | Bin 0 -> 356 bytes .../components/icons/fields/TreeField.png | Bin 0 -> 309 bytes .../icons/fields/TreeMultiField.png | Bin 0 -> 304 bytes .../icons/fields/filters/Address.png | Bin 0 -> 637 bytes .../icons/fields/filters/Autocomplete.png | Bin 0 -> 355 bytes .../icons/fields/filters/Boolean.png | Bin 0 -> 620 bytes .../icons/fields/filters/Checkbox.png | Bin 0 -> 589 bytes .../icons/fields/filters/Combobox.png | Bin 0 -> 313 bytes .../icons/fields/filters/DateTimePicker.png | Bin 0 -> 370 bytes .../icons/fields/filters/FileUpload.png | Bin 0 -> 399 bytes .../icons/fields/filters/MoneyField.png | Bin 0 -> 499 bytes .../icons/fields/filters/NumberField.png | Bin 0 -> 2043 bytes .../icons/fields/filters/Radiobutton.png | Bin 0 -> 1357 bytes .../icons/fields/filters/StaticCombobox.png | Bin 0 -> 433 bytes .../fields/filters/StaticRadiobutton.png | Bin 0 -> 1313 bytes .../components/icons/fields/filters/Text.png | Bin 0 -> 241 bytes .../icons/fields/filters/TextArea.png | Bin 0 -> 346 bytes .../icons/fields/filters/TextField.png | Bin 0 -> 376 bytes .../icons/fields/filters/TimePicker.png | Bin 0 -> 356 bytes .../META-INF/components/icons/grids/Grid.png | Bin 0 -> 270 bytes .../components/icons/grids/PagingGrid.png | Bin 0 -> 418 bytes .../components/icons/grids/TreeGrid.png | Bin 0 -> 406 bytes .../icons/uncategorized/ActionController.png | Bin 0 -> 1075 bytes .../icons/uncategorized/Calendar.png | Bin 0 -> 306 bytes .../components/icons/uncategorized/Chart.png | Bin 0 -> 265 bytes .../icons/uncategorized/GanttChart.png | Bin 0 -> 388 bytes .../components/icons/uncategorized/Menu.png | Bin 0 -> 270 bytes .../uncategorized/ValidationController.png | Bin 0 -> 532 bytes .../components/icons/uncategorized/iframe.png | Bin 0 -> 329 bytes .../localization/buttons/button.properties | 2 + .../buttons/button_en_US.properties | 2 + .../buttons/cancel-button.properties | 2 + .../buttons/cancel-button_en_US.properties | 2 + .../buttons/clear-filter-button.properties | 2 + .../clear-filter-button_en_US.properties | 2 + .../buttons/delete-button.properties | 2 + .../buttons/delete-button_en_US.properties | 2 + .../buttons/download-button.properties | 2 + .../buttons/download-button_en_US.properties | 2 + .../entity-graph-reporting-button.properties | 2 + ...ty-graph-reporting-button_en_US.properties | 2 + .../buttons/error-button.properties | 2 + .../buttons/error-button_en_US.properties | 2 + .../buttons/execute-sql-button.properties | 2 + .../execute-sql-button_en_US.properties | 2 + .../buttons/filter-button.properties | 2 + .../buttons/filter-button_en_US.properties | 2 + .../buttons/form-reporting-button.properties | 2 + .../form-reporting-button_en_US.properties | 2 + .../buttons/navigation-button.properties | 2 + .../navigation-button_en_US.properties | 2 + .../buttons/save-button.properties | 2 + .../buttons/save-button_en_US.properties | 2 + .../buttons/select-button.properties | 2 + .../buttons/select-button_en_US.properties | 2 + .../buttons/sign-button.properties | 5 + .../buttons/sign-button_en_US.properties | 5 + .../buttons/start-process-button.properties | 2 + .../start-process-button_en_US.properties | 2 + .../project-scripts-localization.properties | 0 ...ject-scripts-localization_en_US.properties | 0 .../webbpm-scripts-localization.properties | 4231 +++ ...bbpm-scripts-localization_en_US.properties | 1796 + .../containers/collapsible-panel.properties | 2 + .../collapsible-panel_en_US.properties | 2 + .../localization/containers/dialog.properties | 2 + .../containers/dialog_en_US.properties | 2 + .../containers/drop-down.properties | 2 + .../containers/drop-down_en_US.properties | 2 + .../containers/field-set.properties | 2 + .../containers/field-set_en_US.properties | 2 + .../containers/filter-group.properties | 2 + .../containers/filter-group_en_US.properties | 2 + .../localization/containers/form.properties | 2 + .../containers/form_en_US.properties | 2 + .../localization/containers/h-box.properties | 2 + .../containers/h-box_en_US.properties | 2 + .../containers/i-frame.properties | 2 + .../containers/i-frame_en_US.properties | 2 + .../containers/tab-container.properties | 2 + .../containers/tab-container_en_US.properties | 2 + .../containers/tab-item.properties | 2 + .../containers/tab-item_en_US.properties | 2 + .../localization/containers/v-box.properties | 2 + .../containers/v-box_en_US.properties | 2 + .../localization/containers/window.properties | 2 + .../containers/window_en_US.properties | 2 + .../default-components.properties | 16 + .../default-components_en_US.properties | 16 + .../editable-grids/autocomplete.properties | 2 + .../autocomplete_en_US.properties | 2 + .../editable-grids/check-box.properties | 2 + .../editable-grids/check-box_en_US.properties | 2 + .../editable-grids/combo-box.properties | 2 + .../editable-grids/combo-box_en_US.properties | 2 + .../date-time-picker.properties | 2 + .../date-time-picker_en_US.properties | 2 + .../editable-grids/editable-grid.properties | 2 + .../editable-grid_en_US.properties | 2 + .../editable-grids/number-field.properties | 2 + .../number-field_en_US.properties | 2 + .../editable-grids/one-to-many.properties | 2 + .../one-to-many_en_US.properties | 2 + .../editable-grids/read-only.properties | 2 + .../editable-grids/read-only_en_US.properties | 2 + .../editable-grids/text-area.properties | 2 + .../editable-grids/text-area_en_US.properties | 2 + .../editable-grids/text-field.properties | 2 + .../text-field_en_US.properties | 2 + .../editable-grids/time-picker.properties | 2 + .../time-picker_en_US.properties | 2 + .../localization/fields/address.properties | 2 + .../fields/address_en_US.properties | 2 + .../fields/autocomplete.properties | 2 + .../fields/autocomplete_en_US.properties | 2 + .../localization/fields/check-box.properties | 2 + .../fields/check-box_en_US.properties | 2 + .../localization/fields/combo-box.properties | 2 + .../fields/combo-box_en_US.properties | 2 + .../fields/date-time-picker.properties | 2 + .../fields/date-time-picker_en_US.properties | 2 + .../fields/editable-one-to-many.properties | 2 + .../editable-one-to-many_en_US.properties | 2 + .../fields/file-preview.properties | 2 + .../fields/file-preview_en_US.properties | 2 + .../fields/file-upload-field.properties | 2 + .../fields/file-upload-field_en_US.properties | 2 + .../fields/file-upload.properties | 2 + .../fields/file-upload_en_US.properties | 2 + .../filters/filter-autocomplete.properties | 2 + .../filter-autocomplete_en_US.properties | 2 + .../fields/filters/filter-boolean.properties | 2 + .../filters/filter-boolean_en_US.properties | 2 + .../filters/filter-check-box.properties | 2 + .../filters/filter-check-box_en_US.properties | 2 + .../filters/filter-combo-box.properties | 2 + .../filters/filter-combo-box_en_US.properties | 2 + .../filter-date-time-picker.properties | 2 + .../filter-date-time-picker_en_US.properties | 2 + .../filters/filter-fias-address.properties | 2 + .../filter-fias-address_en_US.properties | 2 + .../filters/filter-number-field.properties | 2 + .../filter-number-field_en_US.properties | 2 + .../filters/filter-radio-button.properties | 2 + .../filter-radio-button_en_US.properties | 2 + .../filter-static-combo-box.properties | 2 + .../filter-static-combo-box_en_US.properties | 2 + .../filters/filter-text-area.properties | 2 + .../filters/filter-text-area_en_US.properties | 2 + .../filters/filter-text-field.properties | 2 + .../filter-text-field_en_US.properties | 2 + .../localization/fields/link-field.properties | 2 + .../fields/link-field_en_US.properties | 2 + .../fields/many-to-many-field.properties | 2 + .../many-to-many-field_en_US.properties | 2 + .../fields/many-to-many.properties | 2 + .../fields/many-to-many_en_US.properties | 2 + .../fields/money-field.properties | 2 + .../fields/money-field_en_US.properties | 2 + .../fields/multi-value-field.properties | 2 + .../fields/multi-value-field_en_US.properties | 2 + .../fields/number-field.properties | 2 + .../fields/number-field_en_US.properties | 2 + .../fields/one-to-many.properties | 2 + .../fields/one-to-many_en_US.properties | 2 + .../fields/radio-button.properties | 2 + .../fields/radio-button_en_US.properties | 2 + .../fields/sign-verification.properties | 4 + .../fields/sign-verification_en_US.properties | 4 + .../fields/static-combo-box.properties | 2 + .../fields/static-combo-box_en_US.properties | 2 + .../fields/static-radio-button.properties | 2 + .../static-radio-button_en_US.properties | 2 + .../localization/fields/text-area.properties | 2 + .../fields/text-area_en_US.properties | 2 + .../localization/fields/text-field.properties | 2 + .../fields/text-field_en_US.properties | 2 + .../localization/fields/text.properties | 2 + .../localization/fields/text_en_US.properties | 2 + .../fields/time-picker.properties | 2 + .../fields/time-picker_en_US.properties | 2 + .../localization/fields/tree-field.properties | 2 + .../fields/tree-field_en_US.properties | 2 + .../fields/tree-multi-field.properties | 2 + .../fields/tree-multi-field_en_US.properties | 2 + .../localization/grids/grid.properties | 8 + .../localization/grids/grid_en_US.properties | 9 + .../localization/grids/paging-grid.properties | 2 + .../grids/paging-grid_en_US.properties | 2 + .../localization/grids/tree-grid.properties | 2 + .../grids/tree-grid_en_US.properties | 2 + .../action-controller.properties | 2 + .../action-controller_en_US.properties | 2 + .../uncategorized/chart.properties | 2 + .../uncategorized/chart_en_US.properties | 2 + .../uncategorized/event-calendar.properties | 2 + .../event-calendar_en_US.properties | 2 + .../uncategorized/gantt-chart.properties | 2 + .../gantt-chart_en_US.properties | 2 + .../uncategorized/hyper-link.properties | 2 + .../uncategorized/hyper-link_en_US.properties | 2 + .../uncategorized/i-frame.properties | 2 + .../uncategorized/i-frame_en_US.properties | 2 + .../uncategorized/inner-html.properties | 2 + .../uncategorized/inner-html_en_US.properties | 2 + .../uncategorized/menu-group.properties | 2 + .../uncategorized/menu-group_en_US.properties | 2 + .../uncategorized/menu-item.properties | 2 + .../uncategorized/menu-item_en_US.properties | 2 + .../validation-controller.properties | 2 + .../validation-controller_en_US.properties | 2 + .../META-INF/package-descriptor.xml | 20 + .../component/buttons/Button.component | 55 + .../component/buttons/CancelButton.component | 57 + .../buttons/ClearFilterButton.component | 62 + .../component/buttons/DeleteButton.component | 92 + .../buttons/DownloadButton.component | 94 + .../component/buttons/ErrorButton.component | 56 + .../buttons/ExecProcessButton.component | 61 + .../buttons/ExecuteSqlButton.component | 84 + .../component/buttons/FilterButton.component | 48 + .../buttons/NavigationButton.component | 58 + .../component/buttons/SaveButton.component | 55 + .../component/buttons/SelectButton.component | 86 + .../component/buttons/SignButton.component | 341 + .../buttons/StartProcessButton.component | 56 + .../EntityGraphReportingButton.component | 74 + .../reporting/FormReportingButton.component | 82 + .../containers/CollapsiblePanel.component | 97 + .../component/containers/Dialog.component | 97 + .../component/containers/DropDown.component | 49 + .../component/containers/FieldSet.component | 90 + .../containers/FilterGroup.component | 128 + .../component/containers/Form.component | 182 + .../component/containers/HBox.component | 90 + .../containers/TabContainer.component | 90 + .../component/containers/TabItem.component | 90 + .../component/containers/VBox.component | 90 + .../component/containers/Window.component | 338 + .../editable-grids/EditableGrid.component | 185 + .../columns/AutocompleteGridColumn.component | 147 + .../columns/CheckBoxGridColumn.component | 87 + .../columns/ComboBoxGridColumn.component | 130 + .../DateTimePickerGridColumn.component | 95 + .../columns/MoneyFieldGridColumn.component | 99 + .../columns/NumberFieldGridColumn.component | 81 + .../columns/OneToManyGridColumn.component | 546 + .../columns/OneToManyGridColumnV2.component | 770 + .../ReadonlyClientGridColumn.component | 54 + .../ReadonlyServerGridColumn.component | 53 + .../StaticComboBoxGridColumn.component | 94 + .../columns/TextAreaGridColumn.component | 87 + .../columns/TextFieldGridColumn.component | 87 + .../columns/TimePickerGridColumn.component | 81 + .../component/fields/Address.component | 181 + .../component/fields/Autocomplete.component | 176 + .../component/fields/CheckBox.component | 111 + .../component/fields/ComboBox.component | 148 + .../component/fields/DateTimePicker.component | 111 + .../fields/EditableOneToMany.component | 518 + .../component/fields/FilePreview.component | 87 + .../component/fields/FileUpload.component | 137 + .../component/fields/ManyToMany.component | 700 + .../fields/ManyToManyField.component | 1011 + .../component/fields/MoneyField.component | 96 + .../component/fields/NumberField.component | 135 + .../component/fields/OneToMany.component | 638 + .../component/fields/OneToManyV2.component | 775 + .../component/fields/RadioButton.component | 144 + .../fields/SignVerification.component | 168 + .../component/fields/StaticComboBox.component | 98 + .../fields/StaticRadioButton.component | 113 + .../component/fields/Text.component | 91 + .../component/fields/TextArea.component | 104 + .../component/fields/TextField.component | 166 + .../component/fields/TimePicker.component | 98 + .../component/fields/TreeField.component | 608 + .../editableonetomany/EditableGrid.component | 159 + .../fields/editableonetomany/Form.component | 94 + .../fileupload/FileUploadField.component | 39 + .../fields/filters/FilterAddress.component | 73 + .../filters/FilterAutocomplete.component | 143 + .../fields/filters/FilterBoolean.component | 121 + .../fields/filters/FilterCheckBox.component | 74 + .../fields/filters/FilterComboBox.component | 136 + .../filters/FilterDateTimePicker.component | 67 + .../filters/FilterNumberField.component | 67 + .../filters/FilterRadioButton.component | 70 + .../filters/FilterStaticComboBox.component | 67 + .../fields/filters/FilterTextArea.component | 67 + .../fields/filters/FilterTextField.component | 67 + .../fields/treefield/LinkField.component | 186 + .../treefield/MultiValueField.component | 115 + .../component/grids/Grid.component | 170 + .../component/grids/GridV2.component | 179 + .../component/grids/GridV2Column.component | 53 + .../component/grids/GridV2Group.component | 33 + .../component/grids/PagingGrid.component | 194 + .../component/grids/TreeGrid.component | 126 + .../uncategorized/ActionController.component | 52 + .../uncategorized/Calendar.component | 95 + .../component/uncategorized/Chart.component | 116 + .../component/uncategorized/ChartV2.component | 91 + .../uncategorized/EventCalendar.component | 84 + .../uncategorized/GanttChart.component | 75 + .../uncategorized/HyperLink.component | 48 + .../component/uncategorized/IFrame.component | 48 + .../uncategorized/InnerHtml.component | 48 + .../uncategorized/MenuGroup.component | 86 + .../uncategorized/MenuItem.component | 72 + .../ValidationController.component | 42 + .../converters/converters.jar | Bin 0 -> 94768 bytes .../metadata/java.metadata | Bin 0 -> 1113132 bytes .../metadata/typescript.metadata.json | 1 + .../ProcessInstance.component | 879 + .../ProcessInstanceDiagram.component | 50 + .../ProcessInstanceList.component | 1074 + .../user-management/Groups.component | 1774 + .../user-management/GroupsCreate.component | 1463 + .../user-management/GroupsEdit.component | 1474 + .../OrganizationEdit.component | 533 + .../user-management/Organizations.component | 1593 + .../user-management/Roles.component | 1779 + .../user-management/RolesEdit.component | 540 + .../SecurityFeatures.component | 1663 + .../StaticRouteNavigationButton.component | 42 + .../StaticRouteSelectButton.component | 62 + .../user-management/UserForm.component | 1649 + .../user-management/Users.component | 5544 +++ .../user-management/UsersCreate.component | 1545 + .../user-management/UsersEdit.component | 2220 ++ pentaho_scripts/dashboards.kjb | 643 + pentaho_scripts/main_dashboard.ktr | 5346 +++ pentaho_scripts/notregistered.ktr | 1818 + pentaho_scripts/recruitment.ktr | 3010 ++ pentaho_scripts/total_registered.ktr | 4618 +++ pom.xml | 665 + project.md | 3 + resources/pom.xml | 101 + .../resources/META-INF/components-package.xml | 34 + .../META-INF/filtered/resources.properties | 7 + .../main/resources/business-model/.gitkeep | 0 .../resources/business-model/appeals.page | 5823 +++ .../resources/business-model/citizen.page | 5432 +++ .../resources/business-model/citizencard.page | 2394 ++ .../main/resources/business-model/main.page | 11900 ++++++ .../business-model/milregistration.page | 29958 ++++++++++++++++ .../business-model/notregistered.page | 16863 +++++++++ .../resources/business-model/ratings.page | 2328 ++ .../resources/business-model/recruitment.page | 11302 ++++++ .../ミ柘ミオミウミセ ミスミー ムτミオムひオ (2ミケ ムτミセミイミオミスム).page | 11763 ++++++ .../main/resources/config/jndi-resources.xml | 4 + resources/src/main/resources/config/roles.xml | 2 + .../main/resources/database/datasource.xml | 22 + .../src/main/resources/mail/confirmation.html | 36 + .../main/resources/mail/reset_password.html | 36 + ...-4f10-b748-c9a7f33d31d9.component.override | 5666 +++ ...-4367-8ff3-7f049c284978.component.override | 1778 + ...-4c33-b29b-886876016415.component.override | 182 + ...-413e-babf-ce54cb4e5279.component.override | 1757 + ...-4b0e-b7a7-15a36bdeb682.component.override | 1062 + ...-4c2d-99df-924b5ba018d6.component.override | 140 + ...-47a8-a9dc-3170f1a99721.component.override | 1553 + ...-4df3-b93c-e48534e798db.component.override | 1641 + ...-423b-b6b5-727ecfce2ca1.component.override | 737 + ...-4662-96ad-84c0dae0ecff.component.override | 196 + ...-4453-a2df-d5ffafa2c019.component.override | 175 + ...-4960-9c59-02f4f0c2e4dd.component.override | 541 + ...-431e-815a-490959083787.component.override | 1765 + ...-48fe-9ae0-dec9b6f4c53c.component.override | 2367 ++ ...-4161-b8ae-ef66de5776b7.component.override | 1543 + ...-4360-8f61-1087179ad78b.component.override | 1552 + ...-485e-a069-18b92ab4f7f7.component.override | 900 + system-requirements.md | 117 + test/pom.xml | 201 + test/src/test/java/SuiteAdmin.java | 27 + test/src/test/java/old/AdminGroupIT.java | 332 + test/src/test/java/old/AdminRoleIT.java | 184 + test/src/test/java/old/AdminUserIT.java | 370 + test/src/test/java/old/BaseComponentIT.java | 141 + test/src/test/java/old/JWTokensIT.java | 322 + test/src/test/java/old/core/BasePage.java | 404 + test/src/test/java/old/core/BaseTest.java | 273 + test/src/test/java/old/core/Browser.java | 28 + .../old/core/BrowserArgumentProvider.java | 24 + .../test/java/old/page/AdminGroupPage.java | 199 + test/src/test/java/old/page/AdminOrgPage.java | 92 + .../test/java/old/page/AdminProcessPage.java | 73 + .../src/test/java/old/page/AdminRolePage.java | 76 + .../src/test/java/old/page/AdminUserPage.java | 246 + .../test/java/old/page/BaseComponentPage.java | 287 + test/src/test/java/old/page/InboxPage.java | 128 + test/src/test/java/old/page/LoginPage.java | 78 + .../src/test/java/old/page/ProcessesPage.java | 43 + test/src/test/java/old/util/DataUtil.java | 11 + .../test/java/old/util/ExecutionManager.java | 508 + .../test/java/old/util/PropertyManager.java | 21 + test/src/test/java/pages/AuthoritiesPage.java | 61 + .../test/java/pages/OrganizationsPage.java | 65 + test/src/test/java/pages/ProcessesPage.java | 51 + .../src/test/java/pages/RegistrationPage.java | 96 + .../test/java/pages/ResetPasswordPage.java | 58 + test/src/test/java/pages/TestProcessPage.java | 33 + test/src/test/java/tests/AuthoritiesIT.java | 119 + test/src/test/java/tests/LoginIT.java | 168 + test/src/test/java/tests/OrganizationsIT.java | 122 + test/src/test/java/tests/ProcessesIT.java | 104 + .../test/resources/junit-platform.properties | 29 + test/src/test/resources/logback.xml | 18 + test/src/test/resources/test.properties | 15 + 1081 files changed, 282568 insertions(+) create mode 100644 .gitignore create mode 100644 .studioignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 backend/backend-deps.txt create mode 100644 backend/deps3.txt create mode 100644 backend/deps4.txt create mode 100644 backend/deps5.txt create mode 100644 backend/frontend-deps.txt create mode 100644 backend/pom.xml create mode 100644 backend/src/main/java/AppConfig.java create mode 100644 backend/src/main/java/WebAppInitializer.java create mode 100644 backend/src/main/java/dto/jivoprofile/JivoProfileDto.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/BarMockChartV2Service.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/DoughnutMockChartV2Service.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/ErvuMultiChartDataSetService.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/RoundSingleChartDataSetService.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/label/AbstractRoundLabelConfiguration.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/label/DefaultRoundLabelConfiguration.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/label/RoundLabelConfiguration.java create mode 100644 backend/src/main/java/ervu_dashboard/component/chart/label/StaticRoundLabelDataSet.java create mode 100644 backend/src/main/java/ervu_dashboard/component/converter/UUIDValueConverter.java create mode 100644 backend/src/main/java/ervu_dashboard/component/filter/AbstractFilterReference.java create mode 100644 backend/src/main/java/ervu_dashboard/component/filter/FilterReference.java create mode 100644 backend/src/main/java/ervu_dashboard/component/filter/FilterReferences.java create mode 100644 backend/src/main/java/ervu_dashboard/component/filter/GraphFilterReference.java create mode 100644 backend/src/main/java/ervu_dashboard/component/filter/StaticFilterReference.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/DefaultCatalog.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Appeals.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/MainProfile.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReasonsAppeal.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReviewRating.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/TopicAppeal.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/MainProfileRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReasonsAppealRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReviewRatingRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/TopicAppealRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/MainDashboard.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/Appeals.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/RecruitmentCampaign.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/TotalRegistered.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/WaitingRegistration.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/AppealsRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/RecruitmentCampaignRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/TotalRegisteredRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/WaitingRegistrationRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Public.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Routines.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/routines/UuidGenerateV4.java create 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/Education.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Employment.java create 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/MaritalStatus.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/PubRecruitment.java create 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/Subpoena.java create 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/EducationRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EmploymentRecord.java create 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/MaritalStatusRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/PubRecruitmentRecord.java create 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/public_/tables/records/SubpoenaRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Ratings.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/AppearSubppoena.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConsiderationComplaint.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/Recruitment.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/AppearSubppoenaRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/ConsiderationComplaintRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/RecruitmentRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/RecruitmentCampaign.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Appeals.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Recruitment.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Subpoenas.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/AppealsRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/RecruitmentRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/SubpoenasRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Security.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/AccessLevel.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/Authority.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/EsiaUser.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserAccountUserGroup.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserGroupUserRole.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserRoleAuthority.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/OrgUnit.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccount.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccountRefreshToken.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserGroup.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserRole.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AccessLevelRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AuthorityRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/EsiaUserRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserAccountUserGroupRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserGroupUserRoleRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserRoleAuthorityRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/OrgUnitRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRefreshTokenRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserGroupRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserRoleRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Space.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryCommissariat.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryDistrict.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Region.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Testrecruitment.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryCommissariatRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryDistrictRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/RegionRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/TestrecruitmentRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Keys.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Tables.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/TotalRegistered.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Age.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Busyness.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/ChildMinor.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/DriverLicense.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/EducationLevel.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/MaritalStatus.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RegMilCat.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RemovedRegistry.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Subpoenas.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/AgeRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/BusynessRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/ChildMinorRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/DriverLicenseRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/EducationLevelRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/MaritalStatusRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RegMilCatRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RemovedRegistryRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/SubpoenasRecord.java create mode 100644 backend/src/main/java/ervu_dashboard/model/Font.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/BarMockDataset.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/BarMockDatasets.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/ChartDatasetType.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationData.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationDataSet.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDataset.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDatasets.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/ErvuChartDataSetDto.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationData.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationDataSet.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartColumnSort.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataDto.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetConfiguration.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDto.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDtoWrapper.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationData.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationDataSet.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticData.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticDataSet.java create mode 100644 backend/src/main/java/ervu_dashboard/model/chart/round/label/ChartLabelModel.java create mode 100644 backend/src/main/java/ru/micord/security/SecurityConfig.java create mode 100644 backend/src/main/java/service/loading/ProjectDefaultValueLoaderServiceImpl.java create mode 100644 backend/src/main/resources/.gitkeep create mode 100644 config.md create mode 100644 config/.gitignore create mode 100644 config/Dockerfile create mode 100644 config/Dockerfile.build create mode 100644 config/Dockerfile.secdb create mode 100644 config/JDK_version create mode 100644 config/browsers.json create mode 100644 config/create-databases.sh create mode 100644 config/docker-compose.secdb.yaml create mode 100644 config/docker-compose.selenoid.yaml create mode 100644 config/docker-compose.tests.yaml create mode 100644 config/docker-compose.tomcat.yaml create mode 100644 config/docker-compose.yaml create mode 100644 config/entrypoint.sh create mode 100644 config/patches/add-logger-database.cli create mode 100644 config/patches/default.cli create mode 100644 config/patches/system/add-demo-user.sh create mode 100644 config/patches/system/add-postgresql-driver.cli create mode 100644 config/patches/system/init.cli create mode 100644 config/secdb.sql create mode 100644 config/standalone/dev/standalone.xml create mode 100644 config/testing.env create mode 100644 config/tomcat/tomee/bin/setenv.sh create mode 100644 config/tomcat/tomee/conf/context.xml create mode 100644 config/tomcat/tomee/conf/tomcat-users.xml create mode 100644 config/tomcat/tomee/conf/webbpm.properties create mode 100644 config/tomcat/tomee/webapps/manager/META-INF/context.xml create mode 100644 distribution/pom.xml create mode 100644 frontend/.npmrc create mode 100644 frontend/angular.json create mode 100644 frontend/bs-config.json create mode 100644 frontend/index.html create mode 100644 frontend/index.webpack.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/pom.xml create mode 100644 frontend/preview.html create mode 100644 frontend/save.ts.metadata.js create mode 100644 frontend/src/resources/app-config.json create mode 100644 frontend/src/resources/app.version create mode 100644 frontend/src/resources/css/components-app.css create mode 100644 frontend/src/resources/css/components-dashboard.css create mode 100644 frontend/src/resources/css/inbox-app.css create mode 100644 frontend/src/resources/css/inbox-dashboard.css create mode 100644 frontend/src/resources/css/structure.css create mode 100644 frontend/src/resources/css/style.css create mode 100644 frontend/src/resources/fonts/gilroy-extrabold.otf create mode 100644 frontend/src/resources/fonts/gilroy-light.otf create mode 100644 frontend/src/resources/fonts/gilroy-medium.ttf create mode 100644 frontend/src/resources/fonts/gilroy-regular.ttf create mode 100644 frontend/src/resources/fonts/gilroy-semibold.ttf create mode 100644 frontend/src/resources/img/access_denied.png create mode 100644 frontend/src/resources/img/admin.png create mode 100644 frontend/src/resources/img/bg_image.png create mode 100644 frontend/src/resources/img/country-flags.jpg create mode 100644 frontend/src/resources/img/create.png create mode 100644 frontend/src/resources/img/icons/dots-six-vertical.svg create mode 100644 frontend/src/resources/img/icons/settings-sm.svg create mode 100644 frontend/src/resources/img/logo-full.png create mode 100644 frontend/src/resources/img/logo-full.svg create mode 100644 frontend/src/resources/img/logo.png create mode 100644 frontend/src/resources/img/progress.gif create mode 100644 frontend/src/resources/img/project.png create mode 100644 frontend/src/resources/img/svg/arrow-right-wt.svg create mode 100644 frontend/src/resources/img/svg/arrow-right.svg create mode 100644 frontend/src/resources/img/svg/bg-diamond.svg create mode 100644 frontend/src/resources/img/svg/bg-pers.svg create mode 100644 frontend/src/resources/img/svg/close.svg create mode 100644 frontend/src/resources/img/svg/mark.svg create mode 100644 frontend/src/resources/img/tasks.png create mode 100644 frontend/src/resources/template/app/component/access_denied.html create mode 100644 frontend/src/resources/template/app/component/app_footer.html create mode 100644 frontend/src/resources/template/app/component/app_header.html create mode 100644 frontend/src/resources/template/app/component/application_version.html create mode 100644 frontend/src/resources/template/app/component/progress-indication.html create mode 100644 frontend/src/resources/template/ervu-dashboard/ErvuChartV2.html create mode 100644 frontend/src/resources/template/ervu-dashboard/FilterContainer.html create mode 100644 frontend/src/resources/template/preview/preview.html create mode 100644 frontend/src/resources/template/preview/preview_container.html create mode 100644 frontend/src/resources/template/webbpm/home.html create mode 100644 frontend/src/resources/template/webbpm/page.html create mode 100644 frontend/src/resources/template/webbpm/webbpm.html create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/ChartUtils.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/ErvuChartV2.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/model/AxisGridSettings.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/model/AxisSettings.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/model/AxisTicksSettings.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/model/ChartBarSettings.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/model/ChartLegendSettings.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/ArcBackgroundChartPlugin.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/BarDataLabelChartPlugin.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/ChartPlugin.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/DoughnutCenterLabelsPlugin.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/RoundArcCornersChartPlugin.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/formatters/ChartLabelFormatter.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/formatters/UnitsLabelReplaceValueChartLabelFormatter.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/chart/plugin/model/ArcDatasetBackgroundConfig.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/filter/FilterContainer.ts create mode 100644 frontend/src/ts/ervu-dashboard/component/filter/FilterGroupDelegate.ts create mode 100644 frontend/src/ts/ervu-dashboard/formatter/FormatterUtils.ts create mode 100644 frontend/src/ts/ervu-dashboard/formatter/ReplaceValueTextFormatter.ts create mode 100644 frontend/src/ts/ervu-dashboard/formatter/UnitsLabelReplaceValueTextFormatter.ts create mode 100644 frontend/src/ts/ervu-dashboard/formatter/model/ReplaceValueModel.ts create mode 100644 frontend/src/ts/main.aot.ts create mode 100644 frontend/src/ts/main.ts create mode 100644 frontend/src/ts/modules/app/app-routing.module.ts create mode 100644 frontend/src/ts/modules/app/app.module.ts create mode 100644 frontend/src/ts/modules/app/component/access-denied.component.ts create mode 100644 frontend/src/ts/modules/app/component/app-footer.component.ts create mode 100644 frontend/src/ts/modules/app/component/app-header.component.ts create mode 100644 frontend/src/ts/modules/app/component/app-progress-indication.component.ts create mode 100644 frontend/src/ts/modules/app/component/application-version.component.ts create mode 100644 frontend/src/ts/modules/app/service/app-progress-indication.service.ts create mode 100644 frontend/src/ts/modules/preview/component/preview-container.component.ts create mode 100644 frontend/src/ts/modules/preview/component/preview.component.ts create mode 100644 frontend/src/ts/modules/preview/preview-routing.module.ts create mode 100644 frontend/src/ts/modules/preview/preview.main.ts create mode 100644 frontend/src/ts/modules/preview/preview.module.ts create mode 100644 frontend/src/ts/modules/preview/service/http-preview-interceptor.service.ts create mode 100644 frontend/src/ts/modules/webbpm/component/home.component.ts create mode 100644 frontend/src/ts/modules/webbpm/component/webbpm.component.ts create mode 100644 frontend/src/ts/modules/webbpm/handler/global-error.handler.prod.ts create mode 100644 frontend/src/ts/modules/webbpm/handler/global-error.handler.ts create mode 100644 frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts create mode 100644 frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts create mode 100644 frontend/src/ts/modules/webbpm/interceptor/http-security-error-interceptor.dev.ts create mode 100644 frontend/src/ts/modules/webbpm/webbpm-routing.module.ts create mode 100644 frontend/src/ts/modules/webbpm/webbpm.module.ts create mode 100644 frontend/src/ts/page.routing.d.ts create mode 100644 frontend/src/ts/polyfills.ts create mode 100644 frontend/src/ts/vendor.ts create mode 100644 frontend/systemjs.config.js create mode 100644 frontend/systemjs.preview.config.js create mode 100644 frontend/tsconfig.aot.json create mode 100644 frontend/tsconfig.json create mode 100644 frontend/webpack.aot.config.js create mode 100644 packages/.gitkeep create mode 100644 packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/MANIFEST.MF create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components-package.xml create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/BpmnStartProcessVariable.ts.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミソミオムミームひク_ミクミキ_ミウムミームミー_ムムτ禍スミセムムひク_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミソミオムミームひク_ミセムびミオムひー_ミクミキ_ムミセムミシム祇ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/ミ墟スミセミソミコミー_ミソミオムミームひク_ミクミキ_ミウムミームミー_ムムτ禍スミセムムひク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/ミ墟スミセミソミコミー_ミソミオムミームひク_ミセムびミオムひー_ミクミキ_ムミセムミシム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミイム巾アミセムミー_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミイム巾キミセミイミー_ミセム威クミアミコミク_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミイム巾ソミセミサミスミオミスミクム柔SQL_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミエミサム柔ムミクミサム袴びミームミクミク_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミキミーミウムムσキミコミク_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミスミーミイミクミウミームミクミク_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミセムひシミオミスム祇ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダミセムミクムムひコミク_ムミクミサム袴びミー_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダムミセムムミーミスミオミスミクム柔ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミスミセミソミコムダムσエミーミサミオミスミクム柔ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミイム巾アミセムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミイム巾キミセミイミー_ミセム威クミアミコミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミイム巾ソミセミサミスミオミスミクム柔SQL.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミイム巾ソミセミサミスミオミスミクム柔ミアミクミキミスミオム-ミソムミセムミオムムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミエミサム柔ムミクミサム袴びミームミクミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミキミーミウムムσキミコミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミキミーミソムτミコミー_ミアミクミキミスミオム-ミソムミセムミオムムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミスミーミイミクミウミームミクミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミセムひシミオミスム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミセムミクムムひコミク_ムミクミサム袴びミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミソミセミエミソミクムミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ミソムミセミイミオムミコミク_ミソミセミエミソミクムミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ムミセムムミーミスミオミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミー_ムσエミーミサミオミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/ミ墟スミセミソミコミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ContainerValueByEventLoader_ミク_ContainerValueByEventLoaderRpcService.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ漬オムムひクミコミーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ漬コミサミーミエミコミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ漬コミサミーミエミコミク_ミ」ミソムミーミイミサミオミスミクミオ_ミ漬コミサミーミエミコミセミケ_ミ渙オムミオムミセミエ_ミクミキ_ムひオミコムτ禍オミケ_ミスミー_ミソミセムミサミオミエムτ紗禾τ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ漬コミサミーミエミコミク_ミ」ミソムミーミイミサミオミスミクミオ_ミ漬コミサミーミエミコミセミケ_ミ渙オムミオムミセミエ_ミクミキ_ムひオミコムτ禍オミケ_ミスミー_ミソムミオミエム巾エムτ禾τ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ漬コミサミーミエミコミク_ミ」ミソムミーミイミサミオミスミクミオ_ミ漬コミサミーミエミコミセミケ_ミ渙オムミオムミセミエ_ミスミー_ミイミコミサミーミエミコムダミソミセ_ミスミセミシミオムム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ寅セムミクミキミセミスムひーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ酉ムσソミソミー_ミソミセミサミオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ頒クミーミサミセミウ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ頒クミーミサミセミウ_ミ柘巾キミイミームび.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ頒クミーミサミセミウ_ミ。ミコムム錦び.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ漬オムムひクミコミーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ漬コミサミーミエミコミー_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ寅セムミクミキミセミスムひーミサム糊スム巾ケ_ミコミセミスムひオミケミスミオム_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ酉ムσソミソミー_ミソミセミサミオミケ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ墟セミスムひオミケミスミオム_ミイミコミサミーミエミセミコ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ墟セミスムひオミケミスミオム_ミコミスミセミソミセミコ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ斷ーミアミセム_ムミクミサム袴びミセミイ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ。ミイミセムミームミクミイミーミオミシミーム柔ミソミーミスミオミサム契ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ、ミセムミシミー_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ榧コミスミセ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟ーミコ_ミクムミソミセミサム糊キミセミイミームび契ミ頒クミーミサミセミウ_ミエミサム柔ミイム巾イミセミエミー_ミソムミオミエムσソムミオミカミエミオミスミクム柔ミソミセミサム糊キミセミイミームひオミサム酸ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟セミスムひオミケミスミオム_ミイミコミサミーミエミセミコ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟セミスムひオミケミスミオム_ム\ミコミスミセミソミコミーミシミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ墟セミスムひオミケミスミオムム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ斷ーミアミセム_ムミクミサム袴びミセミイ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ榧コミスミセ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ。ミイミセムミームミクミイミーミオミシミーム柔ミソミーミスミオミサム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ。ムひクミサミク-ミコミセミスムひオミケミスミオムミセミイ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ、ミセムミシミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ、ミセムミシミー_ミアミオミキ_ミソミオムミオムミセミエミー_ミ樮ミスミセミイミスム巾オ_ミソミームミーミシミオムびム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ミ、ミセムミシミー_ム\ミソミオムミオムミセミエミセミシ_ミ樮ミスミセミイミスム巾オ_ミソミームミーミシミオムびム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/control-properties.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/editable-grids/EditableGrid.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/EditableOneToMany.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToMany.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToManyField.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/OneToMany.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/TreeField.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミ、ミクミサム袴び_ミソミセ_ムミクムミサミセミイミセミシムダミソミセミサム酸ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミエミセミアミーミイミクムび契ム災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコムダミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミエミセミアミーミイミクムび契ム災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ミエミームひオ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミエミセミアミーミイミクムび契ム災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミシミスミセミウミセムムびミセムミスミセミウミセ_ミイミイミセミエミー_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミエミセミアミーミイミクムび契ム災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ムムひームひクムミスミセミシムダミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコムダミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミエミセミアミーミイミクムび契ム災サミオミシミオミスム_ミ、ミクミサム袴び_ミソミセ_ムひオミコムムひセミイミセミシムダミソミセミサム酸ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ、ミクミサム袴び_ミソミセ_ミ、ミサミーミウムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミーミエムミオムミー_ミ、ミ侑籍。_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム柔ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ミエミームひオ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ミコミセミシミソミセミスミオミスムひオ_ミ、ミサミーミウ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミーミエムミオムミー_ミ、ミ侑籍。.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ミソミセミサム酸ミシミスミセミウミセムムびミセムミスミセミウミセ_ミイミイミセミエミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ムムひームひクムミスミセミシムダミイム巾ソミーミエミーム紗禍オミシムダムミソミクムミコム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ムひオミコムムひセミイミセミシムダミソミセミサム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴び_ミソミセ_ムミクムミサミセミイミセミシムダミソミセミサム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/ミ、ミクミサム袴びム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ籍エムミオム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ柘ミオミシム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ柘巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ頒ームひー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ頒オミスミオミカミスミセミオ_ミソミセミサミオ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミ慴スミセミウミセムムびミセムミスミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミ渙オムミオミコミサム紗ミームひオミサム契ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミ「ミオミコムムひセミイミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミエミオミスミオミカミスミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミコミセミシミソミセミスミオミスムびダミ「ミオミコムム_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミスミオムミコミセミサム糊コミセ_ミソミセミサミオミケ_ミ頒ームひー_ミスミー_ムムびミーミスミクムムダム\ミーミイムひセミシミームひクムミオムミコミクミシ_ミキミーミソミセミサミスミオミスミクミオミシ_ミソミセムミサミオミエミスミオミウミセ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミソミセミサミオ_ミ柘ミオミシム柔ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミソミセミサミオ_ミ頒ームひー_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ムミソミクムミセミコ_ム\ミソミセミクムミコミセミシ_ミエミサム柔ミイム巾アミセムミー_ミセミエミスミセミウミセ_ミキミスミームミオミスミクム柔ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ムムひームひクムミスム巾ケ_ミイム巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ムミクムミサミセミイミセミオ_ミソミセミサミオ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ム災サミオミシミオミスム_ミ柘巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ_ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミエミセミアミーミイミクムび契ム災サミオミシミオミスム_ミ。ムひームひクムミスム巾ケ_ミソミオムミオミコミサム紗ミームひオミサム契ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ厘ーミウムムσキミコミー_ムミーミケミサミー_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ渙セミサミオ_ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム柔ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_ミソミセミサミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ、ミサミーミウ_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミクムミソミセミサム糊キミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ「ミオミコムム_ミエミサム柔ミセムひセミアムミーミカミオミスミクム柔ミスミーミキミイミーミスミクム柔ミセムミウミーミスミクミキミームミクミク_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミクムミソミセミサム糊キミセミイミームび契ムひオミコムムひセミイミセミオ_ミソミセミサミオ_ミイ_ミコミームミオムムひイミオ_ミソミームミーミシミオムびミー_ミエミサム柔ミソミオムミームひスミセミケ_ムミセムミシム祇.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミクムミソミセミサム糊キミセミイミームび契ムひオミコムムひセミイミセミオ_ミソミセミサミオ_ミエミサム柔ミスミームムびミセミケミコミク_ミイミクミエミクミシミセムムひク_ミエムムσウミクム_ム災サミオミシミオミスムひセミイ_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ墟ーミコ_ミセムひセミアムミーミキミクムび契ミスミーミキミイミーミスミクミオ_ミセムミウミーミスミクミキミームミクミク_ムひオミコムムひセミシ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ慴スミセミウミセムムびミセムミスミセミオ_ミソミセミサミオ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ斷ームムびミセミケミコミー_ミイミキミーミクミシミセミキミーミイミクムミクミシム錦_ミソミセミサミオミケ_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ渙オムミオミコミサム紗ミームひオミサム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ渙セミサミオ_ミイミイミセミエミー_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ_ミソミセミサミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ。ミソミクムミセミコ_ム\ミソミセミクムミコミセミシ_ミエミサム柔ミイム巾アミセムミー_ミセミエミスミセミウミセ_ミキミスミームミオミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ。ムひームひクムミスム巾ケ_ミイム巾ソミーミエミーム紗禍クミケ_ムミソミクムミセミコ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ。ムひームひクムミスム巾ケ_ミソミオムミオミコミサム紗ミームひオミサム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ。ムひクミサミク-ミソミセミサミオミケ-ミイミイミセミエミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ「ミオミコムム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ「ミオミコムムひセミイミセミオ_ミソミセミサミオ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ、ミーミケミサ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ、ミクミサム袴びミームミクム柔ミクムムひセムミスミクミコミー_ミエミーミスミスム錦.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ、ミクミサム袴びミームミクム柔ミクムムひセムミスミクミコミー_ミエミーミスミスム錦_ミセミエミスミセミウミセ_ミクミキ_ミソミセミサミオミケ_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム柔ミイ_ミキミーミイミクムミクミシミセムムひク_ミセム_ミイム巾アムミーミスミスミセミウミセ_ミキミスミームミオミスミクム柔ミイ_ミエムムσウミセミシ_ミソミセミサミオ_ム\ミソミセミエミアミセムミセミシ_ミキミスミームミオミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミ、ミサミーミウ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ミァミクムミサミセミイミセミオ_ミソミセミサミオ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ColumnNavigationRenderer.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/CustomSqlLoadDao-ミク-CustomSqlFormDao.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridServiceWithAggregationColumnsImpl-ミーミウムミオミウミームミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridV2.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/MaskCellValueFormatter.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/RowNavigationHandler.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/SelectAndNavigateCellGridConfigurator.ts-(ミ墟セミサミセミスミコミク-ム-ミスミーミイミクミウミームミクミオミケ).html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ飯ミオミイミセミイミクミエミスミーム柔ムひーミアミサミクムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミ「ミーミアミサミクムムダミスミー_ムムびミーミスミクムムダム\ムミクミサム袴びミームミクミオミケ_ミキミーミソミクムミオミケ_ミソミセ_ムτミサミセミイミクム酸.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ墟ーミコ_ミエミセミアミーミイミクムび契ミスミー_ムムびミーミスミクムムダミ「ミーミアミサミクムムダム\ミソミセムムびミーミスミクムミスム巾シ_ミセムひセミアムミーミカミオミスミクミオミシ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ墟ーミコ_ミエミセミアミーミイミクムび契ムミイム紹キミーミスミスム巾オ_ミ「ミーミアミサミクムム祇ミスミー_ムムびミーミスミクムムダ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ飯ミオミイミセミイミクミエミスミーム柔ムひーミアミサミクムミー_ミスミー_ミソミセミサム糊キミセミイミームひオミサム袴ミコミセミケ_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ墟ーミコ_ムミセムムミーミスミクムび契ミクミエミオミスムひクムミクミコミームひセム_ムミイム紹キミーミスミスミセミケ_ムひーミアミサミクムム祇ミクムミソミセミサム糊キムτ柔ムミコムム錦ひセミオ_ムミクムミサミセミイミセミオ_ミソミセミサミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ斷ームムびミセミケミコミー_ミコミセミサミセミスミセミコ_ミ「ミーミアミサミクムム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ樮ミクムムひクムび契ムミセムミシミームひクムミセミイミーミスミクミオ_ミコミセミサミセミスミセミコ_ムひーミアミサミクムム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ「ミーミアミサミクムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ「ミーミアミサミクムミー_ム\ミソミセムムびミーミスミクムミスム巾シ_ミセムひセミアムミーミカミオミスミクミオミシ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ミ「ミーミアミサミクムム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/AC._ミ慴オムひセミエム-ミセミアム諌オミコムひセミイ-ムムびミーミスミクムム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ConditionOperation.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/EventCalendar.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/HyperLink.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/IFrame.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/InnerHtml.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Menu.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuGroup.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuItem.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ValidationController.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ頒クミーミウムミーミシミシミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ頒クミーミウムミーミシミシミー_chart-v2.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ頒クミーミウムミーミシミシミー_ミ寅ーミスムびひー_ミ墟ーミサミオミスミエミームミスム巾ケ_ミソミサミーミス_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ頒クミーミウムミーミシミシミー_ミ寅ーミスムびひー_ミ墟ーミサミオミスミエミームミスム巾ケ_ミソミサミーミス_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ頒クミーミウムミーミシミシミー_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ墟ーミコ_ミキミーミエミオミケムムひイミセミイミームび契ミコミセミシミソミセミスミオミスムびダミ榧アムミーミアミセムひコミー_ムミセミアム錦ひクミケ_ミスミー_ムムびミーミスミクムミオ_.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ斷ームムびミセミケミコミー_ムミクミサム袴びミームミクミク_ミイ_ムひーミアミサミクムミオ_ミク_ミウムミームミクミコミオ_ミエミサム柔ミコミセミシミソミセミスミオミスムび祇ミ頒クミーミウムミーミシミシミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミ榧アムミーミアミセムひコミー_ムミセミアム錦ひクミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ミミーミキミスム巾オ_ミコミセミシミソミセミスミオミスムび.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ漬コミサム紗ミクムび契ミイム錦ミクムミサミオミスミクミオ_ミシミームひオミシミームひクムミオムミコミクム_ミセミソミオムミームミクミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ頒セミアミーミイミクムび契ムムびミセミコムダミコ_ミキミスミームミオミスミクム酸ミイ_ムひオミコムτ禍オミシ_ミソミセミサミオ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ厘ーミソミセミサミスミクムび契ミキミスミームミオミスミクミオミシ_ミクミキ_ミソミオムミオミシミオミスミスミセミケ_ミソムミセムミオムムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ厘ーミソミセミサミスミクムび契ミキミスミームミオミスミクミオミシ_ミソミセ_ムσシミセミサムミーミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ厘ーミソミセミサミスミクムび契ミキミスミームミオミスミクミオミシ_ミソミセ_ムσシミセミサムミーミスミクム酸ミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ厘ーミソミセミサミスミクムび契ミキミスミームミオミスミクミオミシ_ミソミセ_ムσシミセミサムミーミスミクム酸ミ。ミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ厘スミームミオミスミクミオ_ミソミセ_ムσシミセミサムミーミスミクム酸ミ渙セミソミセミサミスム紹オミシム巾ケ_ムミソミクムミセミコ_ミキミーミイミクムミクミシム錦_ミキミーミソミクムミオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ墟ーミコ-ミエミセミアミーミイミクムび-ム尉ミクムムび-ミイ-ミシミセミエムσサム-ミソミオムミームひク-JasperReports.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ斷ームムびミセミケミコミー_ミ酉ミームミー_ムムτ禍スミセムムひオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ榧アム禍クミオ-ムムひクミサミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ榧アム禍クミオ_ムミイミセミケムムひイミー_ミコミセミシミソミセミスミオミスム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ榧ソムミオミエミオミサミクムび契ミソムミーミイミー_ムひオミコムτ禍オミウミセ_ミソミセミサム糊キミセミイミームひオミサム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ榧ソムミオミエミオミサミクムび契ムミセミサミク_ムひオミコムτ禍オミウミセ_ミソミセミサム糊キミセミイミームひオミサム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ榧ソムミオミエミオミサミクムび契ムひオミコムτ禾τ酸ミエミームびダミク_ムミシミオムムひクムび契ミオム狙ミイミソミオムミオミエ_ミクミサミク_ミスミーミキミーミエ_ミスミー_ミキミーミエミーミスミスム巾ケ_ミソミオムミクミセミエ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ渙セミエミウムムσキミコミー_ミエミーミスミスム錦.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ渙セミエミウムムσキミコミー_ミエミーミスミスム錦_ミソミセ_ムσシミセミサムミーミスミクム.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ湲ミオミセミアムミーミキミセミイミーミスミクミオ_ムひオミコムτ禍オミケ_ミエミームび.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ湲ミオミセミアムミーミキミセミイミームび契ミイ_ミコミセミサミセミスミコミク_ムミセ_ミキミスミームミオミスミクム紹シミク-ミソミオムミオムミセミエミーミシミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ。ミコミサミオミクムび契ミスミオムミコミセミサム糊コミセ_ミキミスミームミオミスミクミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ。ミコミセミスミイミオムムひクムミセミイミームび契ミキミスミームミオミスミクミオ_ミイ_ムミオミサミセムミクムミサミオミスミスム巾ケ_ムひクミソ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ。ミシミオムムひクムび契ミエミームびダミクミキ_ミソミセミサム柔ミスミー_ミソミオムミクミセミエ_ミイミソミオムミオミエ_ミクミサミク_ミスミーミキミーミエ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ。ミセムムミーミスミオミスミクミオ_ミキミーミウミセミサミセミイミコミー_ミイム巾アムミーミスミスミセミケ_ミイミコミサミーミエミコミク_ミイ_ミソミオムミオミシミオミスミスムτ酸ミソムミセムミオムムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ。ミセムムミーミスミクムび契ミキミスミームミオミスミクミオ_ミイ_ミソミオムミオミシミオミスミスムτ酸ミソムミセムミオムムミー.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ」ミソムミーミイミサミオミスミクミオ_ミスミーミイミクミウミームミクミオミケ.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/ミ、ムσスミコムミクミク.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/apache-maven-fluido-1.9.min.css create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/print.css create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/site.css create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependencies.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-info.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-management.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/distribution-management.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.eot create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.svg create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.ttf create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.woff create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/EmailHandler.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/JiraCreateIssueHandler.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/RESTHandler.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SetVariableHandler.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SqlAttachmentsEmailHandler.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/Telegram.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/UserAuthorityHandler.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/accessories-text-editor.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/add.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/apache-maven-project-2.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/application-certificate.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/close.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/contact-new.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/document-properties.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/drive-harddisk.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/fix.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_error_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_help_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_info_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_success_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_warning_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/image-x-generic.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/internet-web-browser.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-black.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-white.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/maven-feather.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/network-server.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/package-x-generic.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/pre-release.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/retired.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/sandbox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/remove.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/rss.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/update.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/window-new.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings-white.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/js/apache-maven-fluido-1.9.min.js create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/plugin-management.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/plugins.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/project-info.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/css/apache-maven-fluido-1.9.min.css create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/css/print.css create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/css/site.css create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/dependencies.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/dependency-info.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/dependency-management.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/distribution-management.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/fonts/glyphicons-halflings-regular.eot create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/fonts/glyphicons-halflings-regular.svg create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/fonts/glyphicons-halflings-regular.ttf create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/fonts/glyphicons-halflings-regular.woff create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/accessories-text-editor.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/add.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/apache-maven-project-2.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/application-certificate.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/close.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/contact-new.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/document-properties.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/drive-harddisk.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/fix.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/icon_error_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/icon_help_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/icon_info_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/icon_success_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/icon_warning_sml.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/image-x-generic.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/internet-web-browser.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/logos/build-by-maven-black.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/logos/build-by-maven-white.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/logos/maven-feather.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/network-server.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/package-x-generic.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/profiles/pre-release.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/profiles/retired.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/profiles/sandbox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/remove.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/rss.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/update.gif create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/images/window-new.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/img/glyphicons-halflings-white.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/img/glyphicons-halflings.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/index.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/js/apache-maven-fluido-1.9.min.js create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/plugin-management.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/plugins.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/project-info.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/scm.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/ru/summary.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/scm.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/summary.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/user-management/CheckUserAuthority.ts.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/user-management/CheckUserRole.ts.html create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Button.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Cancel.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/ClearFilter.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Delete.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Download.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/EntityGraphReporting.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Error.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/ExecProcessButton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/ExecuteSQLButton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Filter.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/FormReporting.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Navigation.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Save.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/Select.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/SignButton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/buttons/StartProcessButton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/CollapsiblePanel.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/Dialog.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/DropDown.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/FieldSet.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/FilterGroup.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/Form.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/HBox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/TabContainer.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/TabItem.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/VBox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/containers/Window.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/editable-grids/EditableGrid.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/Address.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/Autocomplete.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/Checkbox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/Combobox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/DateTimePicker.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/EditableLinks.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/EditableOnetoMany.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/FilePreview.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/FileUpload.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/ManytoMany.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/ManytoManyField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/MoneyField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/NumberField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/OnetoMany.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/Radiobutton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/SignVerification.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/StaticCombobox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/StaticRadiobutton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/Text.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/TextArea.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/TextField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/TimePicker.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/TreeField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/TreeMultiField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/Address.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/Autocomplete.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/Boolean.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/Checkbox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/Combobox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/DateTimePicker.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/FileUpload.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/MoneyField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/NumberField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/Radiobutton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/StaticCombobox.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/StaticRadiobutton.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/Text.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/TextArea.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/TextField.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/fields/filters/TimePicker.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/grids/Grid.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/grids/PagingGrid.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/grids/TreeGrid.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/uncategorized/ActionController.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/uncategorized/Calendar.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/uncategorized/Chart.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/uncategorized/GanttChart.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/uncategorized/Menu.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/uncategorized/ValidationController.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/icons/uncategorized/iframe.png create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/cancel-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/cancel-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/clear-filter-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/clear-filter-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/delete-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/delete-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/download-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/download-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/entity-graph-reporting-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/entity-graph-reporting-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/error-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/error-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/execute-sql-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/execute-sql-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/filter-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/filter-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/form-reporting-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/form-reporting-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/navigation-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/navigation-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/save-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/save-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/select-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/select-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/sign-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/sign-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/start-process-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/buttons/start-process-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/common/project-scripts-localization.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/common/project-scripts-localization_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/common/webbpm-scripts-localization.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/common/webbpm-scripts-localization_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/collapsible-panel.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/collapsible-panel_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/dialog.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/dialog_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/drop-down.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/drop-down_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/field-set.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/field-set_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/filter-group.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/filter-group_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/form.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/form_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/h-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/h-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/i-frame.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/i-frame_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/tab-container.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/tab-container_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/tab-item.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/tab-item_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/v-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/v-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/window.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/containers/window_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/default-components.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/default-components_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/autocomplete.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/autocomplete_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/check-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/check-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/combo-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/combo-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/date-time-picker.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/date-time-picker_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/editable-grid.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/editable-grid_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/number-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/number-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/one-to-many.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/one-to-many_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/read-only.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/read-only_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/text-area.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/text-area_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/text-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/text-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/time-picker.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/editable-grids/time-picker_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/address.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/address_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/autocomplete.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/autocomplete_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/check-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/check-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/combo-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/combo-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/date-time-picker.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/date-time-picker_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/editable-one-to-many.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/editable-one-to-many_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/file-preview.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/file-preview_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/file-upload-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/file-upload-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/file-upload.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/file-upload_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-autocomplete.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-autocomplete_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-boolean.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-boolean_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-check-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-check-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-combo-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-combo-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-date-time-picker.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-date-time-picker_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-fias-address.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-fias-address_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-number-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-number-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-radio-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-radio-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-static-combo-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-static-combo-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-text-area.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-text-area_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-text-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/filters/filter-text-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/link-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/link-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/many-to-many-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/many-to-many-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/many-to-many.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/many-to-many_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/money-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/money-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/multi-value-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/multi-value-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/number-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/number-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/one-to-many.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/one-to-many_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/radio-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/radio-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/sign-verification.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/sign-verification_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/static-combo-box.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/static-combo-box_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/static-radio-button.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/static-radio-button_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/text-area.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/text-area_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/text-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/text-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/text.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/text_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/time-picker.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/time-picker_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/tree-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/tree-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/tree-multi-field.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/fields/tree-multi-field_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/grids/grid.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/grids/grid_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/grids/paging-grid.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/grids/paging-grid_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/grids/tree-grid.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/grids/tree-grid_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/action-controller.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/action-controller_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/chart.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/chart_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/event-calendar.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/event-calendar_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/gantt-chart.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/gantt-chart_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/hyper-link.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/hyper-link_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/i-frame.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/i-frame_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/inner-html.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/inner-html_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/menu-group.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/menu-group_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/menu-item.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/menu-item_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/validation-controller.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/components/localization/uncategorized/validation-controller_en_US.properties create mode 100644 packages/ru.cg.webbpm.packages.base.resources/META-INF/package-descriptor.xml create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/Button.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/CancelButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/ClearFilterButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/DeleteButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/DownloadButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/ErrorButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecProcessButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/ExecuteSqlButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/FilterButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/NavigationButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/SaveButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/SelectButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/SignButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/StartProcessButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/EntityGraphReportingButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/buttons/reporting/FormReportingButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/CollapsiblePanel.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/Dialog.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/DropDown.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/FieldSet.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/FilterGroup.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/Form.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/HBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/TabContainer.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/TabItem.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/VBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/containers/Window.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/EditableGrid.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/AutocompleteGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/CheckBoxGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ComboBoxGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/DateTimePickerGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/MoneyFieldGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/NumberFieldGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/OneToManyGridColumnV2.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyClientGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/ReadonlyServerGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/StaticComboBoxGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextAreaGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TextFieldGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/editable-grids/columns/TimePickerGridColumn.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/Address.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/Autocomplete.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/CheckBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/ComboBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/DateTimePicker.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/EditableOneToMany.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/FilePreview.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/FileUpload.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToMany.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/ManyToManyField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/MoneyField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/NumberField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToMany.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/OneToManyV2.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/RadioButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/SignVerification.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticComboBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/StaticRadioButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/Text.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/TextArea.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/TextField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/TimePicker.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/TreeField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/EditableGrid.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/editableonetomany/Form.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/fileupload/FileUploadField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAddress.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterAutocomplete.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterBoolean.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterCheckBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterComboBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterDateTimePicker.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterNumberField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterRadioButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterStaticComboBox.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextArea.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/filters/FilterTextField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/LinkField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/fields/treefield/MultiValueField.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/grids/Grid.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Column.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/grids/GridV2Group.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/grids/PagingGrid.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/grids/TreeGrid.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ActionController.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Calendar.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/Chart.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ChartV2.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/EventCalendar.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/GanttChart.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/HyperLink.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/IFrame.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/InnerHtml.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuGroup.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/MenuItem.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/component/uncategorized/ValidationController.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/converters/converters.jar create mode 100644 packages/ru.cg.webbpm.packages.base.resources/metadata/java.metadata create mode 100644 packages/ru.cg.webbpm.packages.base.resources/metadata/typescript.metadata.json create mode 100644 packages/ru.cg.webbpm.packages.base.resources/process-instance/ProcessInstance.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/process-instance/ProcessInstanceDiagram.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/process-instance/ProcessInstanceList.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/Groups.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/GroupsCreate.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/GroupsEdit.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/OrganizationEdit.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/Organizations.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/Roles.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/RolesEdit.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/SecurityFeatures.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/StaticRouteNavigationButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/StaticRouteSelectButton.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/UserForm.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/Users.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/UsersCreate.component create mode 100644 packages/ru.cg.webbpm.packages.base.resources/user-management/UsersEdit.component create mode 100644 pentaho_scripts/dashboards.kjb create mode 100644 pentaho_scripts/main_dashboard.ktr create mode 100644 pentaho_scripts/notregistered.ktr create mode 100644 pentaho_scripts/recruitment.ktr create mode 100644 pentaho_scripts/total_registered.ktr create mode 100644 pom.xml create mode 100644 project.md create mode 100644 resources/pom.xml create mode 100644 resources/src/main/resources/META-INF/components-package.xml create mode 100644 resources/src/main/resources/META-INF/filtered/resources.properties create mode 100644 resources/src/main/resources/business-model/.gitkeep create mode 100644 resources/src/main/resources/business-model/appeals.page create mode 100644 resources/src/main/resources/business-model/citizen.page create mode 100644 resources/src/main/resources/business-model/citizencard.page create mode 100644 resources/src/main/resources/business-model/main.page create mode 100644 resources/src/main/resources/business-model/milregistration.page create mode 100644 resources/src/main/resources/business-model/notregistered.page create mode 100644 resources/src/main/resources/business-model/ratings.page create mode 100644 resources/src/main/resources/business-model/recruitment.page create mode 100644 resources/src/main/resources/business-model/ミ柘ミオミウミセ ミスミー ムτミオムひオ (2ミケ ムτミセミイミオミスム).page create mode 100644 resources/src/main/resources/config/jndi-resources.xml create mode 100644 resources/src/main/resources/config/roles.xml create mode 100644 resources/src/main/resources/database/datasource.xml create mode 100644 resources/src/main/resources/mail/confirmation.html create mode 100644 resources/src/main/resources/mail/reset_password.html create mode 100644 resources/src/main/resources/overrides/0f470331-dfb0-4f10-b748-c9a7f33d31d9.component.override create mode 100644 resources/src/main/resources/overrides/0f8d0a8b-8014-4367-8ff3-7f049c284978.component.override create mode 100644 resources/src/main/resources/overrides/16071adb-3bdf-4c33-b29b-886876016415.component.override create mode 100644 resources/src/main/resources/overrides/38c2de2f-c5dd-413e-babf-ce54cb4e5279.component.override create mode 100644 resources/src/main/resources/overrides/4e314e88-02d6-4b0e-b7a7-15a36bdeb682.component.override create mode 100644 resources/src/main/resources/overrides/57537dbd-c468-4c2d-99df-924b5ba018d6.component.override create mode 100644 resources/src/main/resources/overrides/5cc0e63d-f697-47a8-a9dc-3170f1a99721.component.override create mode 100644 resources/src/main/resources/overrides/5f9c58f8-9ee1-4df3-b93c-e48534e798db.component.override create mode 100644 resources/src/main/resources/overrides/67605d63-1081-423b-b6b5-727ecfce2ca1.component.override create mode 100644 resources/src/main/resources/overrides/76e91ef4-d2ef-4662-96ad-84c0dae0ecff.component.override create mode 100644 resources/src/main/resources/overrides/7a57e082-99e3-4453-a2df-d5ffafa2c019.component.override create mode 100644 resources/src/main/resources/overrides/8e1d9023-42c0-4960-9c59-02f4f0c2e4dd.component.override create mode 100644 resources/src/main/resources/overrides/a4d442cf-72a8-431e-815a-490959083787.component.override create mode 100644 resources/src/main/resources/overrides/c4b48815-f449-48fe-9ae0-dec9b6f4c53c.component.override create mode 100644 resources/src/main/resources/overrides/ca7390f1-1891-4161-b8ae-ef66de5776b7.component.override create mode 100644 resources/src/main/resources/overrides/ed47cfae-64da-4360-8f61-1087179ad78b.component.override create mode 100644 resources/src/main/resources/overrides/fe225a1a-1c03-485e-a069-18b92ab4f7f7.component.override create mode 100644 system-requirements.md create mode 100644 test/pom.xml create mode 100644 test/src/test/java/SuiteAdmin.java create mode 100644 test/src/test/java/old/AdminGroupIT.java create mode 100644 test/src/test/java/old/AdminRoleIT.java create mode 100644 test/src/test/java/old/AdminUserIT.java create mode 100644 test/src/test/java/old/BaseComponentIT.java create mode 100644 test/src/test/java/old/JWTokensIT.java create mode 100644 test/src/test/java/old/core/BasePage.java create mode 100644 test/src/test/java/old/core/BaseTest.java create mode 100644 test/src/test/java/old/core/Browser.java create mode 100644 test/src/test/java/old/core/BrowserArgumentProvider.java create mode 100644 test/src/test/java/old/page/AdminGroupPage.java create mode 100644 test/src/test/java/old/page/AdminOrgPage.java create mode 100644 test/src/test/java/old/page/AdminProcessPage.java create mode 100644 test/src/test/java/old/page/AdminRolePage.java create mode 100644 test/src/test/java/old/page/AdminUserPage.java create mode 100644 test/src/test/java/old/page/BaseComponentPage.java create mode 100644 test/src/test/java/old/page/InboxPage.java create mode 100644 test/src/test/java/old/page/LoginPage.java create mode 100644 test/src/test/java/old/page/ProcessesPage.java create mode 100644 test/src/test/java/old/util/DataUtil.java create mode 100644 test/src/test/java/old/util/ExecutionManager.java create mode 100644 test/src/test/java/old/util/PropertyManager.java create mode 100644 test/src/test/java/pages/AuthoritiesPage.java create mode 100644 test/src/test/java/pages/OrganizationsPage.java create mode 100644 test/src/test/java/pages/ProcessesPage.java create mode 100644 test/src/test/java/pages/RegistrationPage.java create mode 100644 test/src/test/java/pages/ResetPasswordPage.java create mode 100644 test/src/test/java/pages/TestProcessPage.java create mode 100644 test/src/test/java/tests/AuthoritiesIT.java create mode 100644 test/src/test/java/tests/LoginIT.java create mode 100644 test/src/test/java/tests/OrganizationsIT.java create mode 100644 test/src/test/java/tests/ProcessesIT.java create mode 100644 test/src/test/resources/junit-platform.properties create mode 100644 test/src/test/resources/logback.xml create mode 100644 test/src/test/resources/test.properties diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..de62d73 --- /dev/null +++ b/.gitignore @@ -0,0 +1,67 @@ +#ignore target dir +target*/ + +#gradle files +.gradle*/ + +*.orig +# +# Eclipse project files +# +#.classpath +#.project +#.settings*/ +.springBeans +.metadata/ +war*/ + +# +# IntelliJ IDEA project files +# +.idea*/ +.classes*/ +*.ipr +*.iml +*.iws +*.ids +atlassian-ide-plugin.xml + +#ignore NetBeans project files +nb-configuration.xml +profiles.xml +catalog.xml +nbactions.xml + +#ignore some temporary files +*.vpp~* + +# os meta files +Thumbs.db +.DS_Store + + +pom.xml.versionsBackup +*.jasper + +#studio +.studio*/ + +resources/src/main/generated-resources*/ +resources/src/main/resources/database/database_structure.xml + +frontend/build*/ +frontend/tmp*/ +frontend/.angular*/ +frontend/build_dev*/ +frontend/dist*/ +frontend/node_modules*/ +frontend/src/ts/**/*.js +frontend/src/ts/**/*.js.map +frontend/src/ts/**/*.ngsummary.json +frontend/src/ts/aot*/ +frontend/src/ts/generated*/ +npm-debug.log + +#Sublime project files +*.sublime-project +*.sublime-workspace diff --git a/.studioignore b/.studioignore new file mode 100644 index 0000000..3fc9113 --- /dev/null +++ b/.studioignore @@ -0,0 +1,29 @@ +#Files for Webbpm-Studio to ignore +frontend/build/ +frontend/build_dev/ +frontend/dist/ +frontend/node_modules/ +frontend/src/ts/page.routing.ts +frontend/src/ts/generated-sources/ +frontend/src/ts/generated/ +frontend/target/ + +backend/target/ +backend/src/main/generated-sources/ + +distribution/target/ + +resources/target/ + +test/ +extensions/ + +config/ +target/ +themes/ + +.studio/ +.git/ +.idea/ +.studioignore +**.js \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b13f67f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM maven:3-openjdk-17-slim AS build +RUN apt update \ + && apt upgrade -y \ + && curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \ + && apt install -y git nodejs \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app +COPY . . +RUN mvn clean && mvn package -T4C + +FROM tomee:8.0.15-jre17-webprofile +ARG ADMIN_PASSWORD=Secr3t + +COPY config/tomcat/tomee /usr/local/tomee + +RUN rm -rf /usr/local/tomee/webapps/ROOT \ + && cat /usr/local/tomee/conf/webbpm.properties >> /usr/local/tomee/conf/catalina.properties \ + && sed -i -r "s//$ADMIN_PASSWORD/g" /usr/local/tomee/conf/tomcat-users.xml + +COPY --from=build /app/frontend/target/frontend*.war /usr/local/tomee/webapps/ROOT.war +COPY --from=build /app/backend/target/dashboard*.war /usr/local/tomee/webapps/dashboard.war diff --git a/README.md b/README.md new file mode 100644 index 0000000..acbeeb3 --- /dev/null +++ b/README.md @@ -0,0 +1,224 @@ +# ミ。ミセミキミエミーミスミクミオ ミ岱 ミソムミセミオミコムひー + +ミ。ミセミキミエミーミスミクミオ ムミセミサミク ミエミサム ミセムミスミセミイミスミセミケ ムムミオミシム ミ岱 ミソムミセミオミコムひー + +``` +CREATE ROLE "" WITH + LOGIN + NOSUPERUSER + INHERIT + NOCREATEDB + NOCREATEROLE + NOREPLICATION + PASSWORD ''; +``` + +ミ。ミセミキミエミーミスミクミオ ムミセミサミク ミエミサム ムムミオミシム ミアミオミキミセミソミームミスミセムムひク ミ岱 ミソムミセミオミコムひー + +``` +CREATE ROLE "" WITH + LOGIN + NOSUPERUSER + INHERIT + NOCREATEDB + NOCREATEROLE + NOREPLICATION + PASSWORD ''; +``` + +ミ。ミセミキミエミーミスミクミオ ミ岱 ミソムミセミオミコムひー + +``` +CREATE DATABASE "" + WITH + OWNER = ""; +``` + +ミ漬斷侑慴籍斷侑: ミイ ミセミアム禍オミシ ムミサムτミーミオ, ミセムひエミオミサム糊スムτ ミ岱 ミエミサム ミアミオミキミセミソミームミスミセムムひク ムミセミキミエミーミイミームび ミスミオ ミスムσカミスミセ. ミ ミコミセミスムミクミウムτミームミクミク ミクムムひセムミスミクミコミー ミエミーミスミスム錦 security-ds ミイ ムミーミケミサミオ standalone.xml ミイ ミコミームミオムムひイミオ ミクミシミオミスミク ミアミーミキム ミエミーミスミスム錦 ミクムミソミセミサム糊キムσケムひオ ミアミーミキム ミエミーミスミスム錦 ミソムミクミサミセミカミオミスミクム. + +ミ湲ミオミエミセムムひーミイミサミオミスミクミオ ミスミオミセミアムミセミエミクミシム錦 ミソムミーミイ ミエミサム ムミセミサミク <your-project-security-role> + +``` +GRANT CREATE ON DATABASE "" TO ""; +``` + +ミ。ミセミキミエミーミスミクミオ ムひーミアミサミクムム shedlock ミエミサム ミーミイムひセムミクミスムムミセミスミクミキミームミクミク + +``` +CREATE TABLE shedlock +( + name varchar not null + constraint tasks_lock_pkey + primary key, + lock_until timestamp, + locked_at timestamp, + locked_by varchar +); + +comment on table shedlock is 'ミ「ミーミアミサミクムミー ミエミサム ムミクミスムムミセミスミクミキミームミクミク ミイム巾ソミセミサミスミオミスミクム ミキミーミソミサミーミスミクムミセミイミーミスミスム錦 ミキミーミエミーム ミシミオミカミエム ミスミセミエミーミシミク.'; + +ALTER TABLE shedlock + OWNER to "owner"; +``` + +## ミ頒セミソミセミサミスミクムひオミサム糊スム巾オ ミセミウムミーミスミクムミオミスミクム ミアミーミキム ムミオミコム袴紗ミクムひク + +ミ嶢セミウミクミス ミソミセミサム糊キミセミイミームひオミサム <user_account.username> ミク ミクミシミオミスミー ムミセミサミオミケ <user_role.name> ミスミオ ミエミセミサミカミスム ムミセミイミソミーミエミームび, ムひーミコ ミコミーミコ ミイ ムミセミエミオ ムミーミアミセムび jbpm-ミー ミセミスミク ムミセムムミーミスム肖紗びム ミイ ミセミエミスム ミク ムび ミカミオ ムひーミアミサミクムム. +ミ湲ミクミシミオム ミセム威クミアミコミク ミソムミク ムミセミイミソミーミエミオミスミクミク: username = 'qa_test' ミク role_name = 'qa_test' (ムミセミサム ミソムミクミイム紹キミーミスミー ミコ ム采ひセミシム ミソミセミサム糊キミセミイミームひオミサム). ミ樮威クミアミコミー ミイミセミキミスミクミコミーミオム ミソムミク ミキミーミソムτミコミオ ミサム社アミセミウミセ ミソムミセムミオムムミー ミソミセミエ ム采ひクミシ ミソミセミサム糊キミセミイミームひオミサミオミシ. + +``` +ERROR [errorhandling.ExceptionHandlerController] (default task-5) [19usm9-bgyi63] +Organizational entity already exists with [GroupImpl:'qa_test'] id, +please check that there is no group and user with same id: +java.lang.RuntimeException: Organizational entity already exists with [GroupImpl:'qa_test'] id, +please check that there is no group and user with same id +``` + +## ミ。ミセミキミエミーミスミクミオ ミスミセミイミセミウミセ ミーミエミシミクミスミクムムびミームひセムミー + +ミ。ミセミキミエミーミケムひオ ミウムムσソミソム <your-admin-group> ミク ミソムミオミエミセムムひーミイム袴ひオ ミオミケ ミソムミーミイミー ミイ ミシミセミエムσサム ミーミエミシミクミスミクムムびミクムミセミイミーミスミクム. ミ頒サム ム采ひセミウミセ ミイム巾ソミセミサミスミクムひオ ミイ ミ岱 ミソムミセミオミコムひー + +``` +INSERT INTO security.user_group( + user_group_id, name, access_level_id) + (SELECT uuid_in(md5(random()::text || clock_timestamp()::text)::cstring), + '', access_level_id FROM security.access_level where level=999); +``` + +``` +INSERT INTO security.link_user_group_user_role( + link_user_group_user_role_id, user_group_id, user_role_id) + (SELECT uuid_in(md5(random()::text || clock_timestamp()::text)::cstring), + (SELECT user_group_id FROM security.user_group WHERE name = ''), + (SELECT user_role_id FROM security.user_role WHERE name = 'Security - User Admin')); +``` + +``` +INSERT INTO security.link_user_group_user_role( + link_user_group_user_role_id, user_group_id, user_role_id) + (SELECT uuid_in(md5(random()::text || clock_timestamp()::text)::cstring), + (SELECT user_group_id FROM security.user_group WHERE name = ''), + (SELECT user_role_id FROM security.user_role WHERE name = 'Security - Group Admin')); +``` + +``` +INSERT INTO security.link_user_group_user_role( + link_user_group_user_role_id, user_group_id, user_role_id) + (SELECT uuid_in(md5(random()::text || clock_timestamp()::text)::cstring), + (SELECT user_group_id FROM security.user_group WHERE name = ''), + (SELECT user_role_id FROM security.user_role WHERE name = 'Security - Role Admin')); +``` + +# ミ斷ームムびミセミケミコミー ミアムミームσキミオムミー ミエミサム ミイムミセミエミー ミイ ムミクムムひオミシム ム ミソミセミシミセム禾袴 Kerberos + +1. ミ厘ーミソムτムひクムひオ ミアムミームσキミオム firefox. +2. ミ ミーミエムミオムミスミセミケ ムムびミセミコミオ ミイミイミオミエミクムひオ about:config, ミスミーミカミームび ミコミスミセミソミコム "ム ミソムミクミスミクミシミーム ミスミー ムミオミアム ムミクムミコ" +3. ミ。 ミソミセミシミセム禾袴 ミソミセミクムミコミー ミスミーミケミエミクムひオ ミソミームミーミシミオムび network.negotiate-auth.trusted-uris ミク ミイ ミコミームミオムムひイミオ ミキミスミームミオミスミクム ミイミイミオムムひク ミエミセミシミオミス(ミスミーミソムミクミシミオム ミエミサム ミエミセミシミオミスミー example.com ミスミーミエミセ ミイミイミオムムひク .example.com) +4. ミ樮ひコムミセミケムひオ ミイ ミアムミームσキミオムミオ ミソムミクミサミセミカミオミスミクミオ. ミ湲ミクミシミオム http://app.example.com/ . ミ湲ミクミサミセミカミオミスミクミオ ミエミセミサミカミスミセ ミセムひコムム錦び袴ム ミアミオミキ ミキミーミソムミセムミー ミサミセミウミクミスミー/ミソミームミセミサム + +# ミ漬セムムムひーミスミセミイミサミオミスミクミオ ムムびムσコムびτム ミ岱 + +ミ斷ー ミセムミスミセミイミオ ミ岱 ミソムミセミオミコムひー ム ミソミセミシミセム禾袴 jOOQ ミウミオミスミオムミクムムτ紗びム Java ミコミサミームムム ミエミサム ミコミーミカミエミセミウミセ ミセミアム諌オミコムひー ミ岱. ミュムひセ ミソムミセミクムムミセミエミクム ミソミセ ミスミーミカミームひクム ミコミスミセミソミコミク ミ榧アミスミセミイミクムび ミスミー ミソミーミスミオミサミク ミ岱 ミイ ムムびσエミクミク. ミ湲ミク ミスミオミセミアムミセミエミクミシミセムムひク ミシミセミカミスミセ ムムミセムミシミクムミセミイミームび DDL ミスミー ミセムミスミセミイミオ ミエミーミスミスム錦 ミコミサミームムミセミイ. ミ湲ミクミシミオム ミコミサミームムミー ミエミサム ミウミオミスミオムミームミクミク DDL + +``` +package ru.cg.webbpm.test_project.db_beans; + +import org.jooq.*; +import org.jooq.impl.*; + +public class Main { + public static void main (String args []) { + DefaultConfiguration defaultConfiguration = new DefaultConfiguration(); + defaultConfiguration.setSQLDialect(SQLDialect.POSTGRES); + Queries ddl = DSL.using(defaultConfiguration).ddl(DefaultCatalog.DEFAULT_CATALOG); + + for (Query query : ddl.queries()) { + System.out.println(query); + } + } +} +``` + +** ミ漬斷侑慴籍斷侑: ** + +- ム采ひクミシ ムミソミセムミセミアミセミシ ミスミオミサム糊キム ミイミセムムムひーミスミセミイミクムび ムムσスミコムミクミク/ミソムミセムミオミエムτム ミ岱 + +ムミシ. ムひーミコミカミオ [https://www.jooq.org/doc/latest/manual/sql-building/ddl-statements/generating-ddl/](https://www.jooq.org/doc/latest/manual/sql-building/ddl-statements/generating-ddl/) + +# ミ。ミアミセムミコミー ミソムミセミオミコムひー +## ミ dev ムミオミカミクミシミオ +```bash +mvn clean && mvn package +``` +## ミ prod ムミオミカミクミシミオ +```bash +mvn clean && mvn package -Pprod -DngcCoreCount=4 -DpagePackSizeMb=24 +``` +ngcCoreCount - ミコミセミサミクムミオムムひイミセ ム紹エミオム, ミイム巾エミオミサム紹オミシム錦 ミソムミセムミオムムム ミコミセミシミソミクミサム肖ミクミク ngc. ミ渙セ ムσシミセミサムミーミスミクム - ミコミセミサミクムミオムムひイミセ ム紹エミオム - 1 +pagePackSizeMb - ムミーミキミシミオム ミソミームミコミク ミイ ミ慴. ミ渙セ ムσシミセミサムミーミスミクム - ミコミセミサミクムミオムムひイミセ ム紹エミオム - 24 ミ慴. + +## ミ。 ミセミアミスミセミイミサミオミスミクミオミシ database beans +```bash +mvn clean && mvn package -Dwebbpm.generate-db-beans +``` + +# ミ漬オムムミクム ミソムミセミオミコムひー + +ミ篇ミサミク ミイミオムムミクム ミソムミセミオミコムひー ムミセミエミオムミカミクム SNAPSHOT (ミスミーミソムミクミシミオム 1.0-SNAPSHOT), ムひセ ミソムミク ムτムひーミスミセミイミコミオ ムひーミコミセミケ ミイミオムムミクミク ミスミー ムミオムミイミオムミオ ミソムミクミサミセミカミオミスミクミケ ミアムσエミオム ミキミーミソムτ禍オミスミー ミソムミセムミオミエムτミー ミセムムひーミスミセミイミコミク ミキミーミソムτ禍オミスミスム錦 ミソムミセムミオムムミセミイ ミエミーミスミスミセミケ ミイミオムムミクミク. ミュムひセム ムミオミカミクミシ ムσエミセミアミオミス ミソムミク ミセムひサミーミエミコミオ ミソムミセムミオムムミー ミスミー ムミーミアミセムミオミシ ミシミオムムひオ ミーミスミーミサミクムひクミコミー. +ミ斷ー ミアミセミオミイミセミシ ミク ムひオムムひセミイミセミシ ムムひオミスミエミオ ミスミオミセミアムミセミエミクミシミセ ミソミオムミオミエミーミイミームび ミエミクムムびミクミアムτひクミイ ミソムミセミオミコムひー, ム ミイミオムムミクミオミケ, ミコミセムひセムミーム ミスミオ ムミセミエミオムミカミクム SNAPSHOT. ミ斷ーミソムミクミシミオム - 1.0 + +# ミ榧アミスミセミイミサミオミスミクミオ ミソミサミームびミセムミシム + +## ミ榧アミスミセミイミサミオミスミクム ミイミオムムミクミク ミソミサミームびミセムミシム + +### ミ。 ミソミセミシミセム禾袴 ムムびσエミクミク + +1. ミ樮ひコムミセミケムひオ ミソムミセミオミコム ミイ ムムびσエミクミク. ミ漬オムムミクム ミソミサミームびミセムミシム ミセミアミスミセミイミクムびム ミーミイムひセミシミームひクムミオムミコミク + +### ミ柘ムτミスムτ + +1. ミ榧アミスミセミイミクムひオ ミキミスミームミオミスミクミオ webbpm-platform.version ミイ pom.xml. ミ湲ミクミシミオム + + ```xml + 3.164.0-SNAPSHOT + ``` + +## ミ榧アミスミセミイミサミオミスミクミオ ミアミーミキミセミイミセミウミセ ミソミーミコミオムひー ミコミセミシミソミセミスミオミスム + +### ミ。 ミソミセミシミセム禾袴 ムムびσエミクミク + +1. ミ樮ひコムミセミケムひオ ミソムミセミオミコム ミイ ムムびσエミクミク. + +2. ミ樮ひコムミセミケムひオ ミシミオミスム "ミ湲ミセミオミコム - ミ渙ーミコミオムび" + +3. ミ斷ーミカミシミクムひオ ミセミアミスミセミイミクムび. + + +### ミ柘ムτミスムτ + +#### ミ侑キ ムσエミーミサミオミスミスミセミウミセ ムミオミソミセミキミクムひセムミクム + +```bash +mvn webbpm:update-package -DpackageVersion="3.158.8" +``` + +#### ミ侑キ ムミーミケミサミー + +```bash +mvn webbpm:update-package -DexecuteNpmInstall=false -Dpath=resources-.jar +``` + +#### ミムσコミーミシミク + +1. ミ侑キミシミオミスミクムひオ ミイミオムムミクム ミソミサミームびミセムミシム ミク backend ミシミセミエムσサム ミイ ムミーミケミサミオ [pom.xml](pom.xml) ミイミーム威オミウミセ ミソムミセミオミコムひー ミスミー ミスムσカミスムτ ミイミオムムミクム +2. ミ。ミコミセミソミクムムσケムひオ ムミオムムτムム +``` +ミクミキ ミエミクムミオミコムひセムミクミク: webbpm-platform\components\resources\target\classes\ +ミイ ミエミクムミオミコムひセムミクム: {your-project}\packages\ru.cg.webbpm.packages.base.resources\ +``` +3. ミ。ミコミセミソミクムムσケムひオ ムムミセミスム +``` +ミクミキ ミエミクムミオミコムひセムミクミク: webbpm-platform\components\frontend\dist +ミイ ミエミクムミオミコムひセムミクム: {your-project}\frontend\node_modules\@webbpm\base-package\ +``` +4. ミ厘ーミソムミオムひクムひオ ミイム巾ソミセミサミスミオミスミクミオ npm install ミソムミク ミキミーミソムτミコミオ ムムびσエミクミク. ミ頒サム ム采ひセミウミセ ミエミセミアミーミイム袴ひオ ミソミームミーミシミオムび `-DexecuteNpmInstall=false` ミイ ミスミームムびミセミケミコミーム Run/Debug Configurations ムムびσエミクミク diff --git a/backend/backend-deps.txt b/backend/backend-deps.txt new file mode 100644 index 0000000..ea9b1cd --- /dev/null +++ b/backend/backend-deps.txt @@ -0,0 +1,222 @@ +ru.micord.ervu.dashboard:backend:war:1.0.0-SNAPSHOT ++- org.springframework.security:spring-security-jwt:jar:1.0.9.RELEASE:compile ++- io.jsonwebtoken:jjwt-api:jar:0.10.5:compile ++- io.jsonwebtoken:jjwt-impl:jar:0.10.5:runtime ++- ru.micord.ervu.dashboard:resources:jar:1.0.0-SNAPSHOT:runtime +| \- ru.cg.webbpm.modules.resources:resources-impl:jar:3.177.0:runtime +| \- commons-io:commons-io:jar:2.4:compile ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-fonts:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:Arial:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:ArialCyr:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:ArialNarrow:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:sanserif:jar:3.177.0:runtime +| \- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:TimesNewRoman:jar:3.177.0:runtime ++- org.ocpsoft.prettytime:prettytime:jar:4.0.0.Final:compile ++- org.jooq:jooq:jar:3.19.3:compile +| \- io.r2dbc:r2dbc-spi:jar:1.0.0.RELEASE:compile +| \- org.reactivestreams:reactive-streams:jar:1.0.3:compile ++- org.apache.santuario:xmlsec:jar:1.5.7:compile +| \- commons-logging:commons-logging:jar:1.1.1:compile ++- javax.servlet:javax.servlet-api:jar:3.1.0:provided ++- org.slf4j:slf4j-api:jar:1.7.10:provided ++- org.springframework:spring-core:jar:5.3.33:compile +| \- org.springframework:spring-jcl:jar:5.3.33:compile ++- org.springframework:spring-context:jar:5.3.33:compile +| \- org.springframework:spring-expression:jar:5.3.33:compile ++- org.springframework:spring-beans:jar:5.3.33:compile ++- org.springframework:spring-aop:jar:5.3.33:compile ++- org.springframework:spring-jdbc:jar:5.3.33:compile ++- org.springframework:spring-tx:jar:5.3.33:compile ++- org.springframework:spring-aspects:jar:5.3.33:compile +| \- org.aspectj:aspectjweaver:jar:1.9.7:compile ++- org.springframework:spring-web:jar:5.3.33:compile ++- org.springframework:spring-webmvc:jar:5.3.33:compile ++- org.springframework.security:spring-security-web:jar:5.7.11:compile +| \- org.springframework.security:spring-security-core:jar:5.7.11:compile +| \- org.springframework.security:spring-security-crypto:jar:5.7.11:compile ++- org.springframework.security:spring-security-config:jar:5.7.11:compile ++- ru.cg.webbpm.modules:inject:jar:3.177.0:compile +| \- com.google.code.gson:gson:jar:2.10.1:compile ++- ru.cg.webbpm.modules:webkit-rpc:jar:3.177.0:compile +| +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.4:compile +| +- com.fasterxml.jackson.core:jackson-core:jar:2.12.4:compile +| \- ru.cg.webbpm.modules:webkit-annotations:jar:3.177.0:compile ++- ru.cg.webbpm.modules:webkit-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:core-runtime-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.resources:resources-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:error-handling-api:jar:3.177.0:compile +| \- ru.cg.webbpm.modules.core:app-info:jar:3.177.0:compile ++- ru.cg.webbpm.modules.database:database-api:jar:3.177.0:compile +| \- ru.cg.webbpm.modules.database:database-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.database:database-impl:jar:3.177.0:runtime +| +- com.zaxxer:HikariCP:jar:2.4.0:runtime +| +- org.postgresql:postgresql:jar:42.7.3:runtime +| | \- org.checkerframework:checker-qual:jar:3.42.0:compile +| +- org.xerial:sqlite-jdbc:jar:3.34.0:runtime +| +- jakarta.xml.bind:jakarta.xml.bind-api:jar:3.0.1:compile +| | \- com.sun.activation:jakarta.activation:jar:2.0.1:compile +| \- com.sun.xml.bind:jaxb-impl:jar:3.0.2:compile +| \- com.sun.xml.bind:jaxb-core:jar:3.0.2:compile ++- ru.cg.webbpm.modules.jndi:jndi-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.jndi:jndi-inject:jar:3.177.0:compile ++- com.sun.mail:javax.mail:jar:1.5.1:compile +| \- javax.activation:activation:jar:1.1.1:compile ++- ru.cg.webbpm.modules.database:database-test:jar:3.177.0:test +| \- org.apache.derby:derby:jar:10.11.1.1:test ++- ru.cg.webbpm.modules:standard-annotations:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:metrics:jar:3.177.0:compile +| +- ru.fix:aggregating-profiler:jar:1.4.7:compile +| \- javax.annotation:javax.annotation-api:jar:1.3.2:compile ++- ru.cg.webbpm.modules.reporting:reporting-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.reporting:reporting-runtime-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.reporting:reporting-runtime-impl:jar:3.177.0:runtime ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-impl:jar:3.177.0:runtime ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-runtime-impl:jar:3.177.0:runtime +| +- net.sf.jasperreports:jasperreports:jar:6.15.0:runtime +| | +- commons-beanutils:commons-beanutils:jar:1.9.4:runtime +| | | \- commons-collections:commons-collections:jar:3.2.2:runtime +| | +- commons-digester:commons-digester:jar:2.1:runtime +| | +- com.lowagie:itext:jar:2.1.7.js8:runtime +| | +- org.jfree:jcommon:jar:1.0.23:runtime +| | +- org.jfree:jfreechart:jar:1.0.19:runtime +| | +- org.eclipse.jdt:ecj:jar:3.21.0:runtime +| | +- org.codehaus.castor:castor-xml:jar:1.4.1:runtime +| | | +- org.codehaus.castor:castor-core:jar:1.4.1:runtime +| | | \- javax.inject:javax.inject:jar:1:runtime +| | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.4:compile +| +- net.sf.jasperreports:jasperreports-functions:jar:6.15.0:runtime +| | \- joda-time:joda-time:jar:2.9.2:compile +| \- org.apache.poi:poi:jar:4.1.2:compile +| +- org.apache.commons:commons-math3:jar:3.6.1:compile +| \- com.zaxxer:SparseBitSet:jar:1.2:compile ++- ru.cg.webbpm.modules.reporting.reporting-xdoc:reporting-xdoc-impl:jar:3.177.0:runtime +| \- org.zeroturnaround:zt-zip:jar:1.15:runtime ++- ru.cg.webbpm.modules.reporting.reporting-xdoc:reporting-xdoc-runtime-impl:jar:3.177.0:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.core:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.template:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.template.freemarker:jar:2.0.2:runtime +| +- org.freemarker:freemarker:jar:2.3.26-incubating:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.docx:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.odt:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.docx.xwpf:jar:2.0.2:runtime +| | +- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.pdf:jar:2.0.2:runtime +| | | +- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.core:jar:2.0.2:runtime +| | | | \- org.apache.poi:ooxml-schemas:jar:1.4:runtime +| | | \- fr.opensagres.xdocreport:fr.opensagres.xdocreport.itext.extension:jar:2.0.2:runtime +| | \- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.xhtml:jar:2.0.2:runtime +| \- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.odt.odfdom:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.pdf:jar:2.0.2:runtime +| | \- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.core:jar:2.0.2:runtime +| | \- org.odftoolkit:odfdom-java:jar:0.8.7:runtime +| \- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.xhtml:jar:2.0.2:runtime ++- org.liquibase:liquibase-core:jar:4.26.0:compile +| +- com.opencsv:opencsv:jar:5.9:compile +| +- org.apache.commons:commons-lang3:jar:3.13.0:compile +| +- org.apache.commons:commons-text:jar:1.11.0:compile +| +- org.apache.commons:commons-collections4:jar:4.4:compile +| +- org.yaml:snakeyaml:jar:2.2:compile +| \- javax.xml.bind:jaxb-api:jar:2.3.1:compile ++- ru.cg.webbpm.modules:webkit-base:jar:3.177.0:compile +| +- com.hazelcast:hazelcast:jar:4.1.9:compile +| +- com.hazelcast:hazelcast-kubernetes:jar:2.2.3:compile +| \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.4:compile ++- xerces:xercesImpl:jar:2.11.0:runtime +| \- xml-apis:xml-apis:jar:1.4.01:runtime ++- com.google.guava:guava:jar:23.4-jre:compile +| +- com.google.code.findbugs:jsr305:jar:1.3.9:compile +| +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile +| +- com.google.j2objc:j2objc-annotations:jar:1.1:compile +| \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile ++- ru.micord.fias:client:jar:2.25.0:compile +| +- org.easymock:easymock:jar:3.5.1:compile +| | \- org.objenesis:objenesis:jar:2.6:compile +| +- org.springframework:spring-context-support:jar:5.3.33:compile +| \- com.github.ben-manes.caffeine:caffeine:jar:2.9.2:compile ++- org.apache.tika:tika-core:jar:1.7:compile ++- org.bouncycastle:bcprov-jdk15on:jar:1.60:compile ++- org.bouncycastle:bcpkix-jdk15on:jar:1.60:compile ++- org.mnode.ical4j:ical4j:jar:3.0.5:compile +| +- commons-codec:commons-codec:jar:1.6:compile +| \- javax.mail:javax.mail-api:jar:1.5.4:compile ++- net.javacrumbs.shedlock:shedlock-spring:jar:0.18.2:compile +| \- net.javacrumbs.shedlock:shedlock-core:jar:0.18.2:compile ++- net.javacrumbs.shedlock:shedlock-provider-jdbc-template:jar:0.18.2:compile +| \- net.javacrumbs.shedlock:shedlock-provider-jdbc-internal:jar:0.18.2:compile +\- ru.cg.webbpm.packages.base:backend:jar:3.177.0:compile + +- ru.micord.gar:gar-client:jar:3.4.0:compile + | +- ru.micord.gar:gar-core:jar:3.4.0:compile + | +- org.springframework.data:spring-data-elasticsearch:jar:4.0.0.RELEASE:compile + | | +- org.springframework.data:spring-data-commons:jar:2.3.0.RELEASE:compile + | | +- org.elasticsearch.client:transport:jar:7.6.2:compile + | | | +- org.elasticsearch:elasticsearch:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-core:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-secure-sm:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-x-content:jar:7.6.2:compile + | | | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar:2.8.11:compile + | | | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.8.11:compile + | | | | | \- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.8.11:compile + | | | | +- org.elasticsearch:elasticsearch-geo:jar:7.6.2:compile + | | | | +- org.apache.lucene:lucene-core:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-analyzers-common:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-backward-codecs:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-grouping:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-highlighter:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-join:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-memory:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-misc:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-queries:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-queryparser:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-sandbox:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial-extras:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial3d:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-suggest:jar:8.4.0:compile + | | | | +- org.elasticsearch:elasticsearch-cli:jar:7.6.2:compile + | | | | | \- net.sf.jopt-simple:jopt-simple:jar:5.0.2:compile + | | | | +- com.carrotsearch:hppc:jar:0.8.1:compile + | | | | +- com.tdunning:t-digest:jar:3.2:compile + | | | | +- org.hdrhistogram:HdrHistogram:jar:2.1.9:compile + | | | | +- org.apache.logging.log4j:log4j-api:jar:2.11.1:compile + | | | | \- org.elasticsearch:jna:jar:4.5.1:compile + | | | +- org.elasticsearch.plugin:reindex-client:jar:7.6.2:compile + | | | | \- org.elasticsearch:elasticsearch-ssl-config:jar:7.6.2:compile + | | | +- org.elasticsearch.plugin:lang-mustache-client:jar:7.6.2:compile + | | | | \- com.github.spullara.mustache.java:compiler:jar:0.9.10:compile + | | | +- org.elasticsearch.plugin:percolator-client:jar:7.6.2:compile + | | | +- org.elasticsearch.plugin:parent-join-client:jar:7.6.2:compile + | | | \- org.elasticsearch.plugin:rank-eval-client:jar:7.6.2:compile + | | +- org.elasticsearch.plugin:transport-netty4-client:jar:7.6.2:compile + | | | +- io.netty:netty-buffer:jar:4.1.43.Final:compile + | | | +- io.netty:netty-codec:jar:4.1.43.Final:compile + | | | +- io.netty:netty-codec-http:jar:4.1.43.Final:compile + | | | +- io.netty:netty-common:jar:4.1.43.Final:compile + | | | +- io.netty:netty-handler:jar:4.1.43.Final:compile + | | | +- io.netty:netty-resolver:jar:4.1.43.Final:compile + | | | \- io.netty:netty-transport:jar:4.1.43.Final:compile + | | \- org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:7.6.2:compile + | | +- org.elasticsearch.client:elasticsearch-rest-client:jar:7.6.2:compile + | | | +- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:compile + | | | \- org.apache.httpcomponents:httpcore-nio:jar:4.4.12:compile + | | +- org.elasticsearch.plugin:mapper-extras-client:jar:7.6.2:compile + | | \- org.elasticsearch.plugin:aggs-matrix-stats-client:jar:7.6.2:compile + | +- org.apache.httpcomponents:httpcore:jar:4.4.12:compile + | \- org.apache.httpcomponents:httpclient:jar:4.5.1:compile + +- org.apache.poi:poi-ooxml:jar:4.1.2:compile + | +- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile + | | \- org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile + | +- org.apache.commons:commons-compress:jar:1.19:compile + | \- com.github.virtuald:curvesapi:jar:1.06:compile + +- org.apache.commons:commons-csv:jar:1.9.0:compile + +- org.springframework.ldap:spring-ldap-core:jar:2.3.4.RELEASE:compile + +- org.telegram:telegrambots-client:jar:7.2.1:compile + | \- com.squareup.okhttp3:okhttp:jar:4.12.0:compile + | +- com.squareup.okio:okio:jar:3.6.0:compile + | | \- com.squareup.okio:okio-jvm:jar:3.6.0:compile + | | \- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.9.10:compile + | \- org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.8.21:compile + | +- org.jetbrains.kotlin:kotlin-stdlib:jar:1.8.21:compile + | | \- org.jetbrains:annotations:jar:13.0:compile + | \- org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.8.21:compile + \- org.telegram:telegrambots-meta:jar:7.2.1:compile diff --git a/backend/deps3.txt b/backend/deps3.txt new file mode 100644 index 0000000..ea9b1cd --- /dev/null +++ b/backend/deps3.txt @@ -0,0 +1,222 @@ +ru.micord.ervu.dashboard:backend:war:1.0.0-SNAPSHOT ++- org.springframework.security:spring-security-jwt:jar:1.0.9.RELEASE:compile ++- io.jsonwebtoken:jjwt-api:jar:0.10.5:compile ++- io.jsonwebtoken:jjwt-impl:jar:0.10.5:runtime ++- ru.micord.ervu.dashboard:resources:jar:1.0.0-SNAPSHOT:runtime +| \- ru.cg.webbpm.modules.resources:resources-impl:jar:3.177.0:runtime +| \- commons-io:commons-io:jar:2.4:compile ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-fonts:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:Arial:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:ArialCyr:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:ArialNarrow:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:sanserif:jar:3.177.0:runtime +| \- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:TimesNewRoman:jar:3.177.0:runtime ++- org.ocpsoft.prettytime:prettytime:jar:4.0.0.Final:compile ++- org.jooq:jooq:jar:3.19.3:compile +| \- io.r2dbc:r2dbc-spi:jar:1.0.0.RELEASE:compile +| \- org.reactivestreams:reactive-streams:jar:1.0.3:compile ++- org.apache.santuario:xmlsec:jar:1.5.7:compile +| \- commons-logging:commons-logging:jar:1.1.1:compile ++- javax.servlet:javax.servlet-api:jar:3.1.0:provided ++- org.slf4j:slf4j-api:jar:1.7.10:provided ++- org.springframework:spring-core:jar:5.3.33:compile +| \- org.springframework:spring-jcl:jar:5.3.33:compile ++- org.springframework:spring-context:jar:5.3.33:compile +| \- org.springframework:spring-expression:jar:5.3.33:compile ++- org.springframework:spring-beans:jar:5.3.33:compile ++- org.springframework:spring-aop:jar:5.3.33:compile ++- org.springframework:spring-jdbc:jar:5.3.33:compile ++- org.springframework:spring-tx:jar:5.3.33:compile ++- org.springframework:spring-aspects:jar:5.3.33:compile +| \- org.aspectj:aspectjweaver:jar:1.9.7:compile ++- org.springframework:spring-web:jar:5.3.33:compile ++- org.springframework:spring-webmvc:jar:5.3.33:compile ++- org.springframework.security:spring-security-web:jar:5.7.11:compile +| \- org.springframework.security:spring-security-core:jar:5.7.11:compile +| \- org.springframework.security:spring-security-crypto:jar:5.7.11:compile ++- org.springframework.security:spring-security-config:jar:5.7.11:compile ++- ru.cg.webbpm.modules:inject:jar:3.177.0:compile +| \- com.google.code.gson:gson:jar:2.10.1:compile ++- ru.cg.webbpm.modules:webkit-rpc:jar:3.177.0:compile +| +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.4:compile +| +- com.fasterxml.jackson.core:jackson-core:jar:2.12.4:compile +| \- ru.cg.webbpm.modules:webkit-annotations:jar:3.177.0:compile ++- ru.cg.webbpm.modules:webkit-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:core-runtime-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.resources:resources-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:error-handling-api:jar:3.177.0:compile +| \- ru.cg.webbpm.modules.core:app-info:jar:3.177.0:compile ++- ru.cg.webbpm.modules.database:database-api:jar:3.177.0:compile +| \- ru.cg.webbpm.modules.database:database-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.database:database-impl:jar:3.177.0:runtime +| +- com.zaxxer:HikariCP:jar:2.4.0:runtime +| +- org.postgresql:postgresql:jar:42.7.3:runtime +| | \- org.checkerframework:checker-qual:jar:3.42.0:compile +| +- org.xerial:sqlite-jdbc:jar:3.34.0:runtime +| +- jakarta.xml.bind:jakarta.xml.bind-api:jar:3.0.1:compile +| | \- com.sun.activation:jakarta.activation:jar:2.0.1:compile +| \- com.sun.xml.bind:jaxb-impl:jar:3.0.2:compile +| \- com.sun.xml.bind:jaxb-core:jar:3.0.2:compile ++- ru.cg.webbpm.modules.jndi:jndi-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.jndi:jndi-inject:jar:3.177.0:compile ++- com.sun.mail:javax.mail:jar:1.5.1:compile +| \- javax.activation:activation:jar:1.1.1:compile ++- ru.cg.webbpm.modules.database:database-test:jar:3.177.0:test +| \- org.apache.derby:derby:jar:10.11.1.1:test ++- ru.cg.webbpm.modules:standard-annotations:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:metrics:jar:3.177.0:compile +| +- ru.fix:aggregating-profiler:jar:1.4.7:compile +| \- javax.annotation:javax.annotation-api:jar:1.3.2:compile ++- ru.cg.webbpm.modules.reporting:reporting-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.reporting:reporting-runtime-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.reporting:reporting-runtime-impl:jar:3.177.0:runtime ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-impl:jar:3.177.0:runtime ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-runtime-impl:jar:3.177.0:runtime +| +- net.sf.jasperreports:jasperreports:jar:6.15.0:runtime +| | +- commons-beanutils:commons-beanutils:jar:1.9.4:runtime +| | | \- commons-collections:commons-collections:jar:3.2.2:runtime +| | +- commons-digester:commons-digester:jar:2.1:runtime +| | +- com.lowagie:itext:jar:2.1.7.js8:runtime +| | +- org.jfree:jcommon:jar:1.0.23:runtime +| | +- org.jfree:jfreechart:jar:1.0.19:runtime +| | +- org.eclipse.jdt:ecj:jar:3.21.0:runtime +| | +- org.codehaus.castor:castor-xml:jar:1.4.1:runtime +| | | +- org.codehaus.castor:castor-core:jar:1.4.1:runtime +| | | \- javax.inject:javax.inject:jar:1:runtime +| | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.4:compile +| +- net.sf.jasperreports:jasperreports-functions:jar:6.15.0:runtime +| | \- joda-time:joda-time:jar:2.9.2:compile +| \- org.apache.poi:poi:jar:4.1.2:compile +| +- org.apache.commons:commons-math3:jar:3.6.1:compile +| \- com.zaxxer:SparseBitSet:jar:1.2:compile ++- ru.cg.webbpm.modules.reporting.reporting-xdoc:reporting-xdoc-impl:jar:3.177.0:runtime +| \- org.zeroturnaround:zt-zip:jar:1.15:runtime ++- ru.cg.webbpm.modules.reporting.reporting-xdoc:reporting-xdoc-runtime-impl:jar:3.177.0:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.core:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.template:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.template.freemarker:jar:2.0.2:runtime +| +- org.freemarker:freemarker:jar:2.3.26-incubating:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.docx:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.odt:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.docx.xwpf:jar:2.0.2:runtime +| | +- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.pdf:jar:2.0.2:runtime +| | | +- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.core:jar:2.0.2:runtime +| | | | \- org.apache.poi:ooxml-schemas:jar:1.4:runtime +| | | \- fr.opensagres.xdocreport:fr.opensagres.xdocreport.itext.extension:jar:2.0.2:runtime +| | \- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.xhtml:jar:2.0.2:runtime +| \- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.odt.odfdom:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.pdf:jar:2.0.2:runtime +| | \- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.core:jar:2.0.2:runtime +| | \- org.odftoolkit:odfdom-java:jar:0.8.7:runtime +| \- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.xhtml:jar:2.0.2:runtime ++- org.liquibase:liquibase-core:jar:4.26.0:compile +| +- com.opencsv:opencsv:jar:5.9:compile +| +- org.apache.commons:commons-lang3:jar:3.13.0:compile +| +- org.apache.commons:commons-text:jar:1.11.0:compile +| +- org.apache.commons:commons-collections4:jar:4.4:compile +| +- org.yaml:snakeyaml:jar:2.2:compile +| \- javax.xml.bind:jaxb-api:jar:2.3.1:compile ++- ru.cg.webbpm.modules:webkit-base:jar:3.177.0:compile +| +- com.hazelcast:hazelcast:jar:4.1.9:compile +| +- com.hazelcast:hazelcast-kubernetes:jar:2.2.3:compile +| \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.4:compile ++- xerces:xercesImpl:jar:2.11.0:runtime +| \- xml-apis:xml-apis:jar:1.4.01:runtime ++- com.google.guava:guava:jar:23.4-jre:compile +| +- com.google.code.findbugs:jsr305:jar:1.3.9:compile +| +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile +| +- com.google.j2objc:j2objc-annotations:jar:1.1:compile +| \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile ++- ru.micord.fias:client:jar:2.25.0:compile +| +- org.easymock:easymock:jar:3.5.1:compile +| | \- org.objenesis:objenesis:jar:2.6:compile +| +- org.springframework:spring-context-support:jar:5.3.33:compile +| \- com.github.ben-manes.caffeine:caffeine:jar:2.9.2:compile ++- org.apache.tika:tika-core:jar:1.7:compile ++- org.bouncycastle:bcprov-jdk15on:jar:1.60:compile ++- org.bouncycastle:bcpkix-jdk15on:jar:1.60:compile ++- org.mnode.ical4j:ical4j:jar:3.0.5:compile +| +- commons-codec:commons-codec:jar:1.6:compile +| \- javax.mail:javax.mail-api:jar:1.5.4:compile ++- net.javacrumbs.shedlock:shedlock-spring:jar:0.18.2:compile +| \- net.javacrumbs.shedlock:shedlock-core:jar:0.18.2:compile ++- net.javacrumbs.shedlock:shedlock-provider-jdbc-template:jar:0.18.2:compile +| \- net.javacrumbs.shedlock:shedlock-provider-jdbc-internal:jar:0.18.2:compile +\- ru.cg.webbpm.packages.base:backend:jar:3.177.0:compile + +- ru.micord.gar:gar-client:jar:3.4.0:compile + | +- ru.micord.gar:gar-core:jar:3.4.0:compile + | +- org.springframework.data:spring-data-elasticsearch:jar:4.0.0.RELEASE:compile + | | +- org.springframework.data:spring-data-commons:jar:2.3.0.RELEASE:compile + | | +- org.elasticsearch.client:transport:jar:7.6.2:compile + | | | +- org.elasticsearch:elasticsearch:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-core:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-secure-sm:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-x-content:jar:7.6.2:compile + | | | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar:2.8.11:compile + | | | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.8.11:compile + | | | | | \- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.8.11:compile + | | | | +- org.elasticsearch:elasticsearch-geo:jar:7.6.2:compile + | | | | +- org.apache.lucene:lucene-core:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-analyzers-common:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-backward-codecs:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-grouping:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-highlighter:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-join:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-memory:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-misc:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-queries:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-queryparser:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-sandbox:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial-extras:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial3d:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-suggest:jar:8.4.0:compile + | | | | +- org.elasticsearch:elasticsearch-cli:jar:7.6.2:compile + | | | | | \- net.sf.jopt-simple:jopt-simple:jar:5.0.2:compile + | | | | +- com.carrotsearch:hppc:jar:0.8.1:compile + | | | | +- com.tdunning:t-digest:jar:3.2:compile + | | | | +- org.hdrhistogram:HdrHistogram:jar:2.1.9:compile + | | | | +- org.apache.logging.log4j:log4j-api:jar:2.11.1:compile + | | | | \- org.elasticsearch:jna:jar:4.5.1:compile + | | | +- org.elasticsearch.plugin:reindex-client:jar:7.6.2:compile + | | | | \- org.elasticsearch:elasticsearch-ssl-config:jar:7.6.2:compile + | | | +- org.elasticsearch.plugin:lang-mustache-client:jar:7.6.2:compile + | | | | \- com.github.spullara.mustache.java:compiler:jar:0.9.10:compile + | | | +- org.elasticsearch.plugin:percolator-client:jar:7.6.2:compile + | | | +- org.elasticsearch.plugin:parent-join-client:jar:7.6.2:compile + | | | \- org.elasticsearch.plugin:rank-eval-client:jar:7.6.2:compile + | | +- org.elasticsearch.plugin:transport-netty4-client:jar:7.6.2:compile + | | | +- io.netty:netty-buffer:jar:4.1.43.Final:compile + | | | +- io.netty:netty-codec:jar:4.1.43.Final:compile + | | | +- io.netty:netty-codec-http:jar:4.1.43.Final:compile + | | | +- io.netty:netty-common:jar:4.1.43.Final:compile + | | | +- io.netty:netty-handler:jar:4.1.43.Final:compile + | | | +- io.netty:netty-resolver:jar:4.1.43.Final:compile + | | | \- io.netty:netty-transport:jar:4.1.43.Final:compile + | | \- org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:7.6.2:compile + | | +- org.elasticsearch.client:elasticsearch-rest-client:jar:7.6.2:compile + | | | +- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:compile + | | | \- org.apache.httpcomponents:httpcore-nio:jar:4.4.12:compile + | | +- org.elasticsearch.plugin:mapper-extras-client:jar:7.6.2:compile + | | \- org.elasticsearch.plugin:aggs-matrix-stats-client:jar:7.6.2:compile + | +- org.apache.httpcomponents:httpcore:jar:4.4.12:compile + | \- org.apache.httpcomponents:httpclient:jar:4.5.1:compile + +- org.apache.poi:poi-ooxml:jar:4.1.2:compile + | +- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile + | | \- org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile + | +- org.apache.commons:commons-compress:jar:1.19:compile + | \- com.github.virtuald:curvesapi:jar:1.06:compile + +- org.apache.commons:commons-csv:jar:1.9.0:compile + +- org.springframework.ldap:spring-ldap-core:jar:2.3.4.RELEASE:compile + +- org.telegram:telegrambots-client:jar:7.2.1:compile + | \- com.squareup.okhttp3:okhttp:jar:4.12.0:compile + | +- com.squareup.okio:okio:jar:3.6.0:compile + | | \- com.squareup.okio:okio-jvm:jar:3.6.0:compile + | | \- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.9.10:compile + | \- org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.8.21:compile + | +- org.jetbrains.kotlin:kotlin-stdlib:jar:1.8.21:compile + | | \- org.jetbrains:annotations:jar:13.0:compile + | \- org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.8.21:compile + \- org.telegram:telegrambots-meta:jar:7.2.1:compile diff --git a/backend/deps4.txt b/backend/deps4.txt new file mode 100644 index 0000000..f56a119 --- /dev/null +++ b/backend/deps4.txt @@ -0,0 +1,222 @@ +ru.micord.ervu.dashboard:backend:war:1.0.0-SNAPSHOT ++- org.springframework.security:spring-security-jwt:jar:1.0.9.RELEASE:compile ++- io.jsonwebtoken:jjwt-api:jar:0.10.5:compile ++- io.jsonwebtoken:jjwt-impl:jar:0.10.5:runtime ++- ru.micord.ervu.dashboard:resources:jar:1.0.0-SNAPSHOT:runtime +| \- ru.cg.webbpm.modules.resources:resources-impl:jar:3.177.0:runtime +| \- commons-io:commons-io:jar:2.4:compile ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-fonts:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:Arial:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:ArialCyr:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:ArialNarrow:jar:3.177.0:runtime +| +- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:sanserif:jar:3.177.0:runtime +| \- ru.cg.webbpm.modules.reporting.reporting-jasper.fonts:TimesNewRoman:jar:3.177.0:runtime ++- org.ocpsoft.prettytime:prettytime:jar:4.0.0.Final:compile ++- org.jooq:jooq:jar:3.19.3:compile +| \- io.r2dbc:r2dbc-spi:jar:1.0.0.RELEASE:compile +| \- org.reactivestreams:reactive-streams:jar:1.0.3:compile ++- org.apache.santuario:xmlsec:jar:1.5.7:compile +| \- commons-logging:commons-logging:jar:1.1.1:compile ++- javax.servlet:javax.servlet-api:jar:3.1.0:provided ++- org.slf4j:slf4j-api:jar:1.7.10:provided ++- org.springframework:spring-core:jar:5.3.33:compile +| \- org.springframework:spring-jcl:jar:5.3.33:compile ++- org.springframework:spring-context:jar:5.3.33:compile +| \- org.springframework:spring-expression:jar:5.3.33:compile ++- org.springframework:spring-beans:jar:5.3.33:compile ++- org.springframework:spring-aop:jar:5.3.33:compile ++- org.springframework:spring-jdbc:jar:5.3.33:compile ++- org.springframework:spring-tx:jar:5.3.33:compile ++- org.springframework:spring-aspects:jar:5.3.33:compile +| \- org.aspectj:aspectjweaver:jar:1.9.7:compile ++- org.springframework:spring-web:jar:5.3.33:compile ++- org.springframework:spring-webmvc:jar:5.3.33:compile ++- org.springframework.security:spring-security-web:jar:5.7.11:compile +| \- org.springframework.security:spring-security-core:jar:5.7.11:compile +| \- org.springframework.security:spring-security-crypto:jar:5.7.11:compile ++- org.springframework.security:spring-security-config:jar:5.7.11:compile ++- ru.cg.webbpm.modules:inject:jar:3.177.0:compile +| \- com.google.code.gson:gson:jar:2.10.1:compile ++- ru.cg.webbpm.modules:webkit-rpc:jar:3.177.0:compile +| +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.4:compile +| +- com.fasterxml.jackson.core:jackson-core:jar:2.12.4:compile +| \- ru.cg.webbpm.modules:webkit-annotations:jar:3.177.0:compile ++- ru.cg.webbpm.modules:webkit-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:core-runtime-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.resources:resources-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:error-handling-api:jar:3.177.0:compile +| \- ru.cg.webbpm.modules.core:app-info:jar:3.177.0:compile ++- ru.cg.webbpm.modules.database:database-api:jar:3.177.0:compile +| \- ru.cg.webbpm.modules.database:database-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.database:database-impl:jar:3.177.0:runtime +| +- com.zaxxer:HikariCP:jar:2.4.0:runtime +| +- org.postgresql:postgresql:jar:42.7.3:runtime +| | \- org.checkerframework:checker-qual:jar:3.42.0:compile +| +- org.xerial:sqlite-jdbc:jar:3.34.0:runtime +| +- jakarta.xml.bind:jakarta.xml.bind-api:jar:3.0.1:compile +| | \- com.sun.activation:jakarta.activation:jar:2.0.1:compile +| \- com.sun.xml.bind:jaxb-impl:jar:3.0.2:compile +| \- com.sun.xml.bind:jaxb-core:jar:3.0.2:compile ++- ru.cg.webbpm.modules.jndi:jndi-beans:jar:3.177.0:compile ++- ru.cg.webbpm.modules.jndi:jndi-inject:jar:3.177.0:compile ++- com.sun.mail:javax.mail:jar:1.5.1:compile +| \- javax.activation:activation:jar:1.1.1:compile ++- ru.cg.webbpm.modules.database:database-test:jar:3.177.0:test +| \- org.apache.derby:derby:jar:10.11.1.1:test ++- ru.cg.webbpm.modules:standard-annotations:jar:3.177.0:compile ++- ru.cg.webbpm.modules.core:metrics:jar:3.177.0:compile +| +- ru.fix:aggregating-profiler:jar:1.4.7:compile +| \- javax.annotation:javax.annotation-api:jar:1.3.2:compile ++- ru.cg.webbpm.modules.reporting:reporting-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.reporting:reporting-runtime-api:jar:3.177.0:compile ++- ru.cg.webbpm.modules.reporting:reporting-runtime-impl:jar:3.177.0:runtime ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-impl:jar:3.177.0:runtime ++- ru.cg.webbpm.modules.reporting.reporting-jasper:reporting-jasper-runtime-impl:jar:3.177.0:runtime +| +- net.sf.jasperreports:jasperreports:jar:6.15.0:runtime +| | +- commons-beanutils:commons-beanutils:jar:1.9.4:runtime +| | | \- commons-collections:commons-collections:jar:3.2.2:runtime +| | +- commons-digester:commons-digester:jar:2.1:runtime +| | +- com.lowagie:itext:jar:2.1.7.js8:runtime +| | +- org.jfree:jcommon:jar:1.0.23:runtime +| | +- org.jfree:jfreechart:jar:1.0.19:runtime +| | +- org.eclipse.jdt:ecj:jar:3.21.0:runtime +| | +- org.codehaus.castor:castor-xml:jar:1.4.1:runtime +| | | +- org.codehaus.castor:castor-core:jar:1.4.1:runtime +| | | \- javax.inject:javax.inject:jar:1:runtime +| | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.4:compile +| +- net.sf.jasperreports:jasperreports-functions:jar:6.15.0:runtime +| | \- joda-time:joda-time:jar:2.9.2:compile +| \- org.apache.poi:poi:jar:4.1.2:compile +| +- org.apache.commons:commons-math3:jar:3.6.1:compile +| \- com.zaxxer:SparseBitSet:jar:1.2:compile ++- ru.cg.webbpm.modules.reporting.reporting-xdoc:reporting-xdoc-impl:jar:3.177.0:runtime +| \- org.zeroturnaround:zt-zip:jar:1.15:runtime ++- ru.cg.webbpm.modules.reporting.reporting-xdoc:reporting-xdoc-runtime-impl:jar:3.177.0:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.core:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.template:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.template.freemarker:jar:2.0.2:runtime +| +- org.freemarker:freemarker:jar:2.3.26-incubating:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.docx:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.odt:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.docx.xwpf:jar:2.0.2:runtime +| | +- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.pdf:jar:2.0.2:runtime +| | | +- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.core:jar:2.0.2:runtime +| | | | \- org.apache.poi:ooxml-schemas:jar:1.4:runtime +| | | \- fr.opensagres.xdocreport:fr.opensagres.xdocreport.itext.extension:jar:2.0.2:runtime +| | \- fr.opensagres.xdocreport:fr.opensagres.poi.xwpf.converter.xhtml:jar:2.0.2:runtime +| \- fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.odt.odfdom:jar:2.0.2:runtime +| +- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.pdf:jar:2.0.2:runtime +| | \- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.core:jar:2.0.2:runtime +| | \- org.odftoolkit:odfdom-java:jar:0.8.7:runtime +| \- fr.opensagres.xdocreport:fr.opensagres.odfdom.converter.xhtml:jar:2.0.2:runtime ++- org.liquibase:liquibase-core:jar:4.26.0:compile +| +- com.opencsv:opencsv:jar:5.9:compile +| +- org.apache.commons:commons-lang3:jar:3.13.0:compile +| +- org.apache.commons:commons-text:jar:1.11.0:compile +| +- org.apache.commons:commons-collections4:jar:4.4:compile +| +- org.yaml:snakeyaml:jar:2.2:compile +| \- javax.xml.bind:jaxb-api:jar:2.3.1:compile ++- ru.cg.webbpm.modules:webkit-base:jar:3.177.0:compile +| +- com.hazelcast:hazelcast:jar:4.1.9:compile +| +- com.hazelcast:hazelcast-kubernetes:jar:2.2.3:compile +| \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.4:compile ++- xerces:xercesImpl:jar:2.11.0:runtime +| \- xml-apis:xml-apis:jar:1.4.01:runtime ++- com.google.guava:guava:jar:23.4-jre:compile +| +- com.google.code.findbugs:jsr305:jar:1.3.9:compile +| +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile +| +- com.google.j2objc:j2objc-annotations:jar:1.1:compile +| \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile ++- ru.micord.fias:client:jar:2.25.0:compile +| +- org.easymock:easymock:jar:3.5.1:compile +| | \- org.objenesis:objenesis:jar:2.6:compile +| +- org.springframework:spring-context-support:jar:5.3.33:compile +| \- com.github.ben-manes.caffeine:caffeine:jar:2.9.2:compile ++- org.apache.tika:tika-core:jar:1.7:compile ++- org.bouncycastle:bcprov-jdk15on:jar:1.60:compile ++- org.bouncycastle:bcpkix-jdk15on:jar:1.60:compile ++- org.mnode.ical4j:ical4j:jar:3.0.5:compile +| +- commons-codec:commons-codec:jar:1.6:compile +| \- javax.mail:javax.mail-api:jar:1.5.4:compile ++- net.javacrumbs.shedlock:shedlock-spring:jar:0.18.2:compile +| \- net.javacrumbs.shedlock:shedlock-core:jar:0.18.2:compile ++- net.javacrumbs.shedlock:shedlock-provider-jdbc-template:jar:0.18.2:compile +| \- net.javacrumbs.shedlock:shedlock-provider-jdbc-internal:jar:0.18.2:compile +\- ru.cg.webbpm.packages.base:backend:jar:3.177.0:compile + +- ru.micord.gar:gar-client:jar:3.4.0:compile + | +- ru.micord.gar:gar-core:jar:3.4.0:compile + | +- org.springframework.data:spring-data-elasticsearch:jar:4.0.0.RELEASE:compile + | | +- org.springframework.data:spring-data-commons:jar:2.3.0.RELEASE:compile + | | +- org.elasticsearch.client:transport:jar:7.6.2:compile + | | | +- org.elasticsearch:elasticsearch:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-core:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-secure-sm:jar:7.6.2:compile + | | | | +- org.elasticsearch:elasticsearch-x-content:jar:7.6.2:compile + | | | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar:2.8.11:compile + | | | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.8.11:compile + | | | | | \- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.8.11:compile + | | | | +- org.elasticsearch:elasticsearch-geo:jar:7.6.2:compile + | | | | +- org.apache.lucene:lucene-core:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-analyzers-common:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-backward-codecs:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-grouping:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-highlighter:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-join:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-memory:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-misc:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-queries:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-queryparser:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-sandbox:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial-extras:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-spatial3d:jar:8.4.0:compile + | | | | +- org.apache.lucene:lucene-suggest:jar:8.4.0:compile + | | | | +- org.elasticsearch:elasticsearch-cli:jar:7.6.2:compile + | | | | | \- net.sf.jopt-simple:jopt-simple:jar:5.0.2:compile + | | | | +- com.carrotsearch:hppc:jar:0.8.1:compile + | | | | +- com.tdunning:t-digest:jar:3.2:compile + | | | | +- org.hdrhistogram:HdrHistogram:jar:2.1.9:compile + | | | | +- org.apache.logging.log4j:log4j-api:jar:2.11.1:compile + | | | | \- org.elasticsearch:jna:jar:4.5.1:compile + | | | +- org.elasticsearch.plugin:reindex-client:jar:7.6.2:compile + | | | | \- org.elasticsearch:elasticsearch-ssl-config:jar:7.6.2:compile + | | | +- org.elasticsearch.plugin:lang-mustache-client:jar:7.6.2:compile + | | | | \- com.github.spullara.mustache.java:compiler:jar:0.9.10:compile + | | | +- org.elasticsearch.plugin:percolator-client:jar:7.6.2:compile + | | | +- org.elasticsearch.plugin:parent-join-client:jar:7.6.2:compile + | | | \- org.elasticsearch.plugin:rank-eval-client:jar:7.6.2:compile + | | +- org.elasticsearch.plugin:transport-netty4-client:jar:7.6.2:compile + | | | +- io.netty:netty-buffer:jar:4.1.43.Final:compile + | | | +- io.netty:netty-codec:jar:4.1.43.Final:compile + | | | +- io.netty:netty-codec-http:jar:4.1.43.Final:compile + | | | +- io.netty:netty-common:jar:4.1.43.Final:compile + | | | +- io.netty:netty-handler:jar:4.1.43.Final:compile + | | | +- io.netty:netty-resolver:jar:4.1.43.Final:compile + | | | \- io.netty:netty-transport:jar:4.1.43.Final:compile + | | \- org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:7.6.2:compile + | | +- org.elasticsearch.client:elasticsearch-rest-client:jar:7.6.2:compile + | | | +- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:compile + | | | \- org.apache.httpcomponents:httpcore-nio:jar:4.4.12:compile + | | +- org.elasticsearch.plugin:mapper-extras-client:jar:7.6.2:compile + | | \- org.elasticsearch.plugin:aggs-matrix-stats-client:jar:7.6.2:compile + | +- org.apache.httpcomponents:httpcore:jar:4.4.12:compile + | \- org.apache.httpcomponents:httpclient:jar:4.5.1:compile + +- org.apache.poi:poi-ooxml:jar:4.1.2:compile + | +- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile + | | \- org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile + | +- org.apache.commons:commons-compress:jar:1.19:compile + | \- com.github.virtuald:curvesapi:jar:1.06:compile + +- org.apache.commons:commons-csv:jar:1.9.0:compile + +- org.springframework.ldap:spring-ldap-core:jar:2.3.4.RELEASE:compile + +- org.telegram:telegrambots-client:jar:7.2.1:compile + | \- com.squareup.okhttp3:okhttp:jar:4.12.0:compile + | +- com.squareup.okio:okio:jar:3.6.0:compile + | | \- com.squareup.okio:okio-jvm:jar:3.6.0:compile + | | \- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.9.10:compile + | \- org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.8.21:compile + | +- org.jetbrains.kotlin:kotlin-stdlib:jar:1.8.21:compile + | | \- org.jetbrains:annotations:jar:13.0:compile + | \- org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.8.21:compile + \- org.telegram:telegrambots-meta:jar:7.2.1:compile \ No newline at end of file diff --git a/backend/deps5.txt b/backend/deps5.txt new file mode 100644 index 0000000000000000000000000000000000000000..b41bed0967d098fe326205df46c0ad880d0fab40 GIT binary patch literal 17596 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 literal 0 HcmV?d00001 diff --git a/backend/frontend-deps.txt b/backend/frontend-deps.txt new file mode 100644 index 0000000..48c33f3 --- /dev/null +++ b/backend/frontend-deps.txt @@ -0,0 +1,82 @@ +"dependencies": { + "@angular/animations": "7.2.15", + "@angular/common": "7.2.15", + "@angular/compiler": "7.2.15", + "@angular/core": "7.2.15", + "@angular/forms": "7.2.15", + "@angular/http": "7.2.15", + "@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.176.3", + "ag-grid-angular": "29.0.0-micord.4", + "ag-grid-community": "29.0.0-micord.4", + "angular-calendar": "0.28.28", + "autonumeric": "4.5.10-cg", + "bootstrap": "4.3.1", + "bootstrap-icons": "1.10.3", + "cadesplugin_api": "2.0.4-micord.1", + "chart.js": "3.8.0-cg.1", + "chartjs-adapter-moment": "1.0.0", + "core-js": "2.4.1", + "date-fns": "2.29.3", + "downloadjs": "1.4.8", + "eonasdan-bootstrap-datetimepicker": "4.17.47-micord.4", + "esmarttokenjs": "2.2.1-cg", + "font-awesome": "4.7.0", + "google-libphonenumber": "3.0.9", + "inputmask": "5.0.5-cg.2", + "jquery": "3.3.1", + "js-year-calendar": "1.0.0-cg.2", + "jsgantt-improved": "2.0.10-cg", + "moment": "2.17.1", + "moment-timezone": "0.5.11", + "ngx-cookie": "3.0.1", + "ngx-international-phone-number": "1.0.6", + "ngx-toastr": "10.2.0-cg", + "popper.js": "1.14.7", + "reflect-metadata": "0.1.13", + "rxjs": "6.4.0", + "rxjs-compat": "6.4.0", + "selectize": "0.12.4-cg.10", + "systemjs": "0.21.4", + "systemjs-plugin-babel": "0.0.25", + "tslib": "1.9.3", + "zone.js": "0.8.29" + }, + "devDependencies": { + "@angular-devkit/build-optimizer": "0.13.9", + "@angular-devkit/core": "7.3.9", + "@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", + "@types/bootstrap": "3.3.39", + "@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", + "codelyzer": "5.2.1", + "copy-webpack-plugin": "5.0.3", + "cross-env": "5.2.1", + "css-loader": "2.1.0", + "del": "2.2.2", + "file-loader": "3.0.1", + "html-webpack-plugin": "4.5.2", + "lite-server": "2.3.0", + "mini-css-extract-plugin": "0.6.0", + "mkdirp": "0.5.1", + "raw-loader": "1.0.0", + "style-loader": "0.23.1", + "terser-webpack-plugin": "1.2.4", + "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" + } \ No newline at end of file diff --git a/backend/pom.xml b/backend/pom.xml new file mode 100644 index 0000000..595045b --- /dev/null +++ b/backend/pom.xml @@ -0,0 +1,306 @@ + + + 4.0.0 + + ru.micord.ervu + dashboard + 1.0.0-SNAPSHOT + + ru.micord.ervu.dashboard + backend + war + + + org.springframework.security + spring-security-jwt + + + io.jsonwebtoken + jjwt-api + + + io.jsonwebtoken + jjwt-impl + runtime + + + ru.micord.ervu.dashboard + resources + runtime + + + ru.cg.webbpm.modules.reporting.reporting-jasper + reporting-jasper-fonts + runtime + + + org.ocpsoft.prettytime + prettytime + + + org.jooq + jooq + + + org.apache.santuario + xmlsec + + + javax.servlet + javax.servlet-api + + + org.slf4j + slf4j-api + provided + + + org.springframework + spring-core + + + org.springframework + spring-context + + + org.springframework + spring-beans + + + org.springframework + spring-aop + + + org.springframework + spring-jdbc + + + org.springframework + spring-tx + + + org.springframework + spring-aspects + + + org.springframework + spring-web + + + org.springframework + spring-webmvc + + + org.springframework.security + spring-security-web + + + org.springframework.security + spring-security-config + + + ru.cg.webbpm.modules + inject + + + ru.cg.webbpm.modules + webkit-rpc + + + ru.cg.webbpm.modules + webkit-beans + + + ru.cg.webbpm.modules.core + core-runtime-api + + + ru.cg.webbpm.modules.resources + resources-api + + + ru.cg.webbpm.modules.core + error-handling-api + + + ru.cg.webbpm.modules.database + database-api + + + ru.cg.webbpm.modules.database + database-impl + + + ru.cg.webbpm.modules.jndi + jndi-beans + + + ru.cg.webbpm.modules.jndi + jndi-inject + + + com.sun.mail + javax.mail + + + ru.cg.webbpm.modules.database + database-test + test + + + ru.cg.webbpm.modules + standard-annotations + + + ru.cg.webbpm.modules.core + metrics + + + ru.cg.webbpm.modules.reporting + reporting-api + + + ru.cg.webbpm.modules.reporting + reporting-runtime-api + + + ru.cg.webbpm.modules.reporting + reporting-runtime-impl + + + ru.cg.webbpm.modules.reporting.reporting-jasper + reporting-jasper-impl + + + ru.cg.webbpm.modules.reporting.reporting-jasper + reporting-jasper-runtime-impl + + + ru.cg.webbpm.modules.reporting.reporting-xdoc + reporting-xdoc-impl + + + ru.cg.webbpm.modules.reporting.reporting-xdoc + reporting-xdoc-runtime-impl + + + org.liquibase + liquibase-core + + + ru.cg.webbpm.modules + webkit-base + + + xerces + xercesImpl + + + com.google.guava + guava + + + ru.micord.fias + client + + + org.apache.tika + tika-core + + + org.bouncycastle + bcprov-jdk15on + + + org.bouncycastle + bcpkix-jdk15on + + + org.mnode.ical4j + ical4j + + + net.javacrumbs.shedlock + shedlock-spring + + + net.javacrumbs.shedlock + shedlock-provider-jdbc-template + + + ru.cg.webbpm.packages.base + backend + + + + ${parent.artifactId} + + + maven-compiler-plugin + + false + true + 17 + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.2.0 + + + add-source + generate-sources + + add-source + + + + ${project.basedir}/target/generated-sources/java + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.7.1 + + + copy-dependencies + package + + copy-dependencies + + + + true + + + + + + + + + studio + + + ru.cg.webbpm.modules.resources + resources-impl-development + + + + + dev + + + org.postgresql + postgresql + + + + + diff --git a/backend/src/main/java/AppConfig.java b/backend/src/main/java/AppConfig.java new file mode 100644 index 0000000..ccd3330 --- /dev/null +++ b/backend/src/main/java/AppConfig.java @@ -0,0 +1,67 @@ +import java.time.Duration; +import javax.sql.DataSource; + +import net.javacrumbs.shedlock.core.LockProvider; +import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider; +import net.javacrumbs.shedlock.spring.ScheduledLockConfiguration; +import net.javacrumbs.shedlock.spring.ScheduledLockConfigurationBuilder; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.context.annotation.FilterType; +import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +/** + * Root application context + * This context imports XML configs from all the other jars, and is created by {@link WebAppInitializer} + * NB: modules are excluded from component scan since spring-context.xml sometimes holds important parameters and / or annotations + * @author krylov + */ +@Configuration +@ComponentScan(basePackages = { + "service", + "dao", + "bpmn", + "i18n", + "errorhandling", + "database", + "component.addresses", + "gen", + "ru.cg", + "ru.micord" +}, excludeFilters = { + @ComponentScan.Filter(type = FilterType.REGEX, pattern = "security.WebSecurityConfig") +}) +@EnableAspectJAutoProxy(proxyTargetClass = true) +@EnableWebMvc +@EnableScheduling +public class AppConfig { + + @Bean + public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer(){ + return new PropertySourcesPlaceholderConfigurer(); + } + + @Bean + public ScheduledLockConfiguration taskScheduler(LockProvider lockProvider) { + ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); + scheduler.setPoolSize(12); + scheduler.initialize(); + return ScheduledLockConfigurationBuilder + .withLockProvider(lockProvider) + .withTaskScheduler(scheduler) + .withDefaultLockAtMostFor(Duration.ofHours(4)) + .build(); + } + + @Bean + public LockProvider lockProvider(@Qualifier("datasource") DataSource dataSource) { + return new JdbcTemplateLockProvider(dataSource); + } +} diff --git a/backend/src/main/java/WebAppInitializer.java b/backend/src/main/java/WebAppInitializer.java new file mode 100644 index 0000000..f4fef23 --- /dev/null +++ b/backend/src/main/java/WebAppInitializer.java @@ -0,0 +1,31 @@ +import javax.servlet.ServletContext; +import javax.servlet.ServletException; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; +import org.springframework.web.util.IntrospectorCleanupListener; + +/** + * This initializer creates root context and registers dispatcher servlet + * Spring scans for initializers automatically + */ +public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { + + public void onStartup(ServletContext servletContext) throws ServletException { + super.onStartup(servletContext); + servletContext.addListener(new IntrospectorCleanupListener()); + } + + protected String[] getServletMappings() { + return new String[]{"/"}; + } + + @Override + protected Class[] getRootConfigClasses() { + return new Class[]{AppConfig.class}; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[0]; + } +} diff --git a/backend/src/main/java/dto/jivoprofile/JivoProfileDto.java b/backend/src/main/java/dto/jivoprofile/JivoProfileDto.java new file mode 100644 index 0000000..c53717e --- /dev/null +++ b/backend/src/main/java/dto/jivoprofile/JivoProfileDto.java @@ -0,0 +1,35 @@ +package dto.jivoprofile; + +import ru.cg.webbpm.modules.webkit.annotations.Model; + +@Model +public class JivoProfileDto { + + public String username; + public String email; + public String phone; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} \ No newline at end of file diff --git a/backend/src/main/java/ervu_dashboard/component/chart/BarMockChartV2Service.java b/backend/src/main/java/ervu_dashboard/component/chart/BarMockChartV2Service.java new file mode 100644 index 0000000..bc5c643 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/BarMockChartV2Service.java @@ -0,0 +1,26 @@ +package ervu_dashboard.component.chart; + +import java.util.Arrays; + +import component.chart.dto.ChartConfigDto; +import component.chart.service.ChartV2Service; +import ervu_dashboard.model.chart.BarMockDatasets; +import model.Filter; + +/** + * @author Vitaly Chekushkin + */ +public class BarMockChartV2Service implements ChartV2Service { + + public BarMockDatasets datasetsConfiguration; + + @Override + public ChartConfigDto loadData(Integer integer, Integer integer1, Filter[] filters) { + ChartConfigDto chartConfigDto = new ChartConfigDto(); + datasetsConfiguration.labels = Arrays.stream(datasetsConfiguration.datasets) + .flatMap(dataset -> Arrays.stream(dataset.data)).map(String::valueOf).toArray(String[]::new); + chartConfigDto.setData(datasetsConfiguration); + chartConfigDto.setType("bar"); + return chartConfigDto; + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/chart/DoughnutMockChartV2Service.java b/backend/src/main/java/ervu_dashboard/component/chart/DoughnutMockChartV2Service.java new file mode 100644 index 0000000..d6549b6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/DoughnutMockChartV2Service.java @@ -0,0 +1,22 @@ +package ervu_dashboard.component.chart; + +import component.chart.dto.ChartConfigDto; +import component.chart.service.ChartV2Service; +import ervu_dashboard.model.chart.DoughnutMockDatasets; +import model.Filter; + +/** + * @author Vitaly Chekushkin + */ +public class DoughnutMockChartV2Service implements ChartV2Service { + + public DoughnutMockDatasets datasetsConfiguration; + + @Override + public ChartConfigDto loadData(Integer offset, Integer limit, Filter[] filters) { + ChartConfigDto chartConfigDto = new ChartConfigDto(); + chartConfigDto.setData(datasetsConfiguration); + chartConfigDto.setType("doughnut"); + return chartConfigDto; + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/chart/ErvuMultiChartDataSetService.java b/backend/src/main/java/ervu_dashboard/component/chart/ErvuMultiChartDataSetService.java new file mode 100644 index 0000000..64af62c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/ErvuMultiChartDataSetService.java @@ -0,0 +1,237 @@ +package ervu_dashboard.component.chart; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import component.chart.dto.ChartDataSetDto; +import component.chart.dto.ChartPointDto; +import component.chart.model.AggregationDataSet; +import component.chart.model.ChartColumnSort; +import component.chart.model.StaticDataSet; +import component.chart.service.MultiChartDataSetService; +import component.chart.service.impl.AbstractChartDatasetService; +import ervu_dashboard.component.filter.FilterReferences; +import ervu_dashboard.model.chart.ChartDatasetType; +import ervu_dashboard.model.chart.ColumnAggregationDataSet; +import ervu_dashboard.model.chart.ErvuChartDataSetDto; +import model.Filter; +import model.FilterModel; + +import ru.cg.webbpm.modules.database.api.bean.TableRow; +import ru.cg.webbpm.modules.database.api.dao.LoadDao; +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; +import ru.cg.webbpm.modules.database.bean.entity_graph.AggregateFuncField; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.standard_annotations.editor.Visible; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +import static java.util.Arrays.stream; + +/** + * @author Vitaly Chekushkin + */ +public class ErvuMultiChartDataSetService extends AbstractChartDatasetService implements + MultiChartDataSetService { + + @NotNull + public LoadDao loadDao; + + @NotNull + public ChartDatasetType datasetType; + + @NotNull(predicate = "datasetType==ChartDatasetType.AGGREGATION") + @Visible(predicate = "datasetType==ChartDatasetType.AGGREGATION") + public AggregationDataSet aggregationDataSet; + + @NotNull(predicate = "datasetType==ChartDatasetType.STATIC") + @Visible(predicate = "datasetType==ChartDatasetType.STATIC") + public StaticDataSet staticDataSet; + + @NotNull(predicate = "datasetType==ChartDatasetType.COLUMN_AGGREGATION") + @Visible(predicate = "datasetType==ChartDatasetType.COLUMN_AGGREGATION") + public ColumnAggregationDataSet columnAggregationDataSet; + + private FilterReferences filterReferences; + + @Override + protected void start() { + super.start(); + this.filterReferences = getScript(FilterReferences.class); + } + + @Override + public List loadDataSets(Integer offset, Integer limit, Filter[] filters) { + LoadOptions loadOptions = loadOptions(offset, limit, filters); + return switch (datasetType) { + case AGGREGATION -> loadAggregationDataSets(loadOptions); + case STATIC -> loadStaticDataSets(loadOptions); + case COLUMN_AGGREGATION -> loadColumnAggregationDataSets(loadOptions); + }; + } + + protected List loadAggregationDataSets(LoadOptions loadOptions) { + + for (ChartColumnSort columnSort : aggregationDataSet.columnSorts) { + loadOptions.addSortField(columnSort.field, columnSort.sortOrder); + } + EntityColumn[] groupByColumnsArray = aggregationDataSet.groupByColumns; + Set groupByColumns = stream(groupByColumnsArray).collect(Collectors.toSet()); + EntityColumn labelColumn = aggregationDataSet.labelColumn != null + ? aggregationDataSet.labelColumn + : groupByColumnsArray[groupByColumnsArray.length - 1]; + + if (!groupByColumns.contains(labelColumn)) { + throw new IllegalStateException( + "Label column " + labelColumn + " must be in groupColumns array"); + } + Set aggregateFuncFields = stream(aggregationDataSet.aggregationData).map( + aggregationData -> stream(aggregationData.aggregationFunctionData).map( + aggregationFunctionData -> new AggregateFuncField(aggregationData.aggregationColumn, + aggregationFunctionData.aggregationFunction + )).collect(Collectors.toList())) + .flatMap(Collection::stream) + .collect(Collectors.toSet()); + + List rows = loadDao.loadAggregations(groupByColumns, aggregateFuncFields, + loadOptions + ); + + return stream(aggregationDataSet.aggregationData).map(dataItem -> + stream(dataItem.aggregationFunctionData).map(aggFuncData -> { + + List points = rows.stream().map(tableRow -> { + Object xAxesValue = getAxesValue(tableRow, labelColumn, + aggregationDataSet.labelColumFormatter + ); + Object yAxesValue = getAxesValue(tableRow, dataItem.aggregationColumn, + dataItem.aggregationColumnFormatter + ); + return new ChartPointDto(xAxesValue, yAxesValue); + }).collect(Collectors.toList()); + + ChartDataSetDto chartDataSetDto = new ChartDataSetDto(aggFuncData.dataLabel, + aggFuncData.chartType.toString(), points + ); + chartDataSetDto.setBorderColor(aggFuncData.borderColor); + chartDataSetDto.setBackgroundColor(aggFuncData.backgroundColor); + chartDataSetDto.setxAxisID(aggFuncData.xAxesId); + chartDataSetDto.setyAxisID(aggFuncData.yAxesId); + chartDataSetDto.setTension(aggFuncData.tension); + chartDataSetDto.setOrder(aggFuncData.drawOrder); + return chartDataSetDto; + }).collect(Collectors.toList())).flatMap(Collection::stream).collect(Collectors.toList()); + } + + protected List loadStaticDataSets(LoadOptions loadOptions) { + + for (ChartColumnSort columnSort : staticDataSet.columnSorts) { + loadOptions.addSortField(columnSort.field, columnSort.sortOrder); + } + Set columns = new HashSet<>(); + stream(staticDataSet.staticData).forEach( + staticChartData -> columns.addAll(staticChartData.columns())); + + List rows = loadDao.load(columns, loadOptions); + + return stream(staticDataSet.staticData).map(staticChartData -> { + List points = rows.stream().map(tableRow -> { + Object xAxesValue = getAxesValue(tableRow, staticChartData.labelColumn, + staticChartData.labelColumnFormatter + ); + Object yAxesValue = getAxesValue(tableRow, staticChartData.dataColumn, + staticChartData.dataColumnFormatter + ); + return new ChartPointDto(xAxesValue, yAxesValue); + }).collect(Collectors.toList()); + + ChartDataSetDto chartDataSetDto = new ChartDataSetDto(staticChartData.dataLabel, + staticChartData.chartType.toString(), points + ); + chartDataSetDto.setData(points); + chartDataSetDto.setLabel(staticChartData.dataLabel); + chartDataSetDto.setBorderColor(staticChartData.borderColor); + chartDataSetDto.setBackgroundColor(staticChartData.backgroundColor); + chartDataSetDto.setxAxisID(staticChartData.xAxesId); + chartDataSetDto.setyAxisID(staticChartData.yAxesId); + chartDataSetDto.setTension(staticChartData.tension); + chartDataSetDto.setOrder(staticChartData.drawOrder); + return chartDataSetDto; + }).collect(Collectors.toList()); + } + + protected List loadColumnAggregationDataSets(LoadOptions loadOptions) { + ColumnAggregationDataSet dataSet = columnAggregationDataSet; + + Set aggregateFuncFields = stream(dataSet.aggregationData) + .map(aggData -> new AggregateFuncField(aggData.aggregationColumn, + aggData.aggregationFunction + )) + .collect(LinkedHashSet::new, Set::add, Set::addAll); + + TableRow tableRow = Optional.ofNullable(loadDao.loadAggregations( + aggregateFuncFields, loadOptions + )).orElse(new TableRow()); + + List backgroundColors = new ArrayList<>(); + + List points = stream(dataSet.aggregationData) + .map(aggData -> { + backgroundColors.add(aggData.borderColor); + return new ChartPointDto( + aggData.label, + getAxesValue(tableRow, aggData.aggregationColumn, aggData.aggregationColumnFormatter) + ); + }).toList(); + + ErvuChartDataSetDto chartDataSetDto = new ErvuChartDataSetDto( + dataSet.dataSetLabel, + dataSet.chartType.toString(), + points + ); + + chartDataSetDto.setBackgroundColors(backgroundColors.toArray(new String[0])); + chartDataSetDto.setBorderColor(dataSet.borderColor); + chartDataSetDto.setxAxisID(dataSet.xAxesId); + chartDataSetDto.setyAxisID(dataSet.yAxesId); + chartDataSetDto.setTension(dataSet.tension); + chartDataSetDto.setOrder(dataSet.drawOrder); + chartDataSetDto.setBorderRadius(dataSet.borderRadius); + chartDataSetDto.setBarPercentage(dataSet.barPercentage); + + return Collections.singletonList(chartDataSetDto); + } + + protected LoadOptions loadOptions(Integer offset, Integer limit, Filter[] filters) { + LoadOptions loadOptions = new LoadOptions(); + loadOptions.setOffset(offset); + loadOptions.setLimit(limit); + loadOptions.setEntityFilterGroup(getEntityFilterGroup(filters)); + return loadOptions; + } + + @Override + protected List convertFilterModels(Filter filter) { + return Arrays.stream(filter.filterModels) + .map(filterModel -> getComponentFilter(filter.componentGuid, filterModel)) + .collect(Collectors.toList()); + } + + @Override + protected EntityFilter getComponentFilter(String componentGuid, FilterModel filterModel) { + if (filterReferences != null) { + return filterReferences.toEntityFilter(componentGuid, filterModel); + } + else { + return super.getComponentFilter(componentGuid, filterModel); + } + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/chart/RoundSingleChartDataSetService.java b/backend/src/main/java/ervu_dashboard/component/chart/RoundSingleChartDataSetService.java new file mode 100644 index 0000000..b338ad1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/RoundSingleChartDataSetService.java @@ -0,0 +1,316 @@ +package ervu_dashboard.component.chart; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.stream.Collectors; + +import component.chart.dto.SingleChartDataDto; +import component.chart.dto.SingleChartDataSetDto; +import component.chart.service.SingleChartDataSetService; +import component.chart.service.impl.AbstractChartDatasetService; +import ervu_dashboard.component.chart.label.RoundLabelConfiguration; +import ervu_dashboard.component.filter.FilterReferences; +import ervu_dashboard.model.chart.round.RoundAggregationData; +import ervu_dashboard.model.chart.round.RoundChartColumnSort; +import ervu_dashboard.model.chart.round.RoundChartDataDto; +import ervu_dashboard.model.chart.round.RoundChartDataSetConfiguration; +import ervu_dashboard.model.chart.round.RoundChartDataSetDto; +import ervu_dashboard.model.chart.round.RoundChartDataSetDtoWrapper; +import ervu_dashboard.model.chart.round.RoundColumnAggregationDataSet; +import ervu_dashboard.model.chart.round.RoundStaticData; +import ervu_dashboard.model.chart.round.label.ChartLabelModel; +import model.Filter; +import model.FilterModel; + +import ru.cg.webbpm.modules.database.api.bean.TableRow; +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; +import ru.cg.webbpm.modules.database.bean.entity_graph.AggregateFuncField; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +import static java.lang.Runtime.getRuntime; +import static java.util.Arrays.stream; +import static java.util.concurrent.TimeUnit.MILLISECONDS; + +/** + * @author Vitaly Chekushkin + */ +public class RoundSingleChartDataSetService extends AbstractChartDatasetService + implements SingleChartDataSetService { + + @NotNull + public RoundChartDataSetConfiguration[] dataSetConfigurations; + + public RoundLabelConfiguration[] centerLabelConfigurations = new RoundLabelConfiguration[0]; + + private FilterReferences filterReferences; + + @Override + protected void start() { + super.start(); + this.filterReferences = getScript(FilterReferences.class); + } + + @Override + public SingleChartDataDto loadData(Integer offset, Integer limit, Filter[] filters) { + int availableProcessors = getRuntime().availableProcessors(); + ExecutorService executorService = new ThreadPoolExecutor(0, availableProcessors, + 0L, MILLISECONDS, new LinkedBlockingQueue() + ); + + List> dataSetTasks = new ArrayList<>(); + stream(dataSetConfigurations).forEach(dataSetConfiguration -> + dataSetTasks.add(() -> + loadData(dataSetConfiguration, loadOptions(offset, limit, filters)) + ) + ); + + List> labelTasks = new ArrayList<>(); + stream(centerLabelConfigurations).forEach(labelConfiguration -> + labelTasks.add(() -> + labelConfiguration.getLabelModel(loadOptions(offset, limit, filters)) + ) + ); + + try { + List> dataSetFutures = executorService.invokeAll(dataSetTasks); + List> labelFutures = executorService.invokeAll(labelTasks); + + List datasets = new ArrayList<>(); + List centerLabelModels = new ArrayList<>(); + List labels = new ArrayList<>(); + + for (Future future : dataSetFutures) { + RoundChartDataSetDtoWrapper chartDataSetDto = future.get(); + + if (chartDataSetDto.getRoundChartDataSetDto() != null) { + datasets.add(chartDataSetDto.getRoundChartDataSetDto()); + } + labels.addAll(chartDataSetDto.getLabels()); + } + executorService.shutdown(); + + for (Future future : labelFutures) { + centerLabelModels.add(future.get()); + } + + return new RoundChartDataDto(datasets, labels, centerLabelModels); + } + catch (InterruptedException | ExecutionException e) { + executorService.shutdownNow(); + throw new RuntimeException(e); + } + } + + protected RoundChartDataSetDtoWrapper loadData( + RoundChartDataSetConfiguration dataSetConfiguration, LoadOptions loadOptions) { + return switch (dataSetConfiguration.datasetType) { + case AGGREGATION -> loadAggregationDataSet(dataSetConfiguration, loadOptions); + case STATIC -> loadStaticDataSet(dataSetConfiguration, loadOptions); + case COLUMN_AGGREGATION -> loadColumnAggregationDataSet(dataSetConfiguration, loadOptions); + }; + } + + protected RoundChartDataSetDtoWrapper loadAggregationDataSet( + RoundChartDataSetConfiguration dataSetConfiguration, LoadOptions loadOptions) { + + addSorting(dataSetConfiguration.aggregationDataSet.columnSorts, loadOptions); + EntityColumn[] groupByColumnsArray = dataSetConfiguration.aggregationDataSet.groupByColumns; + Set groupByColumns = stream(groupByColumnsArray).collect(Collectors.toSet()); + EntityColumn labelColumn = dataSetConfiguration.aggregationDataSet.labelColumn != null + ? dataSetConfiguration.aggregationDataSet.labelColumn + : groupByColumnsArray[groupByColumnsArray.length - 1]; + + if (!groupByColumns.contains(labelColumn)) { + throw new IllegalStateException( + "Label column " + labelColumn + " must be in groupColumns array"); + } + RoundAggregationData aggregationData = dataSetConfiguration.aggregationDataSet.aggregationData; + AggregateFuncField funcField = new AggregateFuncField( + aggregationData.aggregationColumn, aggregationData.aggregationFunction); + Set aggregateFuncFields = Collections.singleton(funcField); + List labels = new ArrayList<>(); + List data = new ArrayList<>(); + + List rows = dataSetConfiguration.loadDao.loadAggregations( + groupByColumns, + aggregateFuncFields, + loadOptions + ); + + rows.forEach(tableRow -> { + labels.add(getAxesValue(tableRow, labelColumn, + dataSetConfiguration.aggregationDataSet.labelColumFormatter + )); + data.add(getAxesValue(tableRow, aggregationData.aggregationColumn, + aggregationData.aggregationColumnFormatter + )); + }); + + String[] backgroundColors = generateBackgroundColors(dataSetConfiguration.backgroundColors, + data + ); + RoundChartDataSetDto singleChartDataSetDto = new RoundChartDataSetDto( + aggregationData.dataLabel, + data, + backgroundColors, + dataSetConfiguration.borderWidth, + dataSetConfiguration.radius, + dataSetConfiguration.cutout, + dataSetConfiguration.hoverOffset + ); + + return new RoundChartDataSetDtoWrapper(singleChartDataSetDto, labels); + } + + protected RoundChartDataSetDtoWrapper loadStaticDataSet( + RoundChartDataSetConfiguration dataSetConfiguration, LoadOptions loadOptions) { + + addSorting(dataSetConfiguration.staticDataSet.columnSorts, loadOptions); + RoundStaticData staticData = dataSetConfiguration.staticDataSet.staticData; + Set columns = new HashSet<>(staticData.columns()); + List labels = new ArrayList<>(); + List data = new ArrayList<>(); + + dataSetConfiguration.loadDao.load(columns, loadOptions) + .forEach(tableRow -> { + labels.add(getAxesValue(tableRow, staticData.labelColumn, + staticData.labelColumnFormatter + )); + data.add(getAxesValue(tableRow, staticData.dataColumn, + staticData.dataColumnFormatter + )); + }); + + String[] backgroundColors = generateBackgroundColors(dataSetConfiguration.backgroundColors, + data + ); + + RoundChartDataSetDto singleChartDataSetDto = new RoundChartDataSetDto( + staticData.dataLabel, + data, + backgroundColors, + dataSetConfiguration.borderWidth, + dataSetConfiguration.radius, + dataSetConfiguration.cutout, + dataSetConfiguration.hoverOffset + ); + + return new RoundChartDataSetDtoWrapper(singleChartDataSetDto, labels); + } + + protected RoundChartDataSetDtoWrapper loadColumnAggregationDataSet( + RoundChartDataSetConfiguration dataSetConfiguration, LoadOptions loadOptions) { + RoundColumnAggregationDataSet dataSet = dataSetConfiguration.columnAggregationDataSet; + + Set aggregateFuncFields = stream(dataSet.aggregationData) + .map(aggData -> new AggregateFuncField(aggData.aggregationColumn, + aggData.aggregationFunction + )) + .collect(LinkedHashSet::new, Set::add, Set::addAll); + + TableRow tableRow = Optional.ofNullable(dataSetConfiguration.loadDao.loadAggregations( + aggregateFuncFields, + loadOptions + )).orElse(new TableRow()); + + List labels = new ArrayList<>(); + List data = new ArrayList<>(); + List backgroundColors = new ArrayList<>(); + + stream(dataSet.aggregationData).forEach(aggData -> { + Object formattedValue = getAxesValue( + tableRow, aggData.aggregationColumn, aggData.aggregationColumnFormatter + ); + + if (formattedValue == null) return; + + labels.add(aggData.label); + data.add(formattedValue); + backgroundColors.add(aggData.backgroundColor); + }); + + RoundChartDataSetDto singleChartDataSetDto = new RoundChartDataSetDto( + dataSet.dataLabel, + data, + backgroundColors.toArray(new String[0]), + dataSetConfiguration.borderWidth, + dataSetConfiguration.radius, + dataSetConfiguration.cutout, + dataSetConfiguration.hoverOffset + ); + + return new RoundChartDataSetDtoWrapper(singleChartDataSetDto, labels); + } + + protected void addSorting(RoundChartColumnSort[] aggregationDataSet, LoadOptions loadOptions) { + for (RoundChartColumnSort columnSort : aggregationDataSet) { + loadOptions.addSortField(columnSort.field, columnSort.sortOrder); + } + } + + @Override + protected List convertFilterModels(Filter filter) { + return Arrays.stream(filter.filterModels) + .map(filterModel -> getComponentFilter(filter.componentGuid, filterModel)) + .collect(Collectors.toList()); + } + + protected LoadOptions loadOptions(Integer offset, Integer limit, Filter[] filters) { + LoadOptions loadOptions = new LoadOptions(); + loadOptions.setOffset(offset); + loadOptions.setLimit(limit); + loadOptions.setEntityFilterGroup(getEntityFilterGroup(filters)); + return loadOptions; + } + + protected String[] generateBackgroundColors(String[] backgroundColors, List data) { + String[] colors; + + if (backgroundColors.length > 0) { + + if (backgroundColors.length >= data.size()) { + colors = backgroundColors; + } + else { + Set definedColors = stream(backgroundColors).collect(Collectors.toSet()); + String[] additionalColors = generateBackgroundColors(definedColors, + data.size() - backgroundColors.length + ); + colors = Arrays.copyOf(backgroundColors, + backgroundColors.length + additionalColors.length + ); + System.arraycopy(additionalColors, 0, colors, backgroundColors.length, + additionalColors.length + ); + } + } + else { + colors = generateBackgroundColors(data.size()); + } + return colors; + } + + @Override + protected EntityFilter getComponentFilter(String componentGuid, FilterModel filterModel) { + if (filterReferences != null) { + return filterReferences.toEntityFilter(componentGuid, filterModel); + } + else { + return super.getComponentFilter(componentGuid, filterModel); + } + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/chart/label/AbstractRoundLabelConfiguration.java b/backend/src/main/java/ervu_dashboard/component/chart/label/AbstractRoundLabelConfiguration.java new file mode 100644 index 0000000..135a96c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/label/AbstractRoundLabelConfiguration.java @@ -0,0 +1,29 @@ +package ervu_dashboard.component.chart.label; + +import ervu_dashboard.model.Font; +import ervu_dashboard.model.chart.round.label.ChartLabelModel; + +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; + +/** + * @author Vitaly Chekushkin + */ +public abstract class AbstractRoundLabelConfiguration implements RoundLabelConfiguration { + + public Font font = Font.of("sans-serif", "500", 14); + + @ColorEditor + public String color = "#FFFFFF"; + + @Override + public ChartLabelModel getLabelModel(LoadOptions loadOptions) { + return new ChartLabelModel( + getLabel(loadOptions), + color, + font + ); + } + + abstract protected String getLabel(LoadOptions loadOptions); +} diff --git a/backend/src/main/java/ervu_dashboard/component/chart/label/DefaultRoundLabelConfiguration.java b/backend/src/main/java/ervu_dashboard/component/chart/label/DefaultRoundLabelConfiguration.java new file mode 100644 index 0000000..d9b98b1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/label/DefaultRoundLabelConfiguration.java @@ -0,0 +1,42 @@ +package ervu_dashboard.component.chart.label; + +import java.util.Collections; +import property.grid.Formatter; +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.api.bean.TableRow; +import ru.cg.webbpm.modules.database.api.dao.LoadDao; +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; +import ru.cg.webbpm.modules.database.bean.AggregationFunction; +import ru.cg.webbpm.modules.database.bean.annotation.LocalGraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.AggregateFuncField; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class DefaultRoundLabelConfiguration extends AbstractRoundLabelConfiguration + implements LoadGraphSource { + + @NotNull + public LoadDao loadDao; + + @NotNull + @LocalGraphSource(sourceFieldName = "loadDao") + public EntityColumn valueColumn; + + @NotNull + public AggregationFunction aggregationFunction; + + public Formatter valueFormatter; + + @Override + protected String getLabel(LoadOptions loadOptions) { + AggregateFuncField funcField = new AggregateFuncField(valueColumn, aggregationFunction); + TableRow tableRow = loadDao.loadAggregations(Collections.singleton(funcField), loadOptions); + Object value = tableRow.get(valueColumn); + value = valueFormatter != null ? valueFormatter.format(value) : value; + return value != null ? value.toString() : null; + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/chart/label/RoundLabelConfiguration.java b/backend/src/main/java/ervu_dashboard/component/chart/label/RoundLabelConfiguration.java new file mode 100644 index 0000000..6c40ffd --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/label/RoundLabelConfiguration.java @@ -0,0 +1,13 @@ +package ervu_dashboard.component.chart.label; + +import ervu_dashboard.model.chart.round.label.ChartLabelModel; + +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; + +/** + * @author Vitaly Chekushkin + */ + +public interface RoundLabelConfiguration { + ChartLabelModel getLabelModel(LoadOptions loadOptions); +} diff --git a/backend/src/main/java/ervu_dashboard/component/chart/label/StaticRoundLabelDataSet.java b/backend/src/main/java/ervu_dashboard/component/chart/label/StaticRoundLabelDataSet.java new file mode 100644 index 0000000..12ae239 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/chart/label/StaticRoundLabelDataSet.java @@ -0,0 +1,16 @@ +package ervu_dashboard.component.chart.label; + +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; + +/** + * @author Vitaly Chekushkin + */ +public class StaticRoundLabelDataSet extends AbstractRoundLabelConfiguration { + + public String label; + + @Override + public String getLabel(LoadOptions loadOptions) { + return label; + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/converter/UUIDValueConverter.java b/backend/src/main/java/ervu_dashboard/component/converter/UUIDValueConverter.java new file mode 100644 index 0000000..047c3b1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/converter/UUIDValueConverter.java @@ -0,0 +1,20 @@ +package ervu_dashboard.component.converter; + +import java.util.UUID; + +import component.field.dataconvert.DataConverter; + +/** + * @author Vitaly Chekushkin + */ +public class UUIDValueConverter implements DataConverter { + @Override + public UUID convertValueForSave(String value) { + return value != null ? UUID.fromString(value) : null; + } + + @Override + public String convertValueForLoad(UUID uuid) { + return uuid != null ? uuid.toString() : null; + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/filter/AbstractFilterReference.java b/backend/src/main/java/ervu_dashboard/component/filter/AbstractFilterReference.java new file mode 100644 index 0000000..60b4933 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/filter/AbstractFilterReference.java @@ -0,0 +1,58 @@ +package ervu_dashboard.component.filter; + +import component.field.dataconvert.DataConverter; +import component.field.dataconvert.DataConverterProvider; +import model.FilterModel; + +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.database.bean.entity_graph.condition.Operator; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.database.bean.filter.FilterOperation; +import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; +import ru.cg.webbpm.modules.webkit.annotations.Model; +import ru.cg.webbpm.modules.webkit.beans.Behavior; + +/** + * @author Vitaly Chekushkin + */ +public abstract class AbstractFilterReference implements FilterReference { + @NotNull + @ObjectRef + public Behavior filterComponent; + + public DataConverter dataConverter; + + public Operator multiValueOperator; + + @Override + public String getSupportsFilterGuid() { + return filterComponent.getObjectId(); + } + + @Override + public EntityFilter toEntityFilter(FilterModel filterModel) { + Object convertedValue = convertData(filterModel.getValue()); + FilterOperation operation = filterModel.getOperation(); + EntityColumn entityColumn = getEntityColumn(); + Operator multiValueOperator = + this.multiValueOperator != null ? this.multiValueOperator : Operator.AND; + + return new EntityFilter( + convertedValue, + operation, + entityColumn, + multiValueOperator + ); + } + + protected Object convertData(Object value) { + DataConverter converter = + dataConverter != null + ? (DataConverter) dataConverter + : (DataConverter) DataConverterProvider.getDataConverter(value); + return converter.convertValueForSave(value); + } + + protected abstract EntityColumn getEntityColumn(); +} diff --git a/backend/src/main/java/ervu_dashboard/component/filter/FilterReference.java b/backend/src/main/java/ervu_dashboard/component/filter/FilterReference.java new file mode 100644 index 0000000..e8103ad --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/filter/FilterReference.java @@ -0,0 +1,16 @@ +package ervu_dashboard.component.filter; + +import model.FilterModel; + +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.webkit.annotations.Model; + +/** + * @author Vitaly Chekushkin + */ +public interface FilterReference { + + String getSupportsFilterGuid(); + + EntityFilter toEntityFilter(FilterModel filterModel); +} diff --git a/backend/src/main/java/ervu_dashboard/component/filter/FilterReferences.java b/backend/src/main/java/ervu_dashboard/component/filter/FilterReferences.java new file mode 100644 index 0000000..b17af64 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/filter/FilterReferences.java @@ -0,0 +1,45 @@ +package ervu_dashboard.component.filter; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import model.FilterModel; +import model.filter.FilterableReference; + +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.standard_annotations.scopes.AnalyticalScope; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; +import ru.cg.webbpm.modules.webkit.annotations.Model; +import ru.cg.webbpm.modules.webkit.beans.Behavior; + +/** + * @author Vitaly Chekushkin + */ +@Model +@AnalyticalScope(FilterableReference.class) +public class FilterReferences extends Behavior { + + @NotNull + public FilterReference[] references; + + private final Map referenceMap = new HashMap<>(); + + @Override + protected void start() { + super.start(); + Arrays.stream(references).forEach(reference -> referenceMap.put(reference.getSupportsFilterGuid(), reference)); + } + + public EntityFilter toEntityFilter(String filterGuid, FilterModel filterModel) { + return Optional.ofNullable(referenceMap.get(filterGuid)) + .map(reference -> reference.toEntityFilter(filterModel)) + .orElseThrow(() -> new IllegalArgumentException( + "Filter reference for guid=%s(id:%s) not defined".formatted( + filterGuid, filterGuid + )) + ); + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/filter/GraphFilterReference.java b/backend/src/main/java/ervu_dashboard/component/filter/GraphFilterReference.java new file mode 100644 index 0000000..74d85de --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/filter/GraphFilterReference.java @@ -0,0 +1,25 @@ +package ervu_dashboard.component.filter; + +import model.filter.FilterableReference; + +import ru.cg.webbpm.modules.database.bean.annotation.GraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class GraphFilterReference extends AbstractFilterReference { + + @NotNull + @GraphSource( + value = FilterableReference.class, + scanMode = GraphSource.ScanMode.SELF + ) + public EntityColumn columnForFilter; + + @Override + protected EntityColumn getEntityColumn() { + return columnForFilter; + } +} diff --git a/backend/src/main/java/ervu_dashboard/component/filter/StaticFilterReference.java b/backend/src/main/java/ervu_dashboard/component/filter/StaticFilterReference.java new file mode 100644 index 0000000..d97b435 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/component/filter/StaticFilterReference.java @@ -0,0 +1,22 @@ +package ervu_dashboard.component.filter; + +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; +import ru.cg.webbpm.modules.webkit.annotations.Model; + +/** + * @author Vitaly Chekushkin + */ +@Model +public class StaticFilterReference extends AbstractFilterReference { + + @NotNull + public String table; + @NotNull + public String column; + + @Override + protected EntityColumn getEntityColumn() { + return new EntityColumn(table, column); + } +} 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 new file mode 100644 index 0000000..ea9d1b7 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/DefaultCatalog.java @@ -0,0 +1,105 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans; + + +import ervu_dashboard.ervu_dashboard.db_beans.appeals.Appeals; +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; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.RecruitmentCampaign; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.space.Space; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.TotalRegistered; + +import java.util.Arrays; +import java.util.List; + +import org.jooq.Constants; +import org.jooq.Schema; +import org.jooq.impl.CatalogImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DefaultCatalog extends CatalogImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of DEFAULT_CATALOG + */ + public static final DefaultCatalog DEFAULT_CATALOG = new DefaultCatalog(); + + /** + * The schema appeals. + */ + public final Appeals APPEALS = Appeals.APPEALS; + + /** + * The schema main_dashboard. + */ + public final MainDashboard MAIN_DASHBOARD = MainDashboard.MAIN_DASHBOARD; + + /** + * The schema public. + */ + public final Public PUBLIC = Public.PUBLIC; + + /** + * The schema ratings. + */ + public final Ratings RATINGS = Ratings.RATINGS; + + /** + * The schema recruitment_campaign. + */ + public final RecruitmentCampaign RECRUITMENT_CAMPAIGN = RecruitmentCampaign.RECRUITMENT_CAMPAIGN; + + /** + * The schema security. + */ + public final Security SECURITY = Security.SECURITY; + + /** + * The schema space. + */ + public final Space SPACE = Space.SPACE; + + /** + * The schema total_registered. + */ + public final TotalRegistered TOTAL_REGISTERED = TotalRegistered.TOTAL_REGISTERED; + + /** + * No further instances allowed + */ + private DefaultCatalog() { + super(""); + } + + @Override + public final List getSchemas() { + return Arrays.asList( + Appeals.APPEALS, + MainDashboard.MAIN_DASHBOARD, + Public.PUBLIC, + Ratings.RATINGS, + RecruitmentCampaign.RECRUITMENT_CAMPAIGN, + Security.SECURITY, + Space.SPACE, + TotalRegistered.TOTAL_REGISTERED + ); + } + + /** + * A reference to the 3.19 minor release of the code generator. If this + * doesn't compile, it's because the runtime library uses an older minor + * release, namely: 3.19. You can turn off the generation of this reference + * by specifying /configuration/generator/generate/jooqVersionReference + */ + private static final String REQUIRE_RUNTIME_JOOQ_VERSION = Constants.VERSION_3_19; +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Appeals.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Appeals.java new file mode 100644 index 0000000..17bf989 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Appeals.java @@ -0,0 +1,76 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.appeals; + + +import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.MainProfile; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReasonsAppeal; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReviewRating; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.TopicAppeal; + +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 Appeals extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of appeals + */ + public static final Appeals APPEALS = new Appeals(); + + /** + * ミ樮ミスミセミイミスミセミケ ミソムミセムミクミサム ムτミセミイミオミスム ミミ、 + */ + public final MainProfile MAIN_PROFILE = MainProfile.MAIN_PROFILE; + + /** + * ミ湲ミクムミクミスム ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public final ReasonsAppeal REASONS_APPEAL = ReasonsAppeal.REASONS_APPEAL; + + /** + * ミミオミケムひクミスミウ ムミームムミシミセムびミオミスミクム ミカミーミサミセミア ムτミセミイミオミスム ミミ、 + */ + public final ReviewRating REVIEW_RATING = ReviewRating.REVIEW_RATING; + + /** + * ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public final TopicAppeal TOPIC_APPEAL = TopicAppeal.TOPIC_APPEAL; + + /** + * No further instances allowed + */ + private Appeals() { + super("appeals", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + MainProfile.MAIN_PROFILE, + ReasonsAppeal.REASONS_APPEAL, + ReviewRating.REVIEW_RATING, + TopicAppeal.TOPIC_APPEAL + ); + } +} 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 new file mode 100644 index 0000000..e04e95a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Keys.java @@ -0,0 +1,52 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.appeals; + + +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.MainProfile; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReasonsAppeal; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReviewRating; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.TopicAppeal; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records.MainProfileRecord; +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.space.tables.Region; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.RegionRecord; + +import org.jooq.ForeignKey; +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 + * appeals. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Keys { + + // ------------------------------------------------------------------------- + // UNIQUE and PRIMARY KEY definitions + // ------------------------------------------------------------------------- + + public static final UniqueKey PK_MAIN_PROFILE = Internal.createUniqueKey(MainProfile.MAIN_PROFILE, DSL.name("pk_main_profile"), new TableField[] { MainProfile.MAIN_PROFILE.ID_MAIN_PROFILE }, true); + public static final UniqueKey PK_REASONS_APPEAL = Internal.createUniqueKey(ReasonsAppeal.REASONS_APPEAL, DSL.name("pk_reasons_appeal"), new TableField[] { ReasonsAppeal.REASONS_APPEAL.ID_REASONS_APPEAL }, true); + public static final UniqueKey PK_REVIEW_RATING = Internal.createUniqueKey(ReviewRating.REVIEW_RATING, DSL.name("pk_review_rating"), new TableField[] { ReviewRating.REVIEW_RATING.ID_REVIEW_RATING }, true); + public static final UniqueKey PK_TOPIC_APPEAL = Internal.createUniqueKey(TopicAppeal.TOPIC_APPEAL, DSL.name("pk_topic_appeal"), new TableField[] { TopicAppeal.TOPIC_APPEAL.ID_TOPIC_APPEAL }, true); + + // ------------------------------------------------------------------------- + // 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 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); +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Tables.java new file mode 100644 index 0000000..c7cc777 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/Tables.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.appeals; + + +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.MainProfile; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReasonsAppeal; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReviewRating; +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.TopicAppeal; + + +/** + * Convenience access to all tables in appeals. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * ミ樮ミスミセミイミスミセミケ ミソムミセムミクミサム ムτミセミイミオミスム ミミ、 + */ + public static final MainProfile MAIN_PROFILE = MainProfile.MAIN_PROFILE; + + /** + * ミ湲ミクムミクミスム ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public static final ReasonsAppeal REASONS_APPEAL = ReasonsAppeal.REASONS_APPEAL; + + /** + * ミミオミケムひクミスミウ ムミームムミシミセムびミオミスミクム ミカミーミサミセミア ムτミセミイミオミスム ミミ、 + */ + public static final ReviewRating REVIEW_RATING = ReviewRating.REVIEW_RATING; + + /** + * ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public static final TopicAppeal TOPIC_APPEAL = TopicAppeal.TOPIC_APPEAL; +} 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 new file mode 100644 index 0000000..6345042 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/MainProfile.java @@ -0,0 +1,317 @@ +/* + * This file is generated by jOOQ. + */ +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 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 MainProfile extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of appeals.main_profile + */ + public static final MainProfile MAIN_PROFILE = new MainProfile(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return MainProfileRecord.class; + } + + /** + * The column appeals.main_profile.id_main_profile. + */ + public final TableField ID_MAIN_PROFILE = createField(DSL.name("id_main_profile"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column appeals.main_profile.gender. ミ渙セミサ + */ + public final TableField GENDER = createField(DSL.name("gender"), SQLDataType.CLOB, this, "ミ渙セミサ"); + + /** + * The column appeals.main_profile.age. ミ漬セミキムミームム + */ + public final TableField AGE = createField(DSL.name("age"), SQLDataType.CLOB, this, "ミ漬セミキムミームム"); + + /** + * The column appeals.main_profile.child_min_18. ミ頒オムひク ミエミセ 18 ミサミオム + */ + public final TableField CHILD_MIN_18 = createField(DSL.name("child_min_18"), SQLDataType.CLOB, this, "ミ頒オムひク ミエミセ 18 ミサミオム"); + + /** + * The column appeals.main_profile.education. ミ榧アムミーミキミセミイミーミスミクミオ + */ + public final TableField EDUCATION = createField(DSL.name("education"), SQLDataType.CLOB, this, "ミ榧アムミーミキミセミイミーミスミクミオ"); + + /** + * The column appeals.main_profile.employment. ミ厘ーミスム肖ひセムムび + */ + public final TableField EMPLOYMENT = createField(DSL.name("employment"), SQLDataType.CLOB, this, "ミ厘ーミスム肖ひセムムび"); + + /** + * The column appeals.main_profile.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 appeals.main_profile.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private MainProfile(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private MainProfile(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ樮ミスミセミイミスミセミケ ミソムミセムミクミサム ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased appeals.main_profile table reference + */ + public MainProfile(String alias) { + this(DSL.name(alias), MAIN_PROFILE); + } + + /** + * Create an aliased appeals.main_profile table reference + */ + public MainProfile(Name alias) { + this(alias, MAIN_PROFILE); + } + + /** + * Create a appeals.main_profile table reference + */ + public MainProfile() { + this(DSL.name("main_profile"), null); + } + + public MainProfile(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, MAIN_PROFILE); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class MainProfilePath extends MainProfile implements Path { + public MainProfilePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private MainProfilePath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public MainProfilePath as(String alias) { + return new MainProfilePath(DSL.name(alias), this); + } + + @Override + public MainProfilePath as(Name alias) { + return new MainProfilePath(alias, this); + } + + @Override + public MainProfilePath as(Table alias) { + return new MainProfilePath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Appeals.APPEALS; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_MAIN_PROFILE; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.MAIN_PROFILE__MAIN_PROFILE_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.MAIN_PROFILE__MAIN_PROFILE_FK1, null); + + return _pubRecruitment; + } + + @Override + public MainProfile as(String alias) { + return new MainProfile(DSL.name(alias), this); + } + + @Override + public MainProfile as(Name alias) { + return new MainProfile(alias, this); + } + + @Override + public MainProfile as(Table alias) { + return new MainProfile(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public MainProfile rename(String name) { + return new MainProfile(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public MainProfile rename(Name name) { + return new MainProfile(name, null); + } + + /** + * Rename this table + */ + @Override + public MainProfile rename(Table name) { + return new MainProfile(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MainProfile where(Condition condition) { + return new MainProfile(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MainProfile where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MainProfile where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MainProfile where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MainProfile where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MainProfile where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MainProfile where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MainProfile where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MainProfile whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MainProfile whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..a6f9e0a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReasonsAppeal.java @@ -0,0 +1,333 @@ +/* + * This file is generated by jOOQ. + */ +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 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 ReasonsAppeal extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of appeals.reasons_appeal + */ + public static final ReasonsAppeal REASONS_APPEAL = new ReasonsAppeal(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ReasonsAppealRecord.class; + } + + /** + * The column appeals.reasons_appeal.id_reasons_appeal. + */ + public final TableField ID_REASONS_APPEAL = createField(DSL.name("id_reasons_appeal"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column appeals.reasons_appeal.appeal. ミ榧アミカミーミサミセミイミーミスミクム + */ + public final TableField APPEAL = createField(DSL.name("appeal"), SQLDataType.NUMERIC, this, "ミ榧アミカミーミサミセミイミーミスミクム"); + + /** + * The column appeals.reasons_appeal.incorrect_inf. + * ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム + */ + public final TableField INCORRECT_INF = createField(DSL.name("incorrect_inf"), SQLDataType.NUMERIC, this, "ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム"); + + /** + * The column appeals.reasons_appeal.no_data. ミ斷オム ミエミーミスミスム錦 + */ + public final TableField NO_DATA = createField(DSL.name("no_data"), SQLDataType.NUMERIC, this, "ミ斷オム ミエミーミスミスム錦"); + + /** + * The column appeals.reasons_appeal.other. ミ湲ミセムミオミオ + */ + public final TableField OTHER = createField(DSL.name("other"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミオ"); + + /** + * The column appeals.reasons_appeal.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 appeals.reasons_appeal.incorrect_inf_percent. + * ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム ミイ ミソムミセムミオミスムひーム + */ + public final TableField INCORRECT_INF_PERCENT = createField(DSL.name("incorrect_inf_percent"), SQLDataType.NUMERIC, this, "ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column appeals.reasons_appeal.no_data_percent. ミ斷オム + * ミエミーミスミスム錦 ミイ ミソムミセムミオミスムひーム + */ + public final TableField NO_DATA_PERCENT = createField(DSL.name("no_data_percent"), SQLDataType.NUMERIC, this, "ミ斷オム ミエミーミスミスム錦 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column appeals.reasons_appeal.other_percent. ミ湲ミセムミオミオ ミイ + * ミソムミセムミオミスムひーム + */ + public final TableField OTHER_PERCENT = createField(DSL.name("other_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミオ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column appeals.reasons_appeal.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private ReasonsAppeal(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private ReasonsAppeal(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ湲ミクムミクミスム ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased appeals.reasons_appeal table reference + */ + public ReasonsAppeal(String alias) { + this(DSL.name(alias), REASONS_APPEAL); + } + + /** + * Create an aliased appeals.reasons_appeal table reference + */ + public ReasonsAppeal(Name alias) { + this(alias, REASONS_APPEAL); + } + + /** + * Create a appeals.reasons_appeal table reference + */ + public ReasonsAppeal() { + this(DSL.name("reasons_appeal"), null); + } + + public ReasonsAppeal(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, REASONS_APPEAL); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class ReasonsAppealPath extends ReasonsAppeal implements Path { + public ReasonsAppealPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private ReasonsAppealPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public ReasonsAppealPath as(String alias) { + return new ReasonsAppealPath(DSL.name(alias), this); + } + + @Override + public ReasonsAppealPath as(Name alias) { + return new ReasonsAppealPath(alias, this); + } + + @Override + public ReasonsAppealPath as(Table alias) { + return new ReasonsAppealPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Appeals.APPEALS; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_REASONS_APPEAL; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.REASONS_APPEAL__REASONS_APPEAL_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.REASONS_APPEAL__REASONS_APPEAL_FK1, null); + + return _pubRecruitment; + } + + @Override + public ReasonsAppeal as(String alias) { + return new ReasonsAppeal(DSL.name(alias), this); + } + + @Override + public ReasonsAppeal as(Name alias) { + return new ReasonsAppeal(alias, this); + } + + @Override + public ReasonsAppeal as(Table alias) { + return new ReasonsAppeal(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public ReasonsAppeal rename(String name) { + return new ReasonsAppeal(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public ReasonsAppeal rename(Name name) { + return new ReasonsAppeal(name, null); + } + + /** + * Rename this table + */ + @Override + public ReasonsAppeal rename(Table name) { + return new ReasonsAppeal(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReasonsAppeal where(Condition condition) { + return new ReasonsAppeal(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReasonsAppeal where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReasonsAppeal where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReasonsAppeal where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReasonsAppeal where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReasonsAppeal where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReasonsAppeal where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReasonsAppeal where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReasonsAppeal whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReasonsAppeal whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..6768665 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/ReviewRating.java @@ -0,0 +1,323 @@ +/* + * This file is generated by jOOQ. + */ +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.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 ReviewRating extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of appeals.review_rating + */ + public static final ReviewRating REVIEW_RATING = new ReviewRating(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ReviewRatingRecord.class; + } + + /** + * The column appeals.review_rating.id_review_rating. + */ + public final TableField ID_REVIEW_RATING = createField(DSL.name("id_review_rating"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column appeals.review_rating.speed. ミ。ミコミセムミセムムび + * ムミームムミシミセムびミオミスミクム + */ + public final TableField SPEED = createField(DSL.name("speed"), SQLDataType.NUMERIC, this, "ミ。ミコミセムミセムムび ムミームムミシミセムびミオミスミクム"); + + /** + * The column appeals.review_rating.rating. ミ樮ミオミスミコミー + * ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public final TableField RATING = createField(DSL.name("rating"), SQLDataType.NUMERIC, this, "ミ樮ミオミスミコミー ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク"); + + /** + * The column appeals.review_rating.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 appeals.review_rating.id_region. + */ + public final TableField ID_REGION = createField(DSL.name("id_region"), SQLDataType.BIGINT, this, ""); + + /** + * The column appeals.review_rating.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private ReviewRating(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private ReviewRating(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミミオミケムひクミスミウ ムミームムミシミセムびミオミスミクム ミカミーミサミセミア ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased appeals.review_rating table reference + */ + public ReviewRating(String alias) { + this(DSL.name(alias), REVIEW_RATING); + } + + /** + * Create an aliased appeals.review_rating table reference + */ + public ReviewRating(Name alias) { + this(alias, REVIEW_RATING); + } + + /** + * Create a appeals.review_rating table reference + */ + public ReviewRating() { + this(DSL.name("review_rating"), null); + } + + public ReviewRating(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, REVIEW_RATING); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class ReviewRatingPath extends ReviewRating implements Path { + public ReviewRatingPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private ReviewRatingPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public ReviewRatingPath as(String alias) { + return new ReviewRatingPath(DSL.name(alias), this); + } + + @Override + public ReviewRatingPath as(Name alias) { + return new ReviewRatingPath(alias, this); + } + + @Override + public ReviewRatingPath as(Table alias) { + return new ReviewRatingPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Appeals.APPEALS; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_REVIEW_RATING; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.REVIEW_RATING__FK_REGION, Keys.REVIEW_RATING__REVIEW_RATING_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.REVIEW_RATING__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.REVIEW_RATING__REVIEW_RATING_FK1, null); + + return _pubRecruitment; + } + + @Override + public ReviewRating as(String alias) { + return new ReviewRating(DSL.name(alias), this); + } + + @Override + public ReviewRating as(Name alias) { + return new ReviewRating(alias, this); + } + + @Override + public ReviewRating as(Table alias) { + return new ReviewRating(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public ReviewRating rename(String name) { + return new ReviewRating(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public ReviewRating rename(Name name) { + return new ReviewRating(name, null); + } + + /** + * Rename this table + */ + @Override + public ReviewRating rename(Table name) { + return new ReviewRating(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReviewRating where(Condition condition) { + return new ReviewRating(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReviewRating where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReviewRating where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReviewRating where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReviewRating where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReviewRating where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReviewRating where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ReviewRating where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReviewRating whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ReviewRating whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..cdedef0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/TopicAppeal.java @@ -0,0 +1,341 @@ +/* + * This file is generated by jOOQ. + */ +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 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 TopicAppeal extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of appeals.topic_appeal + */ + public static final TopicAppeal TOPIC_APPEAL = new TopicAppeal(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return TopicAppealRecord.class; + } + + /** + * The column appeals.topic_appeal.id_topic_appeal. + */ + public final TableField ID_TOPIC_APPEAL = createField(DSL.name("id_topic_appeal"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column appeals.topic_appeal.registration. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム + */ + public final TableField REGISTRATION = createField(DSL.name("registration"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム"); + + /** + * The column appeals.topic_appeal.sabpoena. ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム + * ミソミセミイミオムムひコミク + */ + public final TableField SABPOENA = createField(DSL.name("sabpoena"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミソミセミイミオムムひコミク"); + + /** + * The column appeals.topic_appeal.appear. ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム + * ム紹イミコミー + */ + public final TableField APPEAR = createField(DSL.name("appear"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ム紹イミコミー"); + + /** + * The column appeals.topic_appeal.temporary_measures. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム + */ + public final TableField TEMPORARY_MEASURES = createField(DSL.name("temporary_measures"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム"); + + /** + * The column appeals.topic_appeal.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 appeals.topic_appeal.registration_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム ミイ ミソムミセムミオミスムひーム + */ + public final TableField REGISTRATION_PERCENT = createField(DSL.name("registration_percent"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column appeals.topic_appeal.sabpoena_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセミイミオムムひコミク ミイ ミソムミセムミオミスムひーム + */ + public final TableField SABPOENA_PERCENT = createField(DSL.name("sabpoena_percent"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミソミセミイミオムムひコミク ミイ ミソムミセムミオミスムひーム"); + + /** + * The column appeals.topic_appeal.appear_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ム紹イミコミー ミイ ミソムミセムミオミスムひーム + */ + public final TableField APPEAR_PERCENT = createField(DSL.name("appear_percent"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ム紹イミコミー ミイ ミソムミセムミオミスムひーム"); + + /** + * The column appeals.topic_appeal.temporary_measures_percent. + * ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム ミイ ミソムミセムミオミスムひーム + */ + public final TableField TEMPORARY_MEASURES_PERCENT = createField(DSL.name("temporary_measures_percent"), SQLDataType.NUMERIC, this, "ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column appeals.topic_appeal.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private TopicAppeal(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private TopicAppeal(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased appeals.topic_appeal table reference + */ + public TopicAppeal(String alias) { + this(DSL.name(alias), TOPIC_APPEAL); + } + + /** + * Create an aliased appeals.topic_appeal table reference + */ + public TopicAppeal(Name alias) { + this(alias, TOPIC_APPEAL); + } + + /** + * Create a appeals.topic_appeal table reference + */ + public TopicAppeal() { + this(DSL.name("topic_appeal"), null); + } + + public TopicAppeal(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, TOPIC_APPEAL); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class TopicAppealPath extends TopicAppeal implements Path { + public TopicAppealPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private TopicAppealPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public TopicAppealPath as(String alias) { + return new TopicAppealPath(DSL.name(alias), this); + } + + @Override + public TopicAppealPath as(Name alias) { + return new TopicAppealPath(alias, this); + } + + @Override + public TopicAppealPath as(Table alias) { + return new TopicAppealPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Appeals.APPEALS; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_TOPIC_APPEAL; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.TOPIC_APPEAL__TOPIC_APPEAL_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.TOPIC_APPEAL__TOPIC_APPEAL_FK1, null); + + return _pubRecruitment; + } + + @Override + public TopicAppeal as(String alias) { + return new TopicAppeal(DSL.name(alias), this); + } + + @Override + public TopicAppeal as(Name alias) { + return new TopicAppeal(alias, this); + } + + @Override + public TopicAppeal as(Table alias) { + return new TopicAppeal(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public TopicAppeal rename(String name) { + return new TopicAppeal(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public TopicAppeal rename(Name name) { + return new TopicAppeal(name, null); + } + + /** + * Rename this table + */ + @Override + public TopicAppeal rename(Table name) { + return new TopicAppeal(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TopicAppeal where(Condition condition) { + return new TopicAppeal(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TopicAppeal where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TopicAppeal where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TopicAppeal where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TopicAppeal where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TopicAppeal where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TopicAppeal where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TopicAppeal where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TopicAppeal whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TopicAppeal whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..12e6a9a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/MainProfileRecord.java @@ -0,0 +1,172 @@ +/* + * This file is generated by jOOQ. + */ +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; + + +/** + * ミ樮ミスミセミイミスミセミケ ミソムミセムミクミサム ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MainProfileRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for appeals.main_profile.id_main_profile. + */ + public void setIdMainProfile(Long value) { + set(0, value); + } + + /** + * Getter for appeals.main_profile.id_main_profile. + */ + public Long getIdMainProfile() { + return (Long) get(0); + } + + /** + * Setter for appeals.main_profile.gender. ミ渙セミサ + */ + public void setGender(String value) { + set(1, value); + } + + /** + * Getter for appeals.main_profile.gender. ミ渙セミサ + */ + public String getGender() { + return (String) get(1); + } + + /** + * Setter for appeals.main_profile.age. ミ漬セミキムミームム + */ + public void setAge(String value) { + set(2, value); + } + + /** + * Getter for appeals.main_profile.age. ミ漬セミキムミームム + */ + public String getAge() { + return (String) get(2); + } + + /** + * Setter for appeals.main_profile.child_min_18. ミ頒オムひク ミエミセ 18 ミサミオム + */ + public void setChildMin_18(String value) { + set(3, value); + } + + /** + * Getter for appeals.main_profile.child_min_18. ミ頒オムひク ミエミセ 18 ミサミオム + */ + public String getChildMin_18() { + return (String) get(3); + } + + /** + * Setter for appeals.main_profile.education. ミ榧アムミーミキミセミイミーミスミクミオ + */ + public void setEducation(String value) { + set(4, value); + } + + /** + * Getter for appeals.main_profile.education. ミ榧アムミーミキミセミイミーミスミクミオ + */ + public String getEducation() { + return (String) get(4); + } + + /** + * Setter for appeals.main_profile.employment. ミ厘ーミスム肖ひセムムび + */ + public void setEmployment(String value) { + set(5, value); + } + + /** + * Getter for appeals.main_profile.employment. ミ厘ーミスム肖ひセムムび + */ + public String getEmployment() { + return (String) get(5); + } + + /** + * Setter for appeals.main_profile.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(6, value); + } + + /** + * Getter for appeals.main_profile.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(6); + } + + /** + * Setter for appeals.main_profile.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(7, value); + } + + /** + * Getter for appeals.main_profile.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(7); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached MainProfileRecord + */ + public MainProfileRecord() { + super(MainProfile.MAIN_PROFILE); + } + + /** + * Create a detached, initialised MainProfileRecord + */ + public MainProfileRecord(Long idMainProfile, String gender, String age, String childMin_18, String education, String employment, Date recordingDate, UUID recruitmentId) { + super(MainProfile.MAIN_PROFILE); + + setIdMainProfile(idMainProfile); + setGender(gender); + setAge(age); + setChildMin_18(childMin_18); + setEducation(education); + setEmployment(employment); + setRecordingDate(recordingDate); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} 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 new file mode 100644 index 0000000..6d177b6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReasonsAppealRecord.java @@ -0,0 +1,213 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records; + + +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; + + +/** + * ミ湲ミクムミクミスム ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ReasonsAppealRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for appeals.reasons_appeal.id_reasons_appeal. + */ + public void setIdReasonsAppeal(Long value) { + set(0, value); + } + + /** + * Getter for appeals.reasons_appeal.id_reasons_appeal. + */ + public Long getIdReasonsAppeal() { + return (Long) get(0); + } + + /** + * Setter for appeals.reasons_appeal.appeal. ミ榧アミカミーミサミセミイミーミスミクム + */ + public void setAppeal(BigDecimal value) { + set(1, value); + } + + /** + * Getter for appeals.reasons_appeal.appeal. ミ榧アミカミーミサミセミイミーミスミクム + */ + public BigDecimal getAppeal() { + return (BigDecimal) get(1); + } + + /** + * Setter for appeals.reasons_appeal.incorrect_inf. + * ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム + */ + public void setIncorrectInf(BigDecimal value) { + set(2, value); + } + + /** + * Getter for appeals.reasons_appeal.incorrect_inf. + * ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム + */ + public BigDecimal getIncorrectInf() { + return (BigDecimal) get(2); + } + + /** + * Setter for appeals.reasons_appeal.no_data. ミ斷オム ミエミーミスミスム錦 + */ + public void setNoData(BigDecimal value) { + set(3, value); + } + + /** + * Getter for appeals.reasons_appeal.no_data. ミ斷オム ミエミーミスミスム錦 + */ + public BigDecimal getNoData() { + return (BigDecimal) get(3); + } + + /** + * Setter for appeals.reasons_appeal.other. ミ湲ミセムミオミオ + */ + public void setOther(BigDecimal value) { + set(4, value); + } + + /** + * Getter for appeals.reasons_appeal.other. ミ湲ミセムミオミオ + */ + public BigDecimal getOther() { + return (BigDecimal) get(4); + } + + /** + * Setter for appeals.reasons_appeal.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(5, value); + } + + /** + * Getter for appeals.reasons_appeal.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(5); + } + + /** + * Setter for appeals.reasons_appeal.incorrect_inf_percent. + * ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム ミイ ミソムミセムミオミスムひーム + */ + public void setIncorrectInfPercent(BigDecimal value) { + set(6, value); + } + + /** + * Getter for appeals.reasons_appeal.incorrect_inf_percent. + * ミ斷オミコミセムムミオミコムひスム巾オ ムミイミオミエミオミスミクム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getIncorrectInfPercent() { + return (BigDecimal) get(6); + } + + /** + * Setter for appeals.reasons_appeal.no_data_percent. ミ斷オム + * ミエミーミスミスム錦 ミイ ミソムミセムミオミスムひーム + */ + public void setNoDataPercent(BigDecimal value) { + set(7, value); + } + + /** + * Getter for appeals.reasons_appeal.no_data_percent. ミ斷オム + * ミエミーミスミスム錦 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNoDataPercent() { + return (BigDecimal) get(7); + } + + /** + * Setter for appeals.reasons_appeal.other_percent. ミ湲ミセムミオミオ ミイ + * ミソムミセムミオミスムひーム + */ + public void setOtherPercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for appeals.reasons_appeal.other_percent. ミ湲ミセムミオミオ ミイ + * ミソムミセムミオミスムひーム + */ + public BigDecimal getOtherPercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for appeals.reasons_appeal.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(9, value); + } + + /** + * Getter for appeals.reasons_appeal.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(9); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ReasonsAppealRecord + */ + public ReasonsAppealRecord() { + super(ReasonsAppeal.REASONS_APPEAL); + } + + /** + * Create a detached, initialised ReasonsAppealRecord + */ + public ReasonsAppealRecord(Long idReasonsAppeal, BigDecimal appeal, BigDecimal incorrectInf, BigDecimal noData, BigDecimal other, Date recordingDate, BigDecimal incorrectInfPercent, BigDecimal noDataPercent, BigDecimal otherPercent, UUID recruitmentId) { + super(ReasonsAppeal.REASONS_APPEAL); + + setIdReasonsAppeal(idReasonsAppeal); + setAppeal(appeal); + setIncorrectInf(incorrectInf); + setNoData(noData); + setOther(other); + setRecordingDate(recordingDate); + setIncorrectInfPercent(incorrectInfPercent); + setNoDataPercent(noDataPercent); + setOtherPercent(otherPercent); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReviewRatingRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReviewRatingRecord.java new file mode 100644 index 0000000..d51faea --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/ReviewRatingRecord.java @@ -0,0 +1,147 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.ReviewRating; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミミオミケムひクミスミウ ムミームムミシミセムびミオミスミクム ミカミーミサミセミア ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ReviewRatingRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for appeals.review_rating.id_review_rating. + */ + public void setIdReviewRating(Long value) { + set(0, value); + } + + /** + * Getter for appeals.review_rating.id_review_rating. + */ + public Long getIdReviewRating() { + return (Long) get(0); + } + + /** + * Setter for appeals.review_rating.speed. ミ。ミコミセムミセムムび + * ムミームムミシミセムびミオミスミクム + */ + public void setSpeed(BigDecimal value) { + set(1, value); + } + + /** + * Getter for appeals.review_rating.speed. ミ。ミコミセムミセムムび + * ムミームムミシミセムびミオミスミクム + */ + public BigDecimal getSpeed() { + return (BigDecimal) get(1); + } + + /** + * Setter for appeals.review_rating.rating. ミ樮ミオミスミコミー + * ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public void setRating(BigDecimal value) { + set(2, value); + } + + /** + * Getter for appeals.review_rating.rating. ミ樮ミオミスミコミー + * ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public BigDecimal getRating() { + return (BigDecimal) get(2); + } + + /** + * Setter for appeals.review_rating.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(3, value); + } + + /** + * Getter for appeals.review_rating.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(3); + } + + /** + * Setter for appeals.review_rating.id_region. + */ + public void setIdRegion(Long value) { + set(4, value); + } + + /** + * Getter for appeals.review_rating.id_region. + */ + public Long getIdRegion() { + return (Long) get(4); + } + + /** + * Setter for appeals.review_rating.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(5, value); + } + + /** + * Getter for appeals.review_rating.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(5); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ReviewRatingRecord + */ + public ReviewRatingRecord() { + super(ReviewRating.REVIEW_RATING); + } + + /** + * Create a detached, initialised ReviewRatingRecord + */ + public ReviewRatingRecord(Long idReviewRating, BigDecimal speed, BigDecimal rating, Date recordingDate, Long idRegion, UUID recruitmentId) { + super(ReviewRating.REVIEW_RATING); + + setIdReviewRating(idReviewRating); + setSpeed(speed); + setRating(rating); + setRecordingDate(recordingDate); + setIdRegion(idRegion); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} 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 new file mode 100644 index 0000000..677c11a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/appeals/tables/records/TopicAppealRecord.java @@ -0,0 +1,234 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.appeals.tables.records; + + +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; + + +/** + * ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class TopicAppealRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for appeals.topic_appeal.id_topic_appeal. + */ + public void setIdTopicAppeal(Long value) { + set(0, value); + } + + /** + * Getter for appeals.topic_appeal.id_topic_appeal. + */ + public Long getIdTopicAppeal() { + return (Long) get(0); + } + + /** + * Setter for appeals.topic_appeal.registration. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム + */ + public void setRegistration(BigDecimal value) { + set(1, value); + } + + /** + * Getter for appeals.topic_appeal.registration. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム + */ + public BigDecimal getRegistration() { + return (BigDecimal) get(1); + } + + /** + * Setter for appeals.topic_appeal.sabpoena. ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム + * ミソミセミイミオムムひコミク + */ + public void setSabpoena(BigDecimal value) { + set(2, value); + } + + /** + * Getter for appeals.topic_appeal.sabpoena. ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム + * ミソミセミイミオムムひコミク + */ + public BigDecimal getSabpoena() { + return (BigDecimal) get(2); + } + + /** + * Setter for appeals.topic_appeal.appear. ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム + * ム紹イミコミー + */ + public void setAppear(BigDecimal value) { + set(3, value); + } + + /** + * Getter for appeals.topic_appeal.appear. ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム + * ム紹イミコミー + */ + public BigDecimal getAppear() { + return (BigDecimal) get(3); + } + + /** + * Setter for appeals.topic_appeal.temporary_measures. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム + */ + public void setTemporaryMeasures(BigDecimal value) { + set(4, value); + } + + /** + * Getter for appeals.topic_appeal.temporary_measures. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム + */ + public BigDecimal getTemporaryMeasures() { + return (BigDecimal) get(4); + } + + /** + * Setter for appeals.topic_appeal.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(5, value); + } + + /** + * Getter for appeals.topic_appeal.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(5); + } + + /** + * Setter for appeals.topic_appeal.registration_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム ミイ ミソムミセムミオミスムひーム + */ + public void setRegistrationPercent(BigDecimal value) { + set(6, value); + } + + /** + * Getter for appeals.topic_appeal.registration_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセムムひーミスミセミイミコミー ミスミー ムτミオム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getRegistrationPercent() { + return (BigDecimal) get(6); + } + + /** + * Setter for appeals.topic_appeal.sabpoena_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセミイミオムムひコミク ミイ ミソムミセムミオミスムひーム + */ + public void setSabpoenaPercent(BigDecimal value) { + set(7, value); + } + + /** + * Getter for appeals.topic_appeal.sabpoena_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ミソミセミイミオムムひコミク ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getSabpoenaPercent() { + return (BigDecimal) get(7); + } + + /** + * Setter for appeals.topic_appeal.appear_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ム紹イミコミー ミイ ミソムミセムミオミスムひーム + */ + public void setAppearPercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for appeals.topic_appeal.appear_percent. ミ「ミオミシミー + * ミセミアミカミーミサミセミイミーミスミクム ム紹イミコミー ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getAppearPercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for appeals.topic_appeal.temporary_measures_percent. + * ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム ミイ ミソムミセムミオミスムひーム + */ + public void setTemporaryMeasuresPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for appeals.topic_appeal.temporary_measures_percent. + * ミ「ミオミシミー ミセミアミカミーミサミセミイミーミスミクム ミイムミオミシミオミスミスム巾オ ミシミオムム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getTemporaryMeasuresPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for appeals.topic_appeal.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(10, value); + } + + /** + * Getter for appeals.topic_appeal.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(10); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached TopicAppealRecord + */ + public TopicAppealRecord() { + super(TopicAppeal.TOPIC_APPEAL); + } + + /** + * 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) { + super(TopicAppeal.TOPIC_APPEAL); + + setIdTopicAppeal(idTopicAppeal); + setRegistration(registration); + setSabpoena(sabpoena); + setAppear(appear); + setTemporaryMeasures(temporaryMeasures); + setRecordingDate(recordingDate); + setRegistrationPercent(registrationPercent); + setSabpoenaPercent(sabpoenaPercent); + setAppearPercent(appearPercent); + setTemporaryMeasuresPercent(temporaryMeasuresPercent); + setRecruitmentId(recruitmentId); + 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 new file mode 100644 index 0000000..957f0f0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Keys.java @@ -0,0 +1,49 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard; + + +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.Appeals; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.RecruitmentCampaign; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.TotalRegistered; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.WaitingRegistration; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records.AppealsRecord; +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; +import org.jooq.impl.Internal; + + +/** + * A class modelling foreign key relationships and constraints of tables in + * main_dashboard. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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); +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/MainDashboard.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/MainDashboard.java new file mode 100644 index 0000000..bf47254 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/MainDashboard.java @@ -0,0 +1,76 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard; + + +import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.Appeals; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.RecruitmentCampaign; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.TotalRegistered; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.WaitingRegistration; + +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 MainDashboard extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of main_dashboard + */ + public static final MainDashboard MAIN_DASHBOARD = new MainDashboard(); + + /** + * ミ榧アミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public final Appeals APPEALS = Appeals.APPEALS; + + /** + * ミ湲ミクミキム巾イミスミーム ミコミーミシミソミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public final RecruitmentCampaign RECRUITMENT_CAMPAIGN = RecruitmentCampaign.RECRUITMENT_CAMPAIGN; + + /** + * ミ柘ミオミウミセ ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public final TotalRegistered TOTAL_REGISTERED = TotalRegistered.TOTAL_REGISTERED; + + /** + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミスミー ムτミオム ムτミセミイミオミスム ミミ、 + */ + public final WaitingRegistration WAITING_REGISTRATION = WaitingRegistration.WAITING_REGISTRATION; + + /** + * No further instances allowed + */ + private MainDashboard() { + super("main_dashboard", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + Appeals.APPEALS, + RecruitmentCampaign.RECRUITMENT_CAMPAIGN, + TotalRegistered.TOTAL_REGISTERED, + WaitingRegistration.WAITING_REGISTRATION + ); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Tables.java new file mode 100644 index 0000000..b345586 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/Tables.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard; + + +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.Appeals; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.RecruitmentCampaign; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.TotalRegistered; +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.WaitingRegistration; + + +/** + * Convenience access to all tables in main_dashboard. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * ミ榧アミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public static final Appeals APPEALS = Appeals.APPEALS; + + /** + * ミ湲ミクミキム巾イミスミーム ミコミーミシミソミーミスミクム ムτミセミイミオミスム ミミ、 + */ + public static final RecruitmentCampaign RECRUITMENT_CAMPAIGN = RecruitmentCampaign.RECRUITMENT_CAMPAIGN; + + /** + * ミ柘ミオミウミセ ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public static final TotalRegistered TOTAL_REGISTERED = TotalRegistered.TOTAL_REGISTERED; + + /** + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミスミー ムτミオム ムτミセミイミオミスム ミミ、 + */ + public static final WaitingRegistration WAITING_REGISTRATION = WaitingRegistration.WAITING_REGISTRATION; +} 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 new file mode 100644 index 0000000..c888c7e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/Appeals.java @@ -0,0 +1,346 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 Appeals extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of main_dashboard.appeals + */ + public static final Appeals APPEALS = new Appeals(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. ミ柘ミオミウミセ ミカミーミサミセミア + */ + public final TableField TOTAL_APPEALS = createField(DSL.name("total_appeals"), SQLDataType.NUMERIC, this, "ミ柘ミオミウミセ ミカミーミサミセミア"); + + /** + * The column main_dashboard.appeals.resolved. ミ墟セミサミクムミオムムひイミセ + * ムミオム威オミスミスム錦 + */ + public final TableField RESOLVED = createField(DSL.name("resolved"), SQLDataType.NUMERIC, this, "ミ墟セミサミクムミオムムひイミセ ムミオム威オミスミスム錦"); + + /** + * The column main_dashboard.appeals.average_consideration. + * ミ。ムミオミエミスミクミケ ムムミセミコ ムミームムミシミセムびミオミスミクム + */ + public final TableField AVERAGE_CONSIDERATION = createField(DSL.name("average_consideration"), SQLDataType.NUMERIC, this, "ミ。ムミオミエミスミクミケ ムムミセミコ ムミームムミシミセムびミオミスミクム"); + + /** + * The column main_dashboard.appeals.average_rating. ミ樮ミオミスミコミー + * ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public final TableField AVERAGE_RATING = createField(DSL.name("average_rating"), SQLDataType.NUMERIC, this, "ミ樮ミオミスミコミー ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク"); + + /** + * The column main_dashboard.appeals.average_to_face. ミ。ミソミセムミセミア + * ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ + */ + public final TableField AVERAGE_TO_FACE = createField(DSL.name("average_to_face"), SQLDataType.NUMERIC, this, "ミ。ミソミセムミセミア ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ"); + + /** + * The column main_dashboard.appeals.average_EPGU. ミ。ミソミセムミセミア + * ミソミセミエミームミク ミ片渙寅」 + */ + public final TableField AVERAGE_EPGU = createField(DSL.name("average_EPGU"), SQLDataType.NUMERIC, this, "ミ。ミソミセムミセミア ミソミセミエミームミク ミ片渙寅」"); + + /** + * 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column main_dashboard.appeals.average_to_face_percent. + * ミ。ミソミセムミセミア ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ ミイ ミソムミセムミオミスムひーム + */ + public final TableField AVERAGE_TO_FACE_PERCENT = createField(DSL.name("average_to_face_percent"), SQLDataType.NUMERIC, this, "ミ。ミソミセムミセミア ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column main_dashboard.appeals.average_EPGU_percent. + * ミ。ミソミセムミセミア ミソミセミエミームミク ミ片渙寅」 ミイ ミソムミセムミオミスムひーム + */ + public final TableField AVERAGE_EPGU_PERCENT = createField(DSL.name("average_EPGU_percent"), SQLDataType.NUMERIC, this, "ミ。ミソミセムミセミア ミソミセミエミームミク ミ片渙寅」 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column main_dashboard.appeals.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column main_dashboard.appeals.testrecruitment_id. + */ + public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + + private Appeals(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Appeals(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ榧アミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased main_dashboard.appeals table reference + */ + public Appeals(String alias) { + this(DSL.name(alias), APPEALS); + } + + /** + * Create an aliased main_dashboard.appeals table reference + */ + public Appeals(Name alias) { + this(alias, APPEALS); + } + + /** + * Create a main_dashboard.appeals table reference + */ + public Appeals() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public Appeals as(String alias) { + return new Appeals(DSL.name(alias), this); + } + + @Override + public Appeals as(Name alias) { + return new Appeals(alias, this); + } + + @Override + public Appeals as(Table alias) { + return new Appeals(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Appeals rename(String name) { + return new Appeals(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Appeals rename(Name name) { + return new Appeals(name, null); + } + + /** + * Rename this table + */ + @Override + public Appeals rename(Table name) { + return new Appeals(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Condition condition) { + return new Appeals(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..09c0ec1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/RecruitmentCampaign.java @@ -0,0 +1,388 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 RecruitmentCampaign extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * main_dashboard.recruitment_campaign + */ + public static final RecruitmentCampaign RECRUITMENT_CAMPAIGN = new RecruitmentCampaign(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. + * ミ渙セミエミソミーミエミーム紗禍クミオ ミソミセミエ ミソムミクミキム巾イ + */ + public final TableField NEW_RECRUITS = createField(DSL.name("new_recruits"), SQLDataType.NUMERIC, this, "ミ渙セミエミソミーミエミーム紗禍クミオ ミソミセミエ ミソムミクミキム巾イ"); + + /** + * The column + * main_dashboard.recruitment_campaign.subpoenas_sent. + * ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ + */ + public final TableField SUBPOENAS_SENT = createField(DSL.name("subpoenas_sent"), SQLDataType.NUMERIC, this, "ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ"); + + /** + * The column + * main_dashboard.recruitment_campaign.appeared_on_subpoenas. + * ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ + */ + public final TableField APPEARED_ON_SUBPOENAS = createField(DSL.name("appeared_on_subpoenas"), SQLDataType.NUMERIC, this, "ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ"); + + /** + * The column + * main_dashboard.recruitment_campaign.not_appeared_on_subpoenas. + * ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ + */ + public final TableField NOT_APPEARED_ON_SUBPOENAS = createField(DSL.name("not_appeared_on_subpoenas"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ"); + + /** + * The column + * main_dashboard.recruitment_campaign.postponement_have_right. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public final TableField POSTPONEMENT_HAVE_RIGHT = createField(DSL.name("postponement_have_right"), SQLDataType.NUMERIC, this, "ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム"); + + /** + * The column + * main_dashboard.recruitment_campaign.postponement_granted. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー + */ + public final TableField POSTPONEMENT_GRANTED = createField(DSL.name("postponement_granted"), SQLDataType.NUMERIC, this, "ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー"); + + /** + * The column + * 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, "ミ漬オムミスミー/ミ樮ミオミスム"); + + /** + * The column + * main_dashboard.recruitment_campaign.appeared_on_subpoenas_percent. + * ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム + */ + public final TableField APPEARED_ON_SUBPOENAS_PERCENT = createField(DSL.name("appeared_on_subpoenas_percent"), SQLDataType.NUMERIC, this, "ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム"); + + /** + * The column + * main_dashboard.recruitment_campaign.not_appeared_on_subpoenas_percent. + * ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム + */ + public final TableField NOT_APPEARED_ON_SUBPOENAS_PERCENT = createField(DSL.name("not_appeared_on_subpoenas_percent"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム"); + + /** + * The column + * main_dashboard.recruitment_campaign.postponement_have_right_percent. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム ミソムミセムミオミスム + */ + public final TableField POSTPONEMENT_HAVE_RIGHT_PERCENT = createField(DSL.name("postponement_have_right_percent"), SQLDataType.NUMERIC, this, "ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム ミソムミセムミオミスム"); + + /** + * The column + * main_dashboard.recruitment_campaign.postponement_granted_percent. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー ミソムミセムミオミスム + */ + public final TableField POSTPONEMENT_GRANTED_PERCENT = createField(DSL.name("postponement_granted_percent"), SQLDataType.NUMERIC, this, "ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー ミソムミセムミオミスム"); + + /** + * The column + * main_dashboard.recruitment_campaign.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column + * main_dashboard.recruitment_campaign.testrecruitment_id. + */ + public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column + * main_dashboard.recruitment_campaign.testspring_autumn. + */ + public final TableField TESTSPRING_AUTUMN = createField(DSL.name("testspring_autumn"), SQLDataType.CHAR(36), this, ""); + + private RecruitmentCampaign(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private RecruitmentCampaign(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ湲ミクミキム巾イミスミーム ミコミーミシミソミーミスミクム ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased main_dashboard.recruitment_campaign table + * reference + */ + public RecruitmentCampaign(String alias) { + this(DSL.name(alias), RECRUITMENT_CAMPAIGN); + } + + /** + * Create an aliased main_dashboard.recruitment_campaign table + * reference + */ + public RecruitmentCampaign(Name alias) { + this(alias, RECRUITMENT_CAMPAIGN); + } + + /** + * Create a main_dashboard.recruitment_campaign table reference + */ + public RecruitmentCampaign() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public RecruitmentCampaign as(String alias) { + return new RecruitmentCampaign(DSL.name(alias), this); + } + + @Override + public RecruitmentCampaign as(Name alias) { + return new RecruitmentCampaign(alias, this); + } + + @Override + public RecruitmentCampaign as(Table alias) { + return new RecruitmentCampaign(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public RecruitmentCampaign rename(String name) { + return new RecruitmentCampaign(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public RecruitmentCampaign rename(Name name) { + return new RecruitmentCampaign(name, null); + } + + /** + * Rename this table + */ + @Override + public RecruitmentCampaign rename(Table name) { + return new RecruitmentCampaign(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RecruitmentCampaign where(Condition condition) { + return new RecruitmentCampaign(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RecruitmentCampaign where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RecruitmentCampaign where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RecruitmentCampaign where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RecruitmentCampaign where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RecruitmentCampaign where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RecruitmentCampaign where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RecruitmentCampaign where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RecruitmentCampaign whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RecruitmentCampaign whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..3941b97 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/TotalRegistered.java @@ -0,0 +1,365 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 TotalRegistered extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of main_dashboard.total_registered + */ + public static final TotalRegistered TOTAL_REGISTERED = new TotalRegistered(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. + * ミ柘ミオミウミセ ムミセムムひセム肖 ミスミー ムτミオムひオ + */ + public final TableField TOTAL_REGISTERED_ = createField(DSL.name("total_registered"), SQLDataType.NUMERIC, this, "ミ柘ミオミウミセ ムミセムムひセム肖 ミスミー ムτミオムひオ"); + + /** + * The column + * main_dashboard.total_registered.total_registered_M. ミ柘ミオミウミセ ミスミー + * ムτミオムひオ ミシムσカムミクミス + */ + public final TableField TOTAL_REGISTERED_M = createField(DSL.name("total_registered_M"), SQLDataType.NUMERIC, this, "ミ柘ミオミウミセ ミスミー ムτミオムひオ ミシムσカムミクミス"); + + /** + * The column + * main_dashboard.total_registered.total_registered_W. ミ柘ミオミウミセ ミスミー + * ムτミオムひオ ミカミオミスム禍クミス + */ + public final TableField TOTAL_REGISTERED_W = createField(DSL.name("total_registered_W"), SQLDataType.NUMERIC, this, "ミ柘ミオミウミセ ミスミー ムτミオムひオ ミカミオミスム禍クミス"); + + /** + * The column + * main_dashboard.total_registered.mobilization_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public final TableField MOBILIZATION_CRITERION = createField(DSL.name("mobilization_criterion"), SQLDataType.NUMERIC, this, "ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク"); + + /** + * The column + * main_dashboard.total_registered.volunteer_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public final TableField VOLUNTEER_CRITERION = createField(DSL.name("volunteer_criterion"), SQLDataType.NUMERIC, this, "ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム"); + + /** + * The column + * main_dashboard.total_registered.contract_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public final TableField CONTRACT_CRITERION = createField(DSL.name("contract_criterion"), SQLDataType.NUMERIC, this, "ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム"); + + /** + * 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, "ミエミームひー ミキミーミソミクムミク"); + + /** + * The column + * main_dashboard.total_registered.mobilization_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public final TableField MOBILIZATION_CRITERION_PERCENT = createField(DSL.name("mobilization_criterion_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク"); + + /** + * The column + * main_dashboard.total_registered.volunteer_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public final TableField VOLUNTEER_CRITERION_PERCENT = createField(DSL.name("volunteer_criterion_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム"); + + /** + * The column + * main_dashboard.total_registered.contract_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムびミセミケ ムミサムσカミアム + */ + public final TableField CONTRACT_CRITERION_PERCENT = createField(DSL.name("contract_criterion_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムびミセミケ ムミサムσカミアム"); + + /** + * The column main_dashboard.total_registered.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column + * main_dashboard.total_registered.testrecruitment_id. + */ + public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + + private TotalRegistered(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private TotalRegistered(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ柘ミオミウミセ ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased main_dashboard.total_registered table + * reference + */ + public TotalRegistered(String alias) { + this(DSL.name(alias), TOTAL_REGISTERED); + } + + /** + * Create an aliased main_dashboard.total_registered table + * reference + */ + public TotalRegistered(Name alias) { + this(alias, TOTAL_REGISTERED); + } + + /** + * Create a main_dashboard.total_registered table reference + */ + public TotalRegistered() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public TotalRegistered as(String alias) { + return new TotalRegistered(DSL.name(alias), this); + } + + @Override + public TotalRegistered as(Name alias) { + return new TotalRegistered(alias, this); + } + + @Override + public TotalRegistered as(Table alias) { + return new TotalRegistered(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public TotalRegistered rename(String name) { + return new TotalRegistered(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public TotalRegistered rename(Name name) { + return new TotalRegistered(name, null); + } + + /** + * Rename this table + */ + @Override + public TotalRegistered rename(Table name) { + return new TotalRegistered(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TotalRegistered where(Condition condition) { + return new TotalRegistered(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TotalRegistered where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TotalRegistered where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TotalRegistered where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TotalRegistered where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TotalRegistered where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TotalRegistered where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public TotalRegistered where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TotalRegistered whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public TotalRegistered whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..a5a44e3 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/WaitingRegistration.java @@ -0,0 +1,376 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 WaitingRegistration extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * main_dashboard.waiting_registration + */ + public static final WaitingRegistration WAITING_REGISTRATION = new WaitingRegistration(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. + * ミ柘ミオミウミセ ミソミセミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミスミー ムτミオム + */ + public final TableField WAITING_REGISTRATION_ = createField(DSL.name("waiting_registration"), SQLDataType.NUMERIC, this, "ミ柘ミオミウミセ ミソミセミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミスミー ムτミオム"); + + /** + * The column + * main_dashboard.waiting_registration.waiting_registration_M. + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミシムσカムミクミスム + */ + public final TableField WAITING_REGISTRATION_M = createField(DSL.name("waiting_registration_M"), SQLDataType.NUMERIC, this, "ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミシムσカムミクミスム"); + + /** + * The column + * main_dashboard.waiting_registration.waiting_registration_W. + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミカミオミスム禍クミスム + */ + public final TableField WAITING_REGISTRATION_W = createField(DSL.name("waiting_registration_W"), SQLDataType.NUMERIC, this, "ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミカミオミスム禍クミスム"); + + /** + * The column + * main_dashboard.waiting_registration.mobilization_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public final TableField MOBILIZATION_CRITERION = createField(DSL.name("mobilization_criterion"), SQLDataType.NUMERIC, this, "ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク"); + + /** + * The column + * main_dashboard.waiting_registration.volunteer_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public final TableField VOLUNTEER_CRITERION = createField(DSL.name("volunteer_criterion"), SQLDataType.NUMERIC, this, "ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム"); + + /** + * The column + * main_dashboard.waiting_registration.contract_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public final TableField CONTRACT_CRITERION = createField(DSL.name("contract_criterion"), SQLDataType.NUMERIC, this, "ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム"); + + /** + * The column + * 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column + * main_dashboard.waiting_registration.waiting_registration_percent. + * ミ柘ミオミウミセ ミソミセミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミソムミセムミオミスム + */ + public final TableField WAITING_REGISTRATION_PERCENT = createField(DSL.name("waiting_registration_percent"), SQLDataType.NUMERIC, this, "ミ柘ミオミウミセ ミソミセミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミソムミセムミオミスム"); + + /** + * The column + * main_dashboard.waiting_registration.mobilization_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public final TableField MOBILIZATION_CRITERION_PERCENT = createField(DSL.name("mobilization_criterion_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク"); + + /** + * The column + * main_dashboard.waiting_registration.volunteer_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public final TableField VOLUNTEER_CRITERION_PERCENT = createField(DSL.name("volunteer_criterion_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム"); + + /** + * The column + * main_dashboard.waiting_registration.contract_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public final TableField CONTRACT_CRITERION_PERCENT = createField(DSL.name("contract_criterion_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム"); + + /** + * The column + * main_dashboard.waiting_registration.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column + * main_dashboard.waiting_registration.testrecruitment_id. + */ + public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + + private WaitingRegistration(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private WaitingRegistration(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミスミー ムτミオム ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased main_dashboard.waiting_registration table + * reference + */ + public WaitingRegistration(String alias) { + this(DSL.name(alias), WAITING_REGISTRATION); + } + + /** + * Create an aliased main_dashboard.waiting_registration table + * reference + */ + public WaitingRegistration(Name alias) { + this(alias, WAITING_REGISTRATION); + } + + /** + * Create a main_dashboard.waiting_registration table reference + */ + public WaitingRegistration() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public WaitingRegistration as(String alias) { + return new WaitingRegistration(DSL.name(alias), this); + } + + @Override + public WaitingRegistration as(Name alias) { + return new WaitingRegistration(alias, this); + } + + @Override + public WaitingRegistration as(Table alias) { + return new WaitingRegistration(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public WaitingRegistration rename(String name) { + return new WaitingRegistration(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public WaitingRegistration rename(Name name) { + return new WaitingRegistration(name, null); + } + + /** + * Rename this table + */ + @Override + public WaitingRegistration rename(Table name) { + return new WaitingRegistration(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public WaitingRegistration where(Condition condition) { + return new WaitingRegistration(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public WaitingRegistration where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public WaitingRegistration where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public WaitingRegistration where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public WaitingRegistration where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public WaitingRegistration where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public WaitingRegistration where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public WaitingRegistration where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public WaitingRegistration whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public WaitingRegistration whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..ec647b5 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/AppealsRecord.java @@ -0,0 +1,249 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records; + + +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.impl.UpdatableRecordImpl; + + +/** + * ミ榧アミカミーミサミセミイミーミスミクム ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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); + } + + /** + * Getter for main_dashboard.appeals.total_appeals. ミ柘ミオミウミセ ミカミーミサミセミア + */ + public BigDecimal getTotalAppeals() { + return (BigDecimal) get(1); + } + + /** + * Setter for main_dashboard.appeals.resolved. ミ墟セミサミクムミオムムひイミセ + * ムミオム威オミスミスム錦 + */ + public void setResolved(BigDecimal value) { + set(2, value); + } + + /** + * Getter for main_dashboard.appeals.resolved. ミ墟セミサミクムミオムムひイミセ + * ムミオム威オミスミスム錦 + */ + public BigDecimal getResolved() { + return (BigDecimal) get(2); + } + + /** + * Setter for main_dashboard.appeals.average_consideration. + * ミ。ムミオミエミスミクミケ ムムミセミコ ムミームムミシミセムびミオミスミクム + */ + public void setAverageConsideration(BigDecimal value) { + set(3, value); + } + + /** + * Getter for main_dashboard.appeals.average_consideration. + * ミ。ムミオミエミスミクミケ ムムミセミコ ムミームムミシミセムびミオミスミクム + */ + public BigDecimal getAverageConsideration() { + return (BigDecimal) get(3); + } + + /** + * Setter for main_dashboard.appeals.average_rating. ミ樮ミオミスミコミー + * ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public void setAverageRating(BigDecimal value) { + set(4, value); + } + + /** + * Getter for main_dashboard.appeals.average_rating. ミ樮ミオミスミコミー + * ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public BigDecimal getAverageRating() { + return (BigDecimal) get(4); + } + + /** + * Setter for main_dashboard.appeals.average_to_face. ミ。ミソミセムミセミア + * ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ + */ + public void setAverageToFace(BigDecimal value) { + set(5, value); + } + + /** + * Getter for main_dashboard.appeals.average_to_face. ミ。ミソミセムミセミア + * ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ + */ + public BigDecimal getAverageToFace() { + return (BigDecimal) get(5); + } + + /** + * Setter for main_dashboard.appeals.average_EPGU. ミ。ミソミセムミセミア + * ミソミセミエミームミク ミ片渙寅」 + */ + public void setAverageEpgu(BigDecimal value) { + set(6, value); + } + + /** + * Getter for main_dashboard.appeals.average_EPGU. ミ。ミソミセムミセミア + * ミソミセミエミームミク ミ片渙寅」 + */ + public BigDecimal getAverageEpgu() { + return (BigDecimal) get(6); + } + + /** + * Setter for main_dashboard.appeals.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(7, value); + } + + /** + * Getter for main_dashboard.appeals.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(7); + } + + /** + * Setter for main_dashboard.appeals.average_to_face_percent. + * ミ。ミソミセムミセミア ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ ミイ ミソムミセムミオミスムひーム + */ + public void setAverageToFacePercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for main_dashboard.appeals.average_to_face_percent. + * ミ。ミソミセムミセミア ミソミセミエミームミク ミカミーミサミセミア ミセムミスミセ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getAverageToFacePercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for main_dashboard.appeals.average_EPGU_percent. + * ミ。ミソミセムミセミア ミソミセミエミームミク ミ片渙寅」 ミイ ミソムミセムミオミスムひーム + */ + public void setAverageEpguPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for main_dashboard.appeals.average_EPGU_percent. + * ミ。ミソミセムミセミア ミソミセミエミームミク ミ片渙寅」 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getAverageEpguPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for main_dashboard.appeals.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(10, value); + } + + /** + * Getter for main_dashboard.appeals.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(10); + } + + /** + * Setter for main_dashboard.appeals.testrecruitment_id. + */ + public void setTestrecruitmentId(String value) { + set(11, value); + } + + /** + * Getter for main_dashboard.appeals.testrecruitment_id. + */ + public String getTestrecruitmentId() { + return (String) get(11); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached AppealsRecord + */ + public AppealsRecord() { + super(Appeals.APPEALS); + } + + /** + * 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) { + super(Appeals.APPEALS); + + setIdAppeal(idAppeal); + setTotalAppeals(totalAppeals); + setResolved(resolved); + setAverageConsideration(averageConsideration); + setAverageRating(averageRating); + setAverageToFace(averageToFace); + setAverageEpgu(averageEpgu); + setRecordingDate(recordingDate); + setAverageToFacePercent(averageToFacePercent); + setAverageEpguPercent(averageEpguPercent); + setRecruitmentId(recruitmentId); + setTestrecruitmentId(testrecruitmentId); + 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 new file mode 100644 index 0000000..0b650f0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/RecruitmentCampaignRecord.java @@ -0,0 +1,347 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.RecruitmentCampaign; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ湲ミクミキム巾イミスミーム ミコミーミシミソミーミスミクム ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class RecruitmentCampaignRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * main_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); + } + + /** + * Getter for main_dashboard.recruitment_campaign.new_recruits. + * ミ渙セミエミソミーミエミーム紗禍クミオ ミソミセミエ ミソムミクミキム巾イ + */ + public BigDecimal getNewRecruits() { + return (BigDecimal) get(1); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.subpoenas_sent. + * ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ + */ + public void setSubpoenasSent(BigDecimal value) { + set(2, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.subpoenas_sent. + * ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ + */ + public BigDecimal getSubpoenasSent() { + return (BigDecimal) get(2); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.appeared_on_subpoenas. + * ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ + */ + public void setAppearedOnSubpoenas(BigDecimal value) { + set(3, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.appeared_on_subpoenas. + * ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ + */ + public BigDecimal getAppearedOnSubpoenas() { + return (BigDecimal) get(3); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.not_appeared_on_subpoenas. + * ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ + */ + public void setNotAppearedOnSubpoenas(BigDecimal value) { + set(4, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.not_appeared_on_subpoenas. + * ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ + */ + public BigDecimal getNotAppearedOnSubpoenas() { + return (BigDecimal) get(4); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.postponement_have_right. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public void setPostponementHaveRight(BigDecimal value) { + set(5, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.postponement_have_right. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public BigDecimal getPostponementHaveRight() { + return (BigDecimal) get(5); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.postponement_granted. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー + */ + public void setPostponementGranted(BigDecimal value) { + set(6, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.postponement_granted. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー + */ + public BigDecimal getPostponementGranted() { + return (BigDecimal) get(6); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(7, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(7); + } + + /** + * Setter for + * main_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); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.appeared_on_subpoenas_percent. + * ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム + */ + public void setAppearedOnSubpoenasPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.appeared_on_subpoenas_percent. + * ミッミイミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム + */ + public BigDecimal getAppearedOnSubpoenasPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.not_appeared_on_subpoenas_percent. + * ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム + */ + public void setNotAppearedOnSubpoenasPercent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.not_appeared_on_subpoenas_percent. + * ミ斷オ ム紹イミクミサミクムム ミソミセ ミソミセミイミオムムひコミーミシ ミソムミセムミオミスム + */ + public BigDecimal getNotAppearedOnSubpoenasPercent() { + return (BigDecimal) get(10); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.postponement_have_right_percent. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム ミソムミセムミオミスム + */ + public void setPostponementHaveRightPercent(BigDecimal value) { + set(11, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.postponement_have_right_percent. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム ミソムミセムミオミスム + */ + public BigDecimal getPostponementHaveRightPercent() { + return (BigDecimal) get(11); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.postponement_granted_percent. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー ミソムミセムミオミスム + */ + public void setPostponementGrantedPercent(BigDecimal value) { + set(12, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.postponement_granted_percent. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー ミソムミセムミオミスム + */ + public BigDecimal getPostponementGrantedPercent() { + return (BigDecimal) get(12); + } + + /** + * Setter for + * main_dashboard.recruitment_campaign.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(13, value); + } + + /** + * Getter for + * main_dashboard.recruitment_campaign.recruitment_id. + */ + 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); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached RecruitmentCampaignRecord + */ + public RecruitmentCampaignRecord() { + super(RecruitmentCampaign.RECRUITMENT_CAMPAIGN); + } + + /** + * Create a detached, initialised RecruitmentCampaignRecord + */ + public RecruitmentCampaignRecord(Long idRecruitmentCampaign, BigDecimal newRecruits, BigDecimal subpoenasSent, BigDecimal appearedOnSubpoenas, BigDecimal notAppearedOnSubpoenas, BigDecimal postponementHaveRight, BigDecimal postponementGranted, Date recordingDate, String springAutumn, BigDecimal appearedOnSubpoenasPercent, BigDecimal notAppearedOnSubpoenasPercent, BigDecimal postponementHaveRightPercent, BigDecimal postponementGrantedPercent, UUID recruitmentId, String testrecruitmentId, String testspringAutumn) { + super(RecruitmentCampaign.RECRUITMENT_CAMPAIGN); + + setIdRecruitmentCampaign(idRecruitmentCampaign); + setNewRecruits(newRecruits); + setSubpoenasSent(subpoenasSent); + setAppearedOnSubpoenas(appearedOnSubpoenas); + setNotAppearedOnSubpoenas(notAppearedOnSubpoenas); + setPostponementHaveRight(postponementHaveRight); + setPostponementGranted(postponementGranted); + setRecordingDate(recordingDate); + setSpringAutumn(springAutumn); + setAppearedOnSubpoenasPercent(appearedOnSubpoenasPercent); + setNotAppearedOnSubpoenasPercent(notAppearedOnSubpoenasPercent); + setPostponementHaveRightPercent(postponementHaveRightPercent); + setPostponementGrantedPercent(postponementGrantedPercent); + setRecruitmentId(recruitmentId); + setTestrecruitmentId(testrecruitmentId); + setTestspringAutumn(testspringAutumn); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/TotalRegisteredRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/TotalRegisteredRecord.java new file mode 100644 index 0000000..bffdce2 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/TotalRegisteredRecord.java @@ -0,0 +1,288 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.TotalRegistered; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ柘ミオミウミセ ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class TotalRegisteredRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * main_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); + } + + /** + * Getter for main_dashboard.total_registered.total_registered. + * ミ柘ミオミウミセ ムミセムムひセム肖 ミスミー ムτミオムひオ + */ + public BigDecimal getTotalRegistered() { + return (BigDecimal) get(1); + } + + /** + * Setter for + * main_dashboard.total_registered.total_registered_M. ミ柘ミオミウミセ ミスミー + * ムτミオムひオ ミシムσカムミクミス + */ + public void setTotalRegisteredM(BigDecimal value) { + set(2, value); + } + + /** + * Getter for + * main_dashboard.total_registered.total_registered_M. ミ柘ミオミウミセ ミスミー + * ムτミオムひオ ミシムσカムミクミス + */ + public BigDecimal getTotalRegisteredM() { + return (BigDecimal) get(2); + } + + /** + * Setter for + * main_dashboard.total_registered.total_registered_W. ミ柘ミオミウミセ ミスミー + * ムτミオムひオ ミカミオミスム禍クミス + */ + public void setTotalRegisteredW(BigDecimal value) { + set(3, value); + } + + /** + * Getter for + * main_dashboard.total_registered.total_registered_W. ミ柘ミオミウミセ ミスミー + * ムτミオムひオ ミカミオミスム禍クミス + */ + public BigDecimal getTotalRegisteredW() { + return (BigDecimal) get(3); + } + + /** + * Setter for + * main_dashboard.total_registered.mobilization_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public void setMobilizationCriterion(BigDecimal value) { + set(4, value); + } + + /** + * Getter for + * main_dashboard.total_registered.mobilization_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public BigDecimal getMobilizationCriterion() { + return (BigDecimal) get(4); + } + + /** + * Setter for + * main_dashboard.total_registered.volunteer_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public void setVolunteerCriterion(BigDecimal value) { + set(5, value); + } + + /** + * Getter for + * main_dashboard.total_registered.volunteer_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public BigDecimal getVolunteerCriterion() { + return (BigDecimal) get(5); + } + + /** + * Setter for + * main_dashboard.total_registered.contract_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public void setContractCriterion(BigDecimal value) { + set(6, value); + } + + /** + * Getter for + * main_dashboard.total_registered.contract_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public BigDecimal getContractCriterion() { + return (BigDecimal) get(6); + } + + /** + * Setter for main_dashboard.total_registered.recording_date. + * ミエミームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(7, value); + } + + /** + * Getter for main_dashboard.total_registered.recording_date. + * ミエミームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(7); + } + + /** + * Setter for + * main_dashboard.total_registered.mobilization_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public void setMobilizationCriterionPercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for + * main_dashboard.total_registered.mobilization_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public BigDecimal getMobilizationCriterionPercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for + * main_dashboard.total_registered.volunteer_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public void setVolunteerCriterionPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for + * main_dashboard.total_registered.volunteer_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public BigDecimal getVolunteerCriterionPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for + * main_dashboard.total_registered.contract_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムびミセミケ ムミサムσカミアム + */ + public void setContractCriterionPercent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for + * main_dashboard.total_registered.contract_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエムミセミエム肖禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムびミセミケ ムミサムσカミアム + */ + public BigDecimal getContractCriterionPercent() { + return (BigDecimal) get(10); + } + + /** + * Setter for main_dashboard.total_registered.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(11, value); + } + + /** + * Getter for main_dashboard.total_registered.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(11); + } + + /** + * Setter for + * main_dashboard.total_registered.testrecruitment_id. + */ + public void setTestrecruitmentId(String value) { + set(12, value); + } + + /** + * Getter for + * main_dashboard.total_registered.testrecruitment_id. + */ + public String getTestrecruitmentId() { + return (String) get(12); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached TotalRegisteredRecord + */ + public TotalRegisteredRecord() { + super(TotalRegistered.TOTAL_REGISTERED); + } + + /** + * Create a detached, initialised TotalRegisteredRecord + */ + public TotalRegisteredRecord(Long idTotalRegistered, BigDecimal totalRegistered, BigDecimal totalRegisteredM, BigDecimal totalRegisteredW, BigDecimal mobilizationCriterion, BigDecimal volunteerCriterion, BigDecimal contractCriterion, Date recordingDate, BigDecimal mobilizationCriterionPercent, BigDecimal volunteerCriterionPercent, BigDecimal contractCriterionPercent, UUID recruitmentId, String testrecruitmentId) { + super(TotalRegistered.TOTAL_REGISTERED); + + setIdTotalRegistered(idTotalRegistered); + setTotalRegistered(totalRegistered); + setTotalRegisteredM(totalRegisteredM); + setTotalRegisteredW(totalRegisteredW); + setMobilizationCriterion(mobilizationCriterion); + setVolunteerCriterion(volunteerCriterion); + setContractCriterion(contractCriterion); + setRecordingDate(recordingDate); + setMobilizationCriterionPercent(mobilizationCriterionPercent); + setVolunteerCriterionPercent(volunteerCriterionPercent); + setContractCriterionPercent(contractCriterionPercent); + setRecruitmentId(recruitmentId); + setTestrecruitmentId(testrecruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/WaitingRegistrationRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/WaitingRegistrationRecord.java new file mode 100644 index 0000000..e15e9b6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/main_dashboard/tables/records/WaitingRegistrationRecord.java @@ -0,0 +1,313 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.main_dashboard.tables.WaitingRegistration; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミスミー ムτミオム ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class WaitingRegistrationRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * main_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); + } + + /** + * Getter for + * main_dashboard.waiting_registration.waiting_registration. + * ミ柘ミオミウミセ ミソミセミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミスミー ムτミオム + */ + public BigDecimal getWaitingRegistration() { + return (BigDecimal) get(1); + } + + /** + * Setter for + * main_dashboard.waiting_registration.waiting_registration_M. + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミシムσカムミクミスム + */ + public void setWaitingRegistrationM(BigDecimal value) { + set(2, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.waiting_registration_M. + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミシムσカムミクミスム + */ + public BigDecimal getWaitingRegistrationM() { + return (BigDecimal) get(2); + } + + /** + * Setter for + * main_dashboard.waiting_registration.waiting_registration_W. + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミカミオミスム禍クミスム + */ + public void setWaitingRegistrationW(BigDecimal value) { + set(3, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.waiting_registration_W. + * ミ渙セミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミカミオミスム禍クミスム + */ + public BigDecimal getWaitingRegistrationW() { + return (BigDecimal) get(3); + } + + /** + * Setter for + * main_dashboard.waiting_registration.mobilization_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public void setMobilizationCriterion(BigDecimal value) { + set(4, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.mobilization_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public BigDecimal getMobilizationCriterion() { + return (BigDecimal) get(4); + } + + /** + * Setter for + * main_dashboard.waiting_registration.volunteer_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public void setVolunteerCriterion(BigDecimal value) { + set(5, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.volunteer_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public BigDecimal getVolunteerCriterion() { + return (BigDecimal) get(5); + } + + /** + * Setter for + * main_dashboard.waiting_registration.contract_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public void setContractCriterion(BigDecimal value) { + set(6, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.contract_criterion. + * ミ墟セミサミクムミオムムひイミセ ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public BigDecimal getContractCriterion() { + return (BigDecimal) get(6); + } + + /** + * Setter for + * main_dashboard.waiting_registration.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(7, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(7); + } + + /** + * Setter for + * main_dashboard.waiting_registration.waiting_registration_percent. + * ミ柘ミオミウミセ ミソミセミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミソムミセムミオミスム + */ + public void setWaitingRegistrationPercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.waiting_registration_percent. + * ミ柘ミオミウミセ ミソミセミエミサミオミカミーム ミソミセムムひーミスミセミイミコミオ ミソムミセムミオミスム + */ + public BigDecimal getWaitingRegistrationPercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for + * main_dashboard.waiting_registration.mobilization_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public void setMobilizationCriterionPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.mobilization_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミシミセミアミクミサミクミキミームミクミク + */ + public BigDecimal getMobilizationCriterionPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for + * main_dashboard.waiting_registration.volunteer_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public void setVolunteerCriterionPercent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.volunteer_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミエミセミアムミセミイミセミサム糊スミセミケ ムミサムσカミアム + */ + public BigDecimal getVolunteerCriterionPercent() { + return (BigDecimal) get(10); + } + + /** + * Setter for + * main_dashboard.waiting_registration.contract_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public void setContractCriterionPercent(BigDecimal value) { + set(11, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.contract_criterion_percent. + * ミ湲ミセムミオミスム ミソミセミエミサミオミカミーム禍クム ミソミセミエ ミコムミクムひオムミクミク ミコミセミスムびミーミコムひスミセミケ ムミサムσカミアム + */ + public BigDecimal getContractCriterionPercent() { + return (BigDecimal) get(11); + } + + /** + * Setter for + * main_dashboard.waiting_registration.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(12, value); + } + + /** + * Getter for + * main_dashboard.waiting_registration.recruitment_id. + */ + 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); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached WaitingRegistrationRecord + */ + public WaitingRegistrationRecord() { + super(WaitingRegistration.WAITING_REGISTRATION); + } + + /** + * Create a detached, initialised WaitingRegistrationRecord + */ + public WaitingRegistrationRecord(Long idWaitingRegistration, BigDecimal waitingRegistration, BigDecimal waitingRegistrationM, BigDecimal waitingRegistrationW, BigDecimal mobilizationCriterion, BigDecimal volunteerCriterion, BigDecimal contractCriterion, Date recordingDate, BigDecimal waitingRegistrationPercent, BigDecimal mobilizationCriterionPercent, BigDecimal volunteerCriterionPercent, BigDecimal contractCriterionPercent, UUID recruitmentId, String testrecruitmentId) { + super(WaitingRegistration.WAITING_REGISTRATION); + + setIdWaitingRegistration(idWaitingRegistration); + setWaitingRegistration(waitingRegistration); + setWaitingRegistrationM(waitingRegistrationM); + setWaitingRegistrationW(waitingRegistrationW); + setMobilizationCriterion(mobilizationCriterion); + setVolunteerCriterion(volunteerCriterion); + setContractCriterion(contractCriterion); + setRecordingDate(recordingDate); + setWaitingRegistrationPercent(waitingRegistrationPercent); + setMobilizationCriterionPercent(mobilizationCriterionPercent); + setVolunteerCriterionPercent(volunteerCriterionPercent); + setContractCriterionPercent(contractCriterionPercent); + setRecruitmentId(recruitmentId); + setTestrecruitmentId(testrecruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Keys.java new file mode 100644 index 0000000..f32c952 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Keys.java @@ -0,0 +1,63 @@ +/* + * This file is generated by jOOQ. + */ +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.records.CitizenRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.EducationRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.EmploymentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.GenderRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.MaritalStatusRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.PubRecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.ReasonRegistrationRecord; +import ervu_dashboard.ervu_dashboard.db_beans.public_.tables.records.SubpoenaRecord; + +import org.jooq.ForeignKey; +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 + * public. + */ +@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.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); +} 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 new file mode 100644 index 0000000..44f0f90 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Public.java @@ -0,0 +1,104 @@ +/* + * This file is generated by jOOQ. + */ +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 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 Public extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public + */ + public static final Public PUBLIC = new Public(); + + /** + * The table public.citizen. + */ + public final Citizen CITIZEN = Citizen.CITIZEN; + + /** + * The table public.education. + */ + public final Education EDUCATION = Education.EDUCATION; + + /** + * The table public.employment. + */ + public final Employment EMPLOYMENT = Employment.EMPLOYMENT; + + /** + * The table public.gender. + */ + public final Gender GENDER = Gender.GENDER; + + /** + * The table public.marital_status. + */ + 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; + + /** + * No further instances allowed + */ + private Public() { + super("public", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @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 + ); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Routines.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Routines.java new file mode 100644 index 0000000..d2482fa --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Routines.java @@ -0,0 +1,41 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.routines.UuidGenerateV4; + +import java.util.UUID; + +import org.jooq.Configuration; +import org.jooq.Field; + + +/** + * Convenience access to all stored procedures and functions in public. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Routines { + + /** + * Call public.uuid_generate_v4 + */ + public static UUID uuidGenerateV4( + Configuration configuration + ) { + UuidGenerateV4 f = new UuidGenerateV4(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_generate_v4 as a field. + */ + public static Field uuidGenerateV4() { + UuidGenerateV4 f = new UuidGenerateV4(); + + return f.asField(); + } +} 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 new file mode 100644 index 0000000..35a2377 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/Tables.java @@ -0,0 +1,62 @@ +/* + * This file is generated by jOOQ. + */ +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; + + +/** + * Convenience access to all tables in public. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * The table public.citizen. + */ + public static final Citizen CITIZEN = Citizen.CITIZEN; + + /** + * The table public.education. + */ + public static final Education EDUCATION = Education.EDUCATION; + + /** + * The table public.employment. + */ + public static final Employment EMPLOYMENT = Employment.EMPLOYMENT; + + /** + * The table public.gender. + */ + public static final Gender GENDER = Gender.GENDER; + + /** + * The table public.marital_status. + */ + 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; +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/routines/UuidGenerateV4.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/routines/UuidGenerateV4.java new file mode 100644 index 0000000..a57b094 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/routines/UuidGenerateV4.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.public_.routines; + + +import ervu_dashboard.ervu_dashboard.db_beans.public_.Public; + +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 public.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", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} 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 new file mode 100644 index 0000000..5d92ace --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Citizen.java @@ -0,0 +1,438 @@ +/* + * 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/Education.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Education.java new file mode 100644 index 0000000..701fdb7 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Education.java @@ -0,0 +1,283 @@ +/* + * 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 new file mode 100644 index 0000000..a1d829e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Employment.java @@ -0,0 +1,283 @@ +/* + * 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 new file mode 100644 index 0000000..f354fcc --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Gender.java @@ -0,0 +1,297 @@ +/* + * 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/MaritalStatus.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/MaritalStatus.java new file mode 100644 index 0000000..eff6941 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/MaritalStatus.java @@ -0,0 +1,308 @@ +/* + * 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 new file mode 100644 index 0000000..3eb09a9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/PubRecruitment.java @@ -0,0 +1,726 @@ +/* + * 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 new file mode 100644 index 0000000..208dac7 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/ReasonRegistration.java @@ -0,0 +1,284 @@ +/* + * 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/Subpoena.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Subpoena.java new file mode 100644 index 0000000..099e305 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/Subpoena.java @@ -0,0 +1,281 @@ +/* + * 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.SubpoenaRecord; + +import java.sql.Timestamp; +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 Subpoena extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.subpoena + */ + public static final Subpoena SUBPOENA = new Subpoena(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return SubpoenaRecord.class; + } + + /** + * The column public.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. + */ + public final TableField SERIES = createField(DSL.name("series"), SQLDataType.VARCHAR(16), this, ""); + + /** + * The column public.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. + */ + 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. + */ + public final TableField VISIT_DATE = createField(DSL.name("visit_date"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.subpoena.send_date. + */ + public final TableField SEND_DATE = createField(DSL.name("send_date"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.subpoena.reason_cancelled. + */ + public final TableField REASON_CANCELLED = createField(DSL.name("reason_cancelled"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column public.subpoena.recruit_id. + */ + public final TableField RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID, this, ""); + + /** + * The column public.subpoena.department_id. + */ + public final TableField DEPARTMENT_ID = createField(DSL.name("department_id"), SQLDataType.UUID, this, ""); + + /** + * The column public.subpoena.subpoena_status. + */ + public final TableField SUBPOENA_STATUS = createField(DSL.name("subpoena_status"), SQLDataType.CLOB, this, ""); + + /** + * The column public.subpoena.subpoena_reason. + */ + public final TableField SUBPOENA_REASON = createField(DSL.name("subpoena_reason"), SQLDataType.CLOB, this, ""); + + private Subpoena(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Subpoena(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.subpoena table reference + */ + public Subpoena(String alias) { + this(DSL.name(alias), SUBPOENA); + } + + /** + * Create an aliased public.subpoena table reference + */ + public Subpoena(Name alias) { + this(alias, SUBPOENA); + } + + /** + * Create a public.subpoena table reference + */ + public Subpoena() { + this(DSL.name("subpoena"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.SUBPOENA_PKEY; + } + + @Override + public Subpoena as(String alias) { + return new Subpoena(DSL.name(alias), this); + } + + @Override + public Subpoena as(Name alias) { + return new Subpoena(alias, this); + } + + @Override + public Subpoena as(Table alias) { + return new Subpoena(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Subpoena rename(String name) { + return new Subpoena(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Subpoena rename(Name name) { + return new Subpoena(name, null); + } + + /** + * Rename this table + */ + @Override + public Subpoena rename(Table name) { + return new Subpoena(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoena where(Condition condition) { + return new Subpoena(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoena where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoena where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoena where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoena where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoena where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoena where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoena where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoena whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoena whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..10fb95f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/CitizenRecord.java @@ -0,0 +1,352 @@ +/* + * 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/EducationRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EducationRecord.java new file mode 100644 index 0000000..1883e0c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EducationRecord.java @@ -0,0 +1,94 @@ +/* + * 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 new file mode 100644 index 0000000..db494a6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/EmploymentRecord.java @@ -0,0 +1,94 @@ +/* + * 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 new file mode 100644 index 0000000..e3dd965 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/GenderRecord.java @@ -0,0 +1,94 @@ +/* + * 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/MaritalStatusRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/MaritalStatusRecord.java new file mode 100644 index 0000000..c26baaf --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/MaritalStatusRecord.java @@ -0,0 +1,109 @@ +/* + * 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 new file mode 100644 index 0000000..e40e328 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/PubRecruitmentRecord.java @@ -0,0 +1,577 @@ +/* + * 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 new file mode 100644 index 0000000..383a9ef --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/ReasonRegistrationRecord.java @@ -0,0 +1,96 @@ +/* + * 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/public_/tables/records/SubpoenaRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/SubpoenaRecord.java new file mode 100644 index 0000000..77adddd --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/public_/tables/records/SubpoenaRecord.java @@ -0,0 +1,232 @@ +/* + * 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.Subpoena; + +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 SubpoenaRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for public.subpoena.subpoena_id. + */ + public void setSubpoenaId(Long value) { + set(0, value); + } + + /** + * Getter for public.subpoena.subpoena_id. + */ + public Long getSubpoenaId() { + return (Long) get(0); + } + + /** + * Setter for public.subpoena.series. + */ + public void setSeries(String value) { + set(1, value); + } + + /** + * Getter for public.subpoena.series. + */ + public String getSeries() { + return (String) get(1); + } + + /** + * Setter for public.subpoena.number. + */ + public void setNumber(String value) { + set(2, value); + } + + /** + * Getter for public.subpoena.number. + */ + public String getNumber() { + return (String) get(2); + } + + /** + * Setter for public.subpoena.id_ern. + */ + public void setIdErn(String value) { + set(3, value); + } + + /** + * Getter for public.subpoena.id_ern. + */ + public String getIdErn() { + return (String) get(3); + } + + /** + * Setter for public.subpoena.create_date. + */ + public void setCreateDate(Timestamp value) { + set(4, value); + } + + /** + * Getter for public.subpoena.create_date. + */ + public Timestamp getCreateDate() { + return (Timestamp) get(4); + } + + /** + * Setter for public.subpoena.visit_date. + */ + public void setVisitDate(Timestamp value) { + set(5, value); + } + + /** + * Getter for public.subpoena.visit_date. + */ + public Timestamp getVisitDate() { + return (Timestamp) get(5); + } + + /** + * Setter for public.subpoena.send_date. + */ + public void setSendDate(Timestamp value) { + set(6, value); + } + + /** + * Getter for public.subpoena.send_date. + */ + public Timestamp getSendDate() { + return (Timestamp) get(6); + } + + /** + * Setter for public.subpoena.reason_cancelled. + */ + public void setReasonCancelled(String value) { + set(7, value); + } + + /** + * Getter for public.subpoena.reason_cancelled. + */ + public String getReasonCancelled() { + return (String) get(7); + } + + /** + * Setter for public.subpoena.recruit_id. + */ + public void setRecruitId(UUID value) { + set(8, value); + } + + /** + * Getter for public.subpoena.recruit_id. + */ + public UUID getRecruitId() { + return (UUID) get(8); + } + + /** + * Setter for public.subpoena.department_id. + */ + public void setDepartmentId(UUID value) { + set(9, value); + } + + /** + * Getter for public.subpoena.department_id. + */ + public UUID getDepartmentId() { + return (UUID) get(9); + } + + /** + * Setter for public.subpoena.subpoena_status. + */ + public void setSubpoenaStatus(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. + */ + public String getSubpoenaReason() { + return (String) get(11); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached SubpoenaRecord + */ + public SubpoenaRecord() { + super(Subpoena.SUBPOENA); + } + + /** + * 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) { + super(Subpoena.SUBPOENA); + + setSubpoenaId(subpoenaId); + setSeries(series); + setNumber(number); + setIdErn(idErn); + setCreateDate(createDate); + setVisitDate(visitDate); + setSendDate(sendDate); + setReasonCancelled(reasonCancelled); + setRecruitId(recruitId); + setDepartmentId(departmentId); + setSubpoenaStatus(subpoenaStatus); + setSubpoenaReason(subpoenaReason); + 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 new file mode 100644 index 0000000..394b75d --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Keys.java @@ -0,0 +1,50 @@ +/* + * This file is generated by jOOQ. + */ +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.ratings.tables.AppearSubppoena; +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.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; + +import org.jooq.ForeignKey; +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 + * ratings. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Keys { + + // ------------------------------------------------------------------------- + // UNIQUE and PRIMARY KEY definitions + // ------------------------------------------------------------------------- + + 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_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__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 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 new file mode 100644 index 0000000..54ab840 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Ratings.java @@ -0,0 +1,69 @@ +/* + * This file is generated by jOOQ. + */ +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.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.Table; +import org.jooq.impl.SchemaImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Ratings extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ratings + */ + public static final Ratings RATINGS = new Ratings(); + + /** + * ミッミイミコミー ミソミセ ミソミセミイミオムムひコミオ ムτミセミイミオミスム ミミ、 + */ + public final AppearSubppoena APPEAR_SUBPPOENA = AppearSubppoena.APPEAR_SUBPPOENA; + + /** + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ムτミセミイミオミスム ミミ、 + */ + public final ConsiderationComplaint CONSIDERATION_COMPLAINT = ConsiderationComplaint.CONSIDERATION_COMPLAINT; + + /** + * ミ湲ミクミキム巾イ ムτミセミイミオミスム ミミ、 + */ + public final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + + /** + * No further instances allowed + */ + private Ratings() { + super("ratings", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + AppearSubppoena.APPEAR_SUBPPOENA, + ConsiderationComplaint.CONSIDERATION_COMPLAINT, + Recruitment.RECRUITMENT + ); + } +} 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 new file mode 100644 index 0000000..c6fd6df --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/Tables.java @@ -0,0 +1,32 @@ +/* + * This file is generated by jOOQ. + */ +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.ConsiderationComplaint; +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.Recruitment; + + +/** + * Convenience access to all tables in ratings. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * ミッミイミコミー ミソミセ ミソミセミイミオムムひコミオ ムτミセミイミオミスム ミミ、 + */ + public static final AppearSubppoena APPEAR_SUBPPOENA = AppearSubppoena.APPEAR_SUBPPOENA; + + /** + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ムτミセミイミオミスム ミミ、 + */ + 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 new file mode 100644 index 0000000..66f455f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/AppearSubppoena.java @@ -0,0 +1,324 @@ +/* + * 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.AppearSubppoenaRecord; +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 AppearSubppoena extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ratings.appear_subppoena + */ + public static final AppearSubppoena APPEAR_SUBPPOENA = new AppearSubppoena(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return AppearSubppoenaRecord.class; + } + + /** + * The column ratings.appear_subppoena.id_appear_subppoena. + */ + public final TableField ID_APPEAR_SUBPPOENA = createField(DSL.name("id_appear_subppoena"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ratings.appear_subppoena.id_region. + */ + public final TableField ID_REGION = createField(DSL.name("id_region"), SQLDataType.INTEGER, this, ""); + + /** + * The column ratings.appear_subppoena.appear_mil_com. ミッミイミコミー ミイ + * ミイミセミオミスミコミセミシミーム + */ + public final TableField APPEAR_MIL_COM = createField(DSL.name("appear_mil_com"), SQLDataType.NUMERIC, this, "ミッミイミコミー ミイ ミイミセミオミスミコミセミシミーム"); + + /** + * The column ratings.appear_subppoena.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column ratings.appear_subppoena.appear_mil_com_percent. + * ミッミイミコミー ミイ ミイミセミオミスミコミセミシミーム ミイ ミソムミセムミオミスムひーム + */ + public final TableField APPEAR_MIL_COM_PERCENT = createField(DSL.name("appear_mil_com_percent"), SQLDataType.NUMERIC, this, "ミッミイミコミー ミイ ミイミセミオミスミコミセミシミーム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column ratings.appear_subppoena.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private AppearSubppoena(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private AppearSubppoena(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミッミイミコミー ミソミセ ミソミセミイミオムムひコミオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased ratings.appear_subppoena table reference + */ + public AppearSubppoena(String alias) { + this(DSL.name(alias), APPEAR_SUBPPOENA); + } + + /** + * Create an aliased ratings.appear_subppoena table reference + */ + public AppearSubppoena(Name alias) { + this(alias, APPEAR_SUBPPOENA); + } + + /** + * Create a ratings.appear_subppoena table reference + */ + public AppearSubppoena() { + this(DSL.name("appear_subppoena"), null); + } + + public AppearSubppoena(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, APPEAR_SUBPPOENA); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class AppearSubppoenaPath extends AppearSubppoena implements Path { + public AppearSubppoenaPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private AppearSubppoenaPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public AppearSubppoenaPath as(String alias) { + return new AppearSubppoenaPath(DSL.name(alias), this); + } + + @Override + public AppearSubppoenaPath as(Name alias) { + return new AppearSubppoenaPath(alias, this); + } + + @Override + public AppearSubppoenaPath as(Table alias) { + return new AppearSubppoenaPath(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_APPEAR_SUBPPOENA; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.APPEAR_SUBPPOENA__FK_REGION, Keys.APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_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.APPEAR_SUBPPOENA__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.APPEAR_SUBPPOENA__APPEAR_SUBPPOENA_FK1, null); + + return _pubRecruitment; + } + + @Override + public AppearSubppoena as(String alias) { + return new AppearSubppoena(DSL.name(alias), this); + } + + @Override + public AppearSubppoena as(Name alias) { + return new AppearSubppoena(alias, this); + } + + @Override + public AppearSubppoena as(Table alias) { + return new AppearSubppoena(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public AppearSubppoena rename(String name) { + return new AppearSubppoena(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public AppearSubppoena rename(Name name) { + return new AppearSubppoena(name, null); + } + + /** + * Rename this table + */ + @Override + public AppearSubppoena rename(Table name) { + return new AppearSubppoena(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AppearSubppoena where(Condition condition) { + return new AppearSubppoena(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AppearSubppoena where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AppearSubppoena where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AppearSubppoena where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AppearSubppoena where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AppearSubppoena where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AppearSubppoena where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AppearSubppoena where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AppearSubppoena whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AppearSubppoena 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 new file mode 100644 index 0000000..bd62383 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/ConsiderationComplaint.java @@ -0,0 +1,329 @@ +/* + * 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.ConsiderationComplaintRecord; +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 ConsiderationComplaint extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ratings.consideration_complaint + */ + public static final ConsiderationComplaint CONSIDERATION_COMPLAINT = new ConsiderationComplaint(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ConsiderationComplaintRecord.class; + } + + /** + * The column + * ratings.consideration_complaint.id_consideration_complaint. + */ + public final TableField ID_CONSIDERATION_COMPLAINT = createField(DSL.name("id_consideration_complaint"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column ratings.consideration_complaint.id_region. + */ + public final TableField ID_REGION = createField(DSL.name("id_region"), SQLDataType.INTEGER, this, ""); + + /** + * The column + * ratings.consideration_complaint.consideration_complaint. + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア + */ + public final TableField CONSIDERATION_COMPLAINT_ = createField(DSL.name("consideration_complaint"), SQLDataType.NUMERIC, this, "ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア"); + + /** + * The column ratings.consideration_complaint.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column + * ratings.consideration_complaint.consideration_complaint_percent. + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ミイ ミソムミセムミオミスムひーム + */ + public final TableField CONSIDERATION_COMPLAINT_PERCENT = createField(DSL.name("consideration_complaint_percent"), SQLDataType.NUMERIC, this, "ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ミイ ミソムミセムミオミスムひーム"); + + /** + * The column ratings.consideration_complaint.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private ConsiderationComplaint(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private ConsiderationComplaint(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased ratings.consideration_complaint table + * reference + */ + public ConsiderationComplaint(String alias) { + this(DSL.name(alias), CONSIDERATION_COMPLAINT); + } + + /** + * Create an aliased ratings.consideration_complaint table + * reference + */ + public ConsiderationComplaint(Name alias) { + this(alias, CONSIDERATION_COMPLAINT); + } + + /** + * Create a ratings.consideration_complaint table reference + */ + public ConsiderationComplaint() { + this(DSL.name("consideration_complaint"), null); + } + + public ConsiderationComplaint(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, CONSIDERATION_COMPLAINT); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class ConsiderationComplaintPath extends ConsiderationComplaint implements Path { + public ConsiderationComplaintPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private ConsiderationComplaintPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public ConsiderationComplaintPath as(String alias) { + return new ConsiderationComplaintPath(DSL.name(alias), this); + } + + @Override + public ConsiderationComplaintPath as(Name alias) { + return new ConsiderationComplaintPath(alias, this); + } + + @Override + public ConsiderationComplaintPath as(Table alias) { + return new ConsiderationComplaintPath(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_CONSIDERATION_COMPLAINT; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.CONSIDERATION_COMPLAINT__FK_REGION, Keys.CONSIDERATION_COMPLAINT__CONSIDERATION_COMPLAINT_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.CONSIDERATION_COMPLAINT__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.CONSIDERATION_COMPLAINT__CONSIDERATION_COMPLAINT_FK1, null); + + return _pubRecruitment; + } + + @Override + public ConsiderationComplaint as(String alias) { + return new ConsiderationComplaint(DSL.name(alias), this); + } + + @Override + public ConsiderationComplaint as(Name alias) { + return new ConsiderationComplaint(alias, this); + } + + @Override + public ConsiderationComplaint as(Table alias) { + return new ConsiderationComplaint(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public ConsiderationComplaint rename(String name) { + return new ConsiderationComplaint(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public ConsiderationComplaint rename(Name name) { + return new ConsiderationComplaint(name, null); + } + + /** + * Rename this table + */ + @Override + public ConsiderationComplaint rename(Table name) { + return new ConsiderationComplaint(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConsiderationComplaint where(Condition condition) { + return new ConsiderationComplaint(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConsiderationComplaint where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConsiderationComplaint where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConsiderationComplaint where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConsiderationComplaint where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConsiderationComplaint where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConsiderationComplaint where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ConsiderationComplaint where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConsiderationComplaint whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ConsiderationComplaint whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..59e9bf2 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/Recruitment.java @@ -0,0 +1,328 @@ +/* + * 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 new file mode 100644 index 0000000..006e46a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/AppearSubppoenaRecord.java @@ -0,0 +1,149 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records; + + +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; + + +/** + * ミッミイミコミー ミソミセ ミソミセミイミオムムひコミオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class AppearSubppoenaRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ratings.appear_subppoena.id_appear_subppoena. + */ + public void setIdAppearSubppoena(Long value) { + set(0, value); + } + + /** + * Getter for ratings.appear_subppoena.id_appear_subppoena. + */ + public Long getIdAppearSubppoena() { + return (Long) get(0); + } + + /** + * Setter for ratings.appear_subppoena.id_region. + */ + public void setIdRegion(Integer value) { + set(1, value); + } + + /** + * Getter for ratings.appear_subppoena.id_region. + */ + public Integer getIdRegion() { + return (Integer) get(1); + } + + /** + * Setter for ratings.appear_subppoena.appear_mil_com. ミッミイミコミー ミイ + * ミイミセミオミスミコミセミシミーム + */ + public void setAppearMilCom(BigDecimal value) { + set(2, value); + } + + /** + * Getter for ratings.appear_subppoena.appear_mil_com. ミッミイミコミー ミイ + * ミイミセミオミスミコミセミシミーム + */ + public BigDecimal getAppearMilCom() { + return (BigDecimal) get(2); + } + + /** + * Setter for ratings.appear_subppoena.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(3, value); + } + + /** + * Getter for ratings.appear_subppoena.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(3); + } + + /** + * Setter for ratings.appear_subppoena.appear_mil_com_percent. + * ミッミイミコミー ミイ ミイミセミオミスミコミセミシミーム ミイ ミソムミセムミオミスムひーム + */ + public void setAppearMilComPercent(BigDecimal value) { + set(4, value); + } + + /** + * Getter for ratings.appear_subppoena.appear_mil_com_percent. + * ミッミイミコミー ミイ ミイミセミオミスミコミセミシミーム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getAppearMilComPercent() { + return (BigDecimal) get(4); + } + + /** + * Setter for ratings.appear_subppoena.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(5, value); + } + + /** + * Getter for ratings.appear_subppoena.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(5); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached AppearSubppoenaRecord + */ + public AppearSubppoenaRecord() { + super(AppearSubppoena.APPEAR_SUBPPOENA); + } + + /** + * Create a detached, initialised AppearSubppoenaRecord + */ + public AppearSubppoenaRecord(Long idAppearSubppoena, Integer idRegion, BigDecimal appearMilCom, Date recordingDate, BigDecimal appearMilComPercent, UUID recruitmentId) { + super(AppearSubppoena.APPEAR_SUBPPOENA); + + setIdAppearSubppoena(idAppearSubppoena); + setIdRegion(idRegion); + setAppearMilCom(appearMilCom); + setRecordingDate(recordingDate); + setAppearMilComPercent(appearMilComPercent); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} 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 new file mode 100644 index 0000000..39afb84 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/ConsiderationComplaintRecord.java @@ -0,0 +1,155 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.ConsiderationComplaint; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ConsiderationComplaintRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * ratings.consideration_complaint.id_consideration_complaint. + */ + public void setIdConsiderationComplaint(Long value) { + set(0, value); + } + + /** + * Getter for + * ratings.consideration_complaint.id_consideration_complaint. + */ + public Long getIdConsiderationComplaint() { + return (Long) get(0); + } + + /** + * Setter for ratings.consideration_complaint.id_region. + */ + public void setIdRegion(Integer value) { + set(1, value); + } + + /** + * Getter for ratings.consideration_complaint.id_region. + */ + public Integer getIdRegion() { + return (Integer) get(1); + } + + /** + * Setter for + * ratings.consideration_complaint.consideration_complaint. + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア + */ + public void setConsiderationComplaint(BigDecimal value) { + set(2, value); + } + + /** + * Getter for + * ratings.consideration_complaint.consideration_complaint. + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア + */ + public BigDecimal getConsiderationComplaint() { + return (BigDecimal) get(2); + } + + /** + * Setter for ratings.consideration_complaint.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(3, value); + } + + /** + * Getter for ratings.consideration_complaint.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(3); + } + + /** + * Setter for + * ratings.consideration_complaint.consideration_complaint_percent. + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ミイ ミソムミセムミオミスムひーム + */ + public void setConsiderationComplaintPercent(BigDecimal value) { + set(4, value); + } + + /** + * Getter for + * ratings.consideration_complaint.consideration_complaint_percent. + * ミミームムミシミセムびミオミスミクミオ ミカミーミサミセミア ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getConsiderationComplaintPercent() { + return (BigDecimal) get(4); + } + + /** + * Setter for ratings.consideration_complaint.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(5, value); + } + + /** + * Getter for ratings.consideration_complaint.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(5); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ConsiderationComplaintRecord + */ + public ConsiderationComplaintRecord() { + super(ConsiderationComplaint.CONSIDERATION_COMPLAINT); + } + + /** + * Create a detached, initialised ConsiderationComplaintRecord + */ + public ConsiderationComplaintRecord(Long idConsiderationComplaint, Integer idRegion, BigDecimal considerationComplaint, Date recordingDate, BigDecimal considerationComplaintPercent, UUID recruitmentId) { + super(ConsiderationComplaint.CONSIDERATION_COMPLAINT); + + setIdConsiderationComplaint(idConsiderationComplaint); + setIdRegion(idRegion); + setConsiderationComplaint(considerationComplaint); + setRecordingDate(recordingDate); + setConsiderationComplaintPercent(considerationComplaintPercent); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/RecruitmentRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/RecruitmentRecord.java new file mode 100644 index 0000000..a7e01a9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/ratings/tables/records/RecruitmentRecord.java @@ -0,0 +1,162 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.ratings.tables.Recruitment; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ湲ミクミキム巾イ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class RecruitmentRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ratings.recruitment.id_recruitment. + */ + public void setIdRecruitment(Long value) { + set(0, value); + } + + /** + * Getter for ratings.recruitment.id_recruitment. + */ + public Long getIdRecruitment() { + return (Long) get(0); + } + + /** + * Setter for ratings.recruitment.id_region. + */ + public void setIdRegion(Integer value) { + set(1, value); + } + + /** + * Getter for ratings.recruitment.id_region. + */ + public Integer getIdRegion() { + return (Integer) get(1); + } + + /** + * Setter for ratings.recruitment.execution. ミ佯ミソミセミサミスミオミスミクミオ ミソミサミーミスミー + * ミソムミクミキム巾イミー + */ + public void setExecution(BigDecimal value) { + set(2, value); + } + + /** + * Getter for ratings.recruitment.execution. ミ佯ミソミセミサミスミオミスミクミオ ミソミサミーミスミー + * ミソムミクミキム巾イミー + */ + public BigDecimal getExecution() { + return (BigDecimal) get(2); + } + + /** + * Setter for ratings.recruitment.spring_autumn. ミ樮ミオミスム/ミイミオムミスミー + */ + public void setSpringAutumn(String value) { + set(3, value); + } + + /** + * Getter for ratings.recruitment.spring_autumn. ミ樮ミオミスム/ミイミオムミスミー + */ + public String getSpringAutumn() { + return (String) get(3); + } + + /** + * Setter for ratings.recruitment.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(4, value); + } + + /** + * Getter for ratings.recruitment.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(4); + } + + /** + * Setter for ratings.recruitment.execution_percent. ミ佯ミセミサミスミオミスミクミオ + * ミソミサミーミスミー ミソムミクミキム巾イミー ミイ ミソムミセムミオミスムひーム + */ + public void setExecutionPercent(BigDecimal value) { + set(5, value); + } + + /** + * Getter for ratings.recruitment.execution_percent. ミ佯ミセミサミスミオミスミクミオ + * ミソミサミーミスミー ミソムミクミキム巾イミー ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getExecutionPercent() { + return (BigDecimal) get(5); + } + + /** + * Setter for ratings.recruitment.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(6, value); + } + + /** + * Getter for ratings.recruitment.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(6); + } + + // ------------------------------------------------------------------------- + // 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(Long idRecruitment, Integer idRegion, BigDecimal execution, String springAutumn, Date recordingDate, BigDecimal executionPercent, UUID recruitmentId) { + super(Recruitment.RECRUITMENT); + + setIdRecruitment(idRecruitment); + setIdRegion(idRegion); + setExecution(execution); + setSpringAutumn(springAutumn); + setRecordingDate(recordingDate); + setExecutionPercent(executionPercent); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Keys.java new file mode 100644 index 0000000..1c2552e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Keys.java @@ -0,0 +1,45 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign; + + +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.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.Subpoenas; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records.AppealsRecord; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records.RecruitmentRecord; +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records.SubpoenasRecord; + +import org.jooq.ForeignKey; +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 + * recruitment_campaign. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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 = 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); + + // ------------------------------------------------------------------------- + // 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); +} 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 new file mode 100644 index 0000000..797df4a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/RecruitmentCampaign.java @@ -0,0 +1,69 @@ +/* + * This file is generated by jOOQ. + */ +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.Subpoenas; + +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 RecruitmentCampaign extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of recruitment_campaign + */ + public static final RecruitmentCampaign RECRUITMENT_CAMPAIGN = new RecruitmentCampaign(); + + /** + * The table recruitment_campaign.appeals. + */ + public final Appeals APPEALS = Appeals.APPEALS; + + /** + * The table recruitment_campaign.recruitment. + */ + public final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + + /** + * ミ渙セミイミオムムひコミク ムτミセミイミオミスム ミミ、 + */ + public final Subpoenas SUBPOENAS = Subpoenas.SUBPOENAS; + + /** + * No further instances allowed + */ + private RecruitmentCampaign() { + super("recruitment_campaign", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + Appeals.APPEALS, + Recruitment.RECRUITMENT, + Subpoenas.SUBPOENAS + ); + } +} 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 new file mode 100644 index 0000000..be8998f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/Tables.java @@ -0,0 +1,32 @@ +/* + * This file is generated by jOOQ. + */ +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.Subpoenas; + + +/** + * Convenience access to all tables in recruitment_campaign. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * The table recruitment_campaign.appeals. + */ + public static final Appeals APPEALS = Appeals.APPEALS; + + /** + * The table recruitment_campaign.recruitment. + */ + public static final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + + /** + * ミ渙セミイミオムムひコミク ムτミセミイミオミスム ミミ、 + */ + public static final Subpoenas SUBPOENAS = Subpoenas.SUBPOENAS; +} 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 new file mode 100644 index 0000000..c00d499 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Appeals.java @@ -0,0 +1,345 @@ +/* + * This file is generated by jOOQ. + */ +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.AppealsRecord; + +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; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Appeals extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of recruitment_campaign.appeals + */ + public static final Appeals APPEALS = new Appeals(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return AppealsRecord.class; + } + + /** + * The column recruitment_campaign.appeals.id_appeal. + */ + public final TableField ID_APPEAL = createField(DSL.name("id_appeal"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column recruitment_campaign.appeals.total_appeal. + * ミ渙セミサムτミオミスミセ ミカミーミサミセミア + */ + public final TableField TOTAL_APPEAL = createField(DSL.name("total_appeal"), SQLDataType.NUMERIC, this, "ミ渙セミサムτミオミスミセ ミカミーミサミセミア"); + + /** + * The column recruitment_campaign.appeals.resolved. ミミオム威オミスミセ + */ + public final TableField RESOLVED = createField(DSL.name("resolved"), SQLDataType.NUMERIC, this, "ミミオム威オミスミセ"); + + /** + * The column recruitment_campaign.appeals.not_resolved. ミ斷オ + * ムミオム威オミスミセ + */ + public final TableField NOT_RESOLVED = createField(DSL.name("not_resolved"), SQLDataType.NUMERIC, this, "ミ斷オ ムミオム威オミスミセ"); + + /** + * The column + * recruitment_campaign.appeals.average_consideration. ミ柘ミオミシム + * ムミオム威オミスミクム + */ + public final TableField AVERAGE_CONSIDERATION = createField(DSL.name("average_consideration"), SQLDataType.NUMERIC, this, "ミ柘ミオミシム ムミオム威オミスミクム"); + + /** + * The column recruitment_campaign.appeals.average_rating. + * ミ樮ミオミスミコミー ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + 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. ミ頒ームひー + * ミキミーミソミクムミク + */ + 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.appeals.resolved_percent. + * ミ湲ミセムミオミスム ムミオム威オミスミスム錦 + */ + public final TableField RESOLVED_PERCENT = createField(DSL.name("resolved_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ムミオム威オミスミスム錦"); + + /** + * The column + * recruitment_campaign.appeals.not_resolved_percent. ミ湲ミセムミオミスム + * ミスミオ ムミオム威オミスミスム錦 + */ + public final TableField NOT_RESOLVED_PERCENT = createField(DSL.name("not_resolved_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミスミオ ムミオム威オミスミスム錦"); + + /** + * The column recruitment_campaign.appeals.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private Appeals(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Appeals(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased recruitment_campaign.appeals table + * reference + */ + public Appeals(String alias) { + this(DSL.name(alias), APPEALS); + } + + /** + * Create an aliased recruitment_campaign.appeals table + * reference + */ + public Appeals(Name alias) { + this(alias, APPEALS); + } + + /** + * Create a recruitment_campaign.appeals table reference + */ + public Appeals() { + 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 : RecruitmentCampaign.RECRUITMENT_CAMPAIGN; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_APPEAL; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.APPEALS__RC_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__RC_APPEALS_FK1, null); + + return _pubRecruitment; + } + + @Override + public Appeals as(String alias) { + return new Appeals(DSL.name(alias), this); + } + + @Override + public Appeals as(Name alias) { + return new Appeals(alias, this); + } + + @Override + public Appeals as(Table alias) { + return new Appeals(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Appeals rename(String name) { + return new Appeals(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Appeals rename(Name name) { + return new Appeals(name, null); + } + + /** + * Rename this table + */ + @Override + public Appeals rename(Table name) { + return new Appeals(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Condition condition) { + return new Appeals(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Appeals where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Appeals 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/recruitment_campaign/tables/Recruitment.java new file mode 100644 index 0000000..bbbe3d7 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Recruitment.java @@ -0,0 +1,337 @@ +/* + * This file is generated by jOOQ. + */ +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.RecruitmentRecord; + +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; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Recruitment extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of recruitment_campaign.recruitment + */ + public static final Recruitment RECRUITMENT = new Recruitment(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return RecruitmentRecord.class; + } + + /** + * The column recruitment_campaign.recruitment.id_recruitment. + */ + public final TableField ID_RECRUITMENT = createField(DSL.name("id_recruitment"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column + * recruitment_campaign.recruitment.suitable_recruit. ミ渙セミエムミセミエム肖 + * ミソミセミエ ミソムミクミキム巾イ + */ + public final TableField SUITABLE_RECRUIT = createField(DSL.name("suitable_recruit"), SQLDataType.NUMERIC, this, "ミ渙セミエムミセミエム肖 ミソミセミエ ミソムミクミキム巾イ"); + + /** + * The column + * recruitment_campaign.recruitment.postponement_have_right. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public final TableField POSTPONEMENT_HAVE_RIGHT = createField(DSL.name("postponement_have_right"), SQLDataType.NUMERIC, this, "ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム"); + + /** + * The column + * recruitment_campaign.recruitment.postponement_granted. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー + */ + public final TableField POSTPONEMENT_GRANTED = createField(DSL.name("postponement_granted"), SQLDataType.NUMERIC, this, "ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー"); + + /** + * The column recruitment_campaign.recruitment.spring_autumn. + * ミ樮ミオミスム/ミ漬オムミスミー + */ + public final TableField SPRING_AUTUMN = createField(DSL.name("spring_autumn"), SQLDataType.CLOB, this, "ミ樮ミオミスム/ミ漬オムミスミー"); + + /** + * The column recruitment_campaign.recruitment.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.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, ""); + + 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 recruitment_campaign.recruitment table + * reference + */ + public Recruitment(String alias) { + this(DSL.name(alias), RECRUITMENT); + } + + /** + * Create an aliased recruitment_campaign.recruitment table + * reference + */ + public Recruitment(Name alias) { + this(alias, RECRUITMENT); + } + + /** + * Create a recruitment_campaign.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 : RecruitmentCampaign.RECRUITMENT_CAMPAIGN; + } + + @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__RC_RECRUITMENT_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__RC_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/recruitment_campaign/tables/Subpoenas.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Subpoenas.java new file mode 100644 index 0000000..2554ba0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/Subpoenas.java @@ -0,0 +1,403 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 Subpoenas extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of recruitment_campaign.subpoenas + */ + public static final Subpoenas SUBPOENAS = new Subpoenas(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. + * ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ + */ + public final TableField SUBPOENA = createField(DSL.name("subpoena"), SQLDataType.NUMERIC, this, "ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ"); + + /** + * The column recruitment_campaign.subpoenas.appeared. ミッミイミクミサミクムム + */ + public final TableField APPEARED = createField(DSL.name("appeared"), SQLDataType.NUMERIC, this, "ミッミイミクミサミクムム"); + + /** + * The column recruitment_campaign.subpoenas.not_appeared. ミ斷オ + * ム紹イミクミサミクムム + */ + public final TableField NOT_APPEARED = createField(DSL.name("not_appeared"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム"); + + /** + * The column + * recruitment_campaign.subpoenas.not_ap_good_reason. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public final TableField NOT_AP_GOOD_REASON = createField(DSL.name("not_ap_good_reason"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ"); + + /** + * The column recruitment_campaign.subpoenas.ap_not_required. + * ミッミイミコミー ミスミオ ムびミオミアムσオムびム + */ + public final TableField AP_NOT_REQUIRED = createField(DSL.name("ap_not_required"), SQLDataType.NUMERIC, this, "ミッミイミコミー ミスミオ ムびミオミアムσオムびム"); + + /** + * The column + * recruitment_campaign.subpoenas.restrictions_applied. + * ミ斷ーミサミセミカミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column recruitment_campaign.subpoenas.appeared_percent. + * ミ湲ミセムミオミスム ム紹イミクミイム威クムムム + */ + public final TableField APPEARED_PERCENT = createField(DSL.name("appeared_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ム紹イミクミイム威クムムム"); + + /** + * The column + * recruitment_campaign.subpoenas.not_appeared_percent. ミ湲ミセムミオミスム + * ミスミオ ム紹イミクミイム威クムムム + */ + public final TableField NOT_APPEARED_PERCENT = createField(DSL.name("not_appeared_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミスミオ ム紹イミクミイム威クムムム"); + + /** + * The column + * recruitment_campaign.subpoenas.not_ap_good_reason_percent. + * ミ湲ミセムミオミスム ミスミオ ム紹イミクミイム威クムムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public final TableField NOT_AP_GOOD_REASON_PERCENT = createField(DSL.name("not_ap_good_reason_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミスミオ ム紹イミクミイム威クムムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ"); + + /** + * The column + * recruitment_campaign.subpoenas.ap_not_required_percent. + * ミ湲ミセムミオミスム ムひオム, ミウミエミオ ム紹イミコミー ミスミオ ムびミオミアムσオムびム + */ + public final TableField AP_NOT_REQUIRED_PERCENT = createField(DSL.name("ap_not_required_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ムひオム, ミウミエミオ ム紹イミコミー ミスミオ ムびミオミアムσオムびム"); + + /** + * The column + * recruitment_campaign.subpoenas.restrictions_applied_percent. + * ミ斷ーミサミセミカミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + public final TableField RESTRICTIONS_APPLIED_PERCENT = createField(DSL.name("restrictions_applied_percent"), SQLDataType.NUMERIC, this, "ミ斷ーミサミセミカミオミスミセ ミセミウムミーミスミクムミオミスミクミケ"); + + /** + * The column + * recruitment_campaign.subpoenas.introduced_measures. ミ漬イミオミエミオミスミセ + * ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + public final TableField INTRODUCED_MEASURES = createField(DSL.name("introduced_measures"), SQLDataType.NUMERIC, this, "ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム"); + + /** + * The column + * recruitment_campaign.subpoenas.introduced_measures_percent. + * ミ湲ミセムミオミスム ミイミイミオミエミオミスミスム錦 ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + public final TableField INTRODUCED_MEASURES_PERCENT = createField(DSL.name("introduced_measures_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミスム ミイミイミオミエミオミスミスム錦 ムミオミーミサミクミキミームひセムミセミシ ミシミオム"); + + /** + * The column recruitment_campaign.subpoenas.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column recruitment_campaign.subpoenas.rest. ミ樮ムひーミサム糊スム巾オ + */ + public final TableField REST = createField(DSL.name("rest"), SQLDataType.NUMERIC, this, "ミ樮ムひーミサム糊スム巾オ"); + + /** + * The column + * recruitment_campaign.subpoenas.testrecruitment_id. + */ + public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column recruitment_campaign.subpoenas.testspring_autumn. + */ + public final TableField TESTSPRING_AUTUMN = createField(DSL.name("testspring_autumn"), SQLDataType.CHAR(36), this, ""); + + private Subpoenas(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Subpoenas(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ渙セミイミオムムひコミク ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased recruitment_campaign.subpoenas table + * reference + */ + public Subpoenas(String alias) { + this(DSL.name(alias), SUBPOENAS); + } + + /** + * Create an aliased recruitment_campaign.subpoenas table + * reference + */ + public Subpoenas(Name alias) { + this(alias, SUBPOENAS); + } + + /** + * Create a recruitment_campaign.subpoenas table reference + */ + public Subpoenas() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public Subpoenas as(String alias) { + return new Subpoenas(DSL.name(alias), this); + } + + @Override + public Subpoenas as(Name alias) { + return new Subpoenas(alias, this); + } + + @Override + public Subpoenas as(Table alias) { + return new Subpoenas(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Subpoenas rename(String name) { + return new Subpoenas(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Subpoenas rename(Name name) { + return new Subpoenas(name, null); + } + + /** + * Rename this table + */ + @Override + public Subpoenas rename(Table name) { + return new Subpoenas(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Condition condition) { + return new Subpoenas(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..55289fa --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/AppealsRecord.java @@ -0,0 +1,238 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Appeals; + +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 AppealsRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for recruitment_campaign.appeals.id_appeal. + */ + public void setIdAppeal(Long value) { + set(0, value); + } + + /** + * Getter for recruitment_campaign.appeals.id_appeal. + */ + public Long getIdAppeal() { + return (Long) get(0); + } + + /** + * Setter for recruitment_campaign.appeals.total_appeal. + * ミ渙セミサムτミオミスミセ ミカミーミサミセミア + */ + public void setTotalAppeal(BigDecimal value) { + set(1, value); + } + + /** + * Getter for recruitment_campaign.appeals.total_appeal. + * ミ渙セミサムτミオミスミセ ミカミーミサミセミア + */ + public BigDecimal getTotalAppeal() { + return (BigDecimal) get(1); + } + + /** + * Setter for recruitment_campaign.appeals.resolved. ミミオム威オミスミセ + */ + public void setResolved(BigDecimal value) { + set(2, value); + } + + /** + * Getter for recruitment_campaign.appeals.resolved. ミミオム威オミスミセ + */ + public BigDecimal getResolved() { + return (BigDecimal) get(2); + } + + /** + * Setter for recruitment_campaign.appeals.not_resolved. ミ斷オ + * ムミオム威オミスミセ + */ + public void setNotResolved(BigDecimal value) { + set(3, value); + } + + /** + * Getter for recruitment_campaign.appeals.not_resolved. ミ斷オ + * ムミオム威オミスミセ + */ + public BigDecimal getNotResolved() { + return (BigDecimal) get(3); + } + + /** + * Setter for + * recruitment_campaign.appeals.average_consideration. ミ柘ミオミシム + * ムミオム威オミスミクム + */ + public void setAverageConsideration(BigDecimal value) { + set(4, value); + } + + /** + * Getter for + * recruitment_campaign.appeals.average_consideration. ミ柘ミオミシム + * ムミオム威オミスミクム + */ + public BigDecimal getAverageConsideration() { + return (BigDecimal) get(4); + } + + /** + * Setter for recruitment_campaign.appeals.average_rating. + * ミ樮ミオミスミコミー ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public void setAverageRating(BigDecimal value) { + set(5, value); + } + + /** + * Getter for recruitment_campaign.appeals.average_rating. + * ミ樮ミオミスミコミー ムσエミセミイミサミオムひイミセムミオミスミスミセムムひク + */ + public BigDecimal getAverageRating() { + 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); + } + + /** + * Getter for recruitment_campaign.appeals.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(7); + } + + /** + * Setter for recruitment_campaign.appeals.resolved_percent. + * ミ湲ミセムミオミスム ムミオム威オミスミスム錦 + */ + public void setResolvedPercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for recruitment_campaign.appeals.resolved_percent. + * ミ湲ミセムミオミスム ムミオム威オミスミスム錦 + */ + public BigDecimal getResolvedPercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for + * recruitment_campaign.appeals.not_resolved_percent. ミ湲ミセムミオミスム + * ミスミオ ムミオム威オミスミスム錦 + */ + public void setNotResolvedPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for + * recruitment_campaign.appeals.not_resolved_percent. ミ湲ミセムミオミスム + * ミスミオ ムミオム威オミスミスム錦 + */ + public BigDecimal getNotResolvedPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for recruitment_campaign.appeals.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(10, value); + } + + /** + * Getter for recruitment_campaign.appeals.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(10); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached AppealsRecord + */ + public AppealsRecord() { + super(Appeals.APPEALS); + } + + /** + * 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) { + super(Appeals.APPEALS); + + setIdAppeal(idAppeal); + setTotalAppeal(totalAppeal); + setResolved(resolved); + setNotResolved(notResolved); + setAverageConsideration(averageConsideration); + setAverageRating(averageRating); + setSpringAutumn(springAutumn); + setRecordingDate(recordingDate); + setResolvedPercent(resolvedPercent); + setNotResolvedPercent(notResolvedPercent); + setRecruitmentId(recruitmentId); + 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/RecruitmentRecord.java new file mode 100644 index 0000000..44e9b79 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/RecruitmentRecord.java @@ -0,0 +1,212 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Recruitment; + +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 { + + private static final long serialVersionUID = 1L; + + /** + * Setter for recruitment_campaign.recruitment.id_recruitment. + */ + public void setIdRecruitment(Long value) { + set(0, value); + } + + /** + * Getter for recruitment_campaign.recruitment.id_recruitment. + */ + public Long getIdRecruitment() { + return (Long) get(0); + } + + /** + * Setter for + * recruitment_campaign.recruitment.suitable_recruit. ミ渙セミエムミセミエム肖 + * ミソミセミエ ミソムミクミキム巾イ + */ + public void setSuitableRecruit(BigDecimal value) { + set(1, value); + } + + /** + * Getter for + * recruitment_campaign.recruitment.suitable_recruit. ミ渙セミエムミセミエム肖 + * ミソミセミエ ミソムミクミキム巾イ + */ + public BigDecimal getSuitableRecruit() { + return (BigDecimal) get(1); + } + + /** + * Setter for + * recruitment_campaign.recruitment.postponement_have_right. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public void setPostponementHaveRight(BigDecimal value) { + set(2, value); + } + + /** + * Getter for + * recruitment_campaign.recruitment.postponement_have_right. + * ミ侑シミオム紗 ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public BigDecimal getPostponementHaveRight() { + return (BigDecimal) get(2); + } + + /** + * Setter for + * recruitment_campaign.recruitment.postponement_granted. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー + */ + public void setPostponementGranted(BigDecimal value) { + set(3, value); + } + + /** + * Getter for + * recruitment_campaign.recruitment.postponement_granted. + * ミ湲ミオミエミセムムひーミイミサミオミスミー ミセムびムミセムミコミー + */ + public BigDecimal getPostponementGranted() { + return (BigDecimal) get(3); + } + + /** + * Setter for recruitment_campaign.recruitment.spring_autumn. + * ミ樮ミオミスム/ミ漬オムミスミー + */ + public void setSpringAutumn(String 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. + * ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(5); + } + + /** + * Setter for + * recruitment_campaign.recruitment.postponement_have_right_percent. + * ミ湲ミセムミオミスム ミクミシミオム紗禍クム ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public void setPostponementHaveRightPercent(BigDecimal value) { + set(6, value); + } + + /** + * Getter for + * recruitment_campaign.recruitment.postponement_have_right_percent. + * ミ湲ミセムミオミスム ミクミシミオム紗禍クム ミソムミーミイミセ ミスミー ミセムびムミセムミコム + */ + public BigDecimal getPostponementHaveRightPercent() { + return (BigDecimal) get(6); + } + + /** + * Setter for + * recruitment_campaign.recruitment.postponement_granted_percent. + * ミ湲ミセムミオミスム ミソムミオミエミセムムひーミイミサミオミスミスム錦 ミセムびムミセムミオミコ + */ + public void setPostponementGrantedPercent(BigDecimal value) { + set(7, value); + } + + /** + * Getter for + * recruitment_campaign.recruitment.postponement_granted_percent. + * ミ湲ミセムミオミスム ミソムミオミエミセムムひーミイミサミオミスミスム錦 ミセムびムミセムミオミコ + */ + public BigDecimal getPostponementGrantedPercent() { + return (BigDecimal) get(7); + } + + /** + * Setter for recruitment_campaign.recruitment.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(8, value); + } + + /** + * Getter for recruitment_campaign.recruitment.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(8); + } + + // ------------------------------------------------------------------------- + // 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(Long idRecruitment, BigDecimal suitableRecruit, BigDecimal postponementHaveRight, BigDecimal postponementGranted, String springAutumn, Date recordingDate, BigDecimal postponementHaveRightPercent, BigDecimal postponementGrantedPercent, UUID recruitmentId) { + super(Recruitment.RECRUITMENT); + + setIdRecruitment(idRecruitment); + setSuitableRecruit(suitableRecruit); + setPostponementHaveRight(postponementHaveRight); + setPostponementGranted(postponementGranted); + setSpringAutumn(springAutumn); + setRecordingDate(recordingDate); + setPostponementHaveRightPercent(postponementHaveRightPercent); + setPostponementGrantedPercent(postponementGrantedPercent); + setRecruitmentId(recruitmentId); + 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 new file mode 100644 index 0000000..d67af79 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/recruitment_campaign/tables/records/SubpoenasRecord.java @@ -0,0 +1,399 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.recruitment_campaign.tables.Subpoenas; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ渙セミイミオムムひコミク ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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); + } + + /** + * Getter for recruitment_campaign.subpoenas.subpoena. + * ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ + */ + public BigDecimal getSubpoena() { + return (BigDecimal) get(1); + } + + /** + * Setter for recruitment_campaign.subpoenas.appeared. ミッミイミクミサミクムム + */ + public void setAppeared(BigDecimal value) { + set(2, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.appeared. ミッミイミクミサミクムム + */ + public BigDecimal getAppeared() { + return (BigDecimal) get(2); + } + + /** + * Setter for recruitment_campaign.subpoenas.not_appeared. ミ斷オ + * ム紹イミクミサミクムム + */ + public void setNotAppeared(BigDecimal value) { + set(3, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.not_appeared. ミ斷オ + * ム紹イミクミサミクムム + */ + public BigDecimal getNotAppeared() { + return (BigDecimal) get(3); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.not_ap_good_reason. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public void setNotApGoodReason(BigDecimal value) { + set(4, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.not_ap_good_reason. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public BigDecimal getNotApGoodReason() { + return (BigDecimal) get(4); + } + + /** + * Setter for recruitment_campaign.subpoenas.ap_not_required. + * ミッミイミコミー ミスミオ ムびミオミアムσオムびム + */ + public void setApNotRequired(BigDecimal value) { + set(5, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.ap_not_required. + * ミッミイミコミー ミスミオ ムびミオミアムσオムびム + */ + public BigDecimal getApNotRequired() { + return (BigDecimal) get(5); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.restrictions_applied. + * ミ斷ーミサミセミカミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + public void setRestrictionsApplied(BigDecimal value) { + set(6, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.restrictions_applied. + * ミ斷ーミサミセミカミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + 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); + } + + /** + * Setter for recruitment_campaign.subpoenas.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(8, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(8); + } + + /** + * Setter for recruitment_campaign.subpoenas.appeared_percent. + * ミ湲ミセムミオミスム ム紹イミクミイム威クムムム + */ + public void setAppearedPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.appeared_percent. + * ミ湲ミセムミオミスム ム紹イミクミイム威クムムム + */ + public BigDecimal getAppearedPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.not_appeared_percent. ミ湲ミセムミオミスム + * ミスミオ ム紹イミクミイム威クムムム + */ + public void setNotAppearedPercent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.not_appeared_percent. ミ湲ミセムミオミスム + * ミスミオ ム紹イミクミイム威クムムム + */ + public BigDecimal getNotAppearedPercent() { + return (BigDecimal) get(10); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.not_ap_good_reason_percent. + * ミ湲ミセムミオミスム ミスミオ ム紹イミクミイム威クムムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public void setNotApGoodReasonPercent(BigDecimal value) { + set(11, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.not_ap_good_reason_percent. + * ミ湲ミセムミオミスム ミスミオ ム紹イミクミイム威クムムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public BigDecimal getNotApGoodReasonPercent() { + return (BigDecimal) get(11); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.ap_not_required_percent. + * ミ湲ミセムミオミスム ムひオム, ミウミエミオ ム紹イミコミー ミスミオ ムびミオミアムσオムびム + */ + public void setApNotRequiredPercent(BigDecimal value) { + set(12, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.ap_not_required_percent. + * ミ湲ミセムミオミスム ムひオム, ミウミエミオ ム紹イミコミー ミスミオ ムびミオミアムσオムびム + */ + public BigDecimal getApNotRequiredPercent() { + return (BigDecimal) get(12); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.restrictions_applied_percent. + * ミ斷ーミサミセミカミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + public void setRestrictionsAppliedPercent(BigDecimal value) { + set(13, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.restrictions_applied_percent. + * ミ斷ーミサミセミカミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + public BigDecimal getRestrictionsAppliedPercent() { + return (BigDecimal) get(13); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.introduced_measures. ミ漬イミオミエミオミスミセ + * ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + public void setIntroducedMeasures(BigDecimal value) { + set(14, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.introduced_measures. ミ漬イミオミエミオミスミセ + * ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + public BigDecimal getIntroducedMeasures() { + return (BigDecimal) get(14); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.introduced_measures_percent. + * ミ湲ミセムミオミスム ミイミイミオミエミオミスミスム錦 ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + public void setIntroducedMeasuresPercent(BigDecimal value) { + set(15, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.introduced_measures_percent. + * ミ湲ミセムミオミスム ミイミイミオミエミオミスミスム錦 ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + public BigDecimal getIntroducedMeasuresPercent() { + return (BigDecimal) get(15); + } + + /** + * Setter for recruitment_campaign.subpoenas.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(16, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(16); + } + + /** + * Setter for recruitment_campaign.subpoenas.rest. ミ樮ムひーミサム糊スム巾オ + */ + public void setRest(BigDecimal value) { + set(17, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.rest. ミ樮ムひーミサム糊スム巾オ + */ + public BigDecimal getRest() { + return (BigDecimal) get(17); + } + + /** + * Setter for + * recruitment_campaign.subpoenas.testrecruitment_id. + */ + public void setTestrecruitmentId(String value) { + set(18, value); + } + + /** + * Getter for + * recruitment_campaign.subpoenas.testrecruitment_id. + */ + public String getTestrecruitmentId() { + return (String) get(18); + } + + /** + * Setter for recruitment_campaign.subpoenas.testspring_autumn. + */ + public void setTestspringAutumn(String value) { + set(19, value); + } + + /** + * Getter for recruitment_campaign.subpoenas.testspring_autumn. + */ + public String getTestspringAutumn() { + return (String) get(19); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached SubpoenasRecord + */ + public SubpoenasRecord() { + super(Subpoenas.SUBPOENAS); + } + + /** + * 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) { + 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); + setNotApGoodReasonPercent(notApGoodReasonPercent); + setApNotRequiredPercent(apNotRequiredPercent); + setRestrictionsAppliedPercent(restrictionsAppliedPercent); + setIntroducedMeasures(introducedMeasures); + setIntroducedMeasuresPercent(introducedMeasuresPercent); + setRecruitmentId(recruitmentId); + setRest(rest); + setTestrecruitmentId(testrecruitmentId); + setTestspringAutumn(testspringAutumn); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Keys.java new file mode 100644 index 0000000..60448e1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Keys.java @@ -0,0 +1,86 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.AccessLevel; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.Authority; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.EsiaUser; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserAccountUserGroup; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserGroupUserRole; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserRoleAuthority; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.OrgUnit; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccountRefreshToken; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.AccessLevelRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.AuthorityRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.EsiaUserRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.LinkUserAccountUserGroupRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.LinkUserGroupUserRoleRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.LinkUserRoleAuthorityRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.OrgUnitRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserAccountRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserAccountRefreshTokenRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserGroupRecord; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserRoleRecord; + +import org.jooq.ForeignKey; +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 + * security. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Keys { + + // ------------------------------------------------------------------------- + // UNIQUE and PRIMARY KEY definitions + // ------------------------------------------------------------------------- + + public static final UniqueKey PK_ACCESS_LEVEL = Internal.createUniqueKey(AccessLevel.ACCESS_LEVEL, DSL.name("pk_access_level"), new TableField[] { AccessLevel.ACCESS_LEVEL.ACCESS_LEVEL_ID }, true); + public static final UniqueKey UNI_ACCESS_LEVEL = Internal.createUniqueKey(AccessLevel.ACCESS_LEVEL, DSL.name("uni_access_level"), new TableField[] { AccessLevel.ACCESS_LEVEL.LEVEL }, true); + public static final UniqueKey PK_AUTHORITY = Internal.createUniqueKey(Authority.AUTHORITY, DSL.name("pk_authority"), new TableField[] { Authority.AUTHORITY.AUTHORITY_ID }, true); + public static final UniqueKey UNI_AUTHORITY_NAME = Internal.createUniqueKey(Authority.AUTHORITY, DSL.name("uni_authority_name"), new TableField[] { Authority.AUTHORITY.NAME }, true); + public static final UniqueKey PK_ESIA_USER = Internal.createUniqueKey(EsiaUser.ESIA_USER, DSL.name("pk_esia_user"), new TableField[] { EsiaUser.ESIA_USER.ESIA_USER_ID }, true); + public static final UniqueKey UNI_ESIA_USER1 = Internal.createUniqueKey(EsiaUser.ESIA_USER, DSL.name("uni_esia_user1"), new TableField[] { EsiaUser.ESIA_USER.USER_ACCOUNT_ID }, true); + public static final UniqueKey UNI_ESIA_USER2 = Internal.createUniqueKey(EsiaUser.ESIA_USER, DSL.name("uni_esia_user2"), new TableField[] { EsiaUser.ESIA_USER.PERSON_CONTACT_ID }, true); + public static final UniqueKey PK_USER_GROUP = Internal.createUniqueKey(LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP, DSL.name("pk_user_group"), new TableField[] { LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP.LINK_USER_ACCOUNT_USER_GROUP_ID }, true); + public static final UniqueKey UNI_USER_GROUP = Internal.createUniqueKey(LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP, DSL.name("uni_user_group"), new TableField[] { LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP.USER_ACCOUNT_ID, LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP.USER_GROUP_ID }, true); + public static final UniqueKey PK_GROUP_ROLE = Internal.createUniqueKey(LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE, DSL.name("pk_group_role"), new TableField[] { LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE.LINK_USER_GROUP_USER_ROLE_ID }, true); + public static final UniqueKey UNI_GROUP_ROLE = Internal.createUniqueKey(LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE, DSL.name("uni_group_role"), new TableField[] { LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE.USER_GROUP_ID, LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE.USER_ROLE_ID }, true); + public static final UniqueKey PK_ROLE_AUTHORITY = Internal.createUniqueKey(LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY, DSL.name("pk_role_authority"), new TableField[] { LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY.USER_ROLE_AUTHORITY_ID }, true); + public static final UniqueKey UNI_ROLE_AUTHORITY = Internal.createUniqueKey(LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY, DSL.name("uni_role_authority"), new TableField[] { LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY.USER_ROLE_ID, LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY.AUTHORITY_ID }, true); + public static final UniqueKey ORG_UNIT_CODE_KEY = Internal.createUniqueKey(OrgUnit.ORG_UNIT, DSL.name("org_unit_code_key"), new TableField[] { OrgUnit.ORG_UNIT.CODE }, true); + public static final UniqueKey PK_ORG_UNIT = Internal.createUniqueKey(OrgUnit.ORG_UNIT, DSL.name("pk_org_unit"), new TableField[] { OrgUnit.ORG_UNIT.ID }, true); + public static final UniqueKey PK_USER = Internal.createUniqueKey(UserAccount.USER_ACCOUNT, DSL.name("pk_user"), new TableField[] { UserAccount.USER_ACCOUNT.USER_ACCOUNT_ID }, true); + public static final UniqueKey USER_ACCOUNT_USERNAME_UNIQUE = Internal.createUniqueKey(UserAccount.USER_ACCOUNT, DSL.name("user_account_username_unique"), new TableField[] { UserAccount.USER_ACCOUNT.USERNAME }, true); + public static final UniqueKey PK_USER_ACCOUNT_REFRESH_TOKEN = Internal.createUniqueKey(UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN, DSL.name("pk_user_account_refresh_token"), new TableField[] { UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN.USER_ACCOUNT_REFRESH_TOKEN_ID }, true); + public static final UniqueKey PK_GROUP = Internal.createUniqueKey(UserGroup.USER_GROUP, DSL.name("pk_group"), new TableField[] { UserGroup.USER_GROUP.USER_GROUP_ID }, true); + public static final UniqueKey UNI_GROUP_NAME = Internal.createUniqueKey(UserGroup.USER_GROUP, DSL.name("uni_group_name"), new TableField[] { UserGroup.USER_GROUP.NAME }, true); + public static final UniqueKey PK_ROLE = Internal.createUniqueKey(UserRole.USER_ROLE, DSL.name("pk_role"), new TableField[] { UserRole.USER_ROLE.USER_ROLE_ID }, true); + public static final UniqueKey UNI_ROLE_NAME = Internal.createUniqueKey(UserRole.USER_ROLE, DSL.name("uni_role_name"), new TableField[] { UserRole.USER_ROLE.NAME }, true); + + // ------------------------------------------------------------------------- + // FOREIGN KEY definitions + // ------------------------------------------------------------------------- + + public static final ForeignKey ESIA_USER__FK_ESIA_USER1 = Internal.createForeignKey(EsiaUser.ESIA_USER, DSL.name("fk_esia_user1"), new TableField[] { EsiaUser.ESIA_USER.USER_ACCOUNT_ID }, Keys.PK_USER, new TableField[] { UserAccount.USER_ACCOUNT.USER_ACCOUNT_ID }, true); + public static final ForeignKey LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_GROUP = Internal.createForeignKey(LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP, DSL.name("fk_user_group_group"), new TableField[] { LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP.USER_GROUP_ID }, Keys.PK_GROUP, new TableField[] { UserGroup.USER_GROUP.USER_GROUP_ID }, true); + public static final ForeignKey LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_USER = Internal.createForeignKey(LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP, DSL.name("fk_user_group_user"), new TableField[] { LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP.USER_ACCOUNT_ID }, Keys.PK_USER, new TableField[] { UserAccount.USER_ACCOUNT.USER_ACCOUNT_ID }, true); + public static final ForeignKey LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_GROUP = Internal.createForeignKey(LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE, DSL.name("fk_group_role_group"), new TableField[] { LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE.USER_GROUP_ID }, Keys.PK_GROUP, new TableField[] { UserGroup.USER_GROUP.USER_GROUP_ID }, true); + public static final ForeignKey LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_ROLE = Internal.createForeignKey(LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE, DSL.name("fk_group_role_role"), new TableField[] { LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE.USER_ROLE_ID }, Keys.PK_ROLE, new TableField[] { UserRole.USER_ROLE.USER_ROLE_ID }, true); + public static final ForeignKey LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_AUTHORITY = Internal.createForeignKey(LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY, DSL.name("fk_role_authority_authority"), new TableField[] { LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY.AUTHORITY_ID }, Keys.PK_AUTHORITY, new TableField[] { Authority.AUTHORITY.AUTHORITY_ID }, true); + public static final ForeignKey LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_ROLE = Internal.createForeignKey(LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY, DSL.name("fk_role_authority_role"), new TableField[] { LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY.USER_ROLE_ID }, Keys.PK_ROLE, new TableField[] { UserRole.USER_ROLE.USER_ROLE_ID }, true); + public static final ForeignKey ORG_UNIT__FK_ORG_UNIT_PARENT_ID = Internal.createForeignKey(OrgUnit.ORG_UNIT, DSL.name("fk_org_unit_parent_id"), new TableField[] { OrgUnit.ORG_UNIT.PARENT_ID }, Keys.PK_ORG_UNIT, new TableField[] { OrgUnit.ORG_UNIT.ID }, true); + public static final ForeignKey USER_ACCOUNT__FK_USER_ORG_UNIT_ID = Internal.createForeignKey(UserAccount.USER_ACCOUNT, DSL.name("fk_user_org_unit_id"), new TableField[] { UserAccount.USER_ACCOUNT.ORG_UNIT_ID }, Keys.PK_ORG_UNIT, new TableField[] { OrgUnit.ORG_UNIT.ID }, true); + public static final ForeignKey USER_ACCOUNT_REFRESH_TOKEN__FK_USER_ACCOUNT_REFRESH_TOKEN = Internal.createForeignKey(UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN, DSL.name("fk_user_account_refresh_token"), new TableField[] { UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN.USER_ACCOUNT_ID }, Keys.PK_USER, new TableField[] { UserAccount.USER_ACCOUNT.USER_ACCOUNT_ID }, true); + public static final ForeignKey USER_GROUP__FK_USER_GROUP_ACCESS_LEVEL = Internal.createForeignKey(UserGroup.USER_GROUP, DSL.name("fk_user_group_access_level"), new TableField[] { UserGroup.USER_GROUP.ACCESS_LEVEL_ID }, Keys.PK_ACCESS_LEVEL, new TableField[] { AccessLevel.ACCESS_LEVEL.ACCESS_LEVEL_ID }, true); +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Security.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Security.java new file mode 100644 index 0000000..c1cee4e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Security.java @@ -0,0 +1,125 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security; + + +import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.AccessLevel; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.Authority; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.EsiaUser; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserAccountUserGroup; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserGroupUserRole; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserRoleAuthority; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.OrgUnit; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccountRefreshToken; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole; + +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 Security extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security + */ + public static final Security SECURITY = new Security(); + + /** + * The table security.access_level. + */ + public final AccessLevel ACCESS_LEVEL = AccessLevel.ACCESS_LEVEL; + + /** + * The table security.authority. + */ + public final Authority AUTHORITY = Authority.AUTHORITY; + + /** + * The table security.esia_user. + */ + public final EsiaUser ESIA_USER = EsiaUser.ESIA_USER; + + /** + * The table security.link_user_account_user_group. + */ + public final LinkUserAccountUserGroup LINK_USER_ACCOUNT_USER_GROUP = LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP; + + /** + * The table security.link_user_group_user_role. + */ + public final LinkUserGroupUserRole LINK_USER_GROUP_USER_ROLE = LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE; + + /** + * The table security.link_user_role_authority. + */ + public final LinkUserRoleAuthority LINK_USER_ROLE_AUTHORITY = LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY; + + /** + * The table security.org_unit. + */ + public final OrgUnit ORG_UNIT = OrgUnit.ORG_UNIT; + + /** + * The table security.user_account. + */ + public final UserAccount USER_ACCOUNT = UserAccount.USER_ACCOUNT; + + /** + * The table security.user_account_refresh_token. + */ + public final UserAccountRefreshToken USER_ACCOUNT_REFRESH_TOKEN = UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN; + + /** + * The table security.user_group. + */ + public final UserGroup USER_GROUP = UserGroup.USER_GROUP; + + /** + * The table security.user_role. + */ + public final UserRole USER_ROLE = UserRole.USER_ROLE; + + /** + * No further instances allowed + */ + private Security() { + super("security", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + AccessLevel.ACCESS_LEVEL, + Authority.AUTHORITY, + EsiaUser.ESIA_USER, + LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP, + LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE, + LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY, + OrgUnit.ORG_UNIT, + UserAccount.USER_ACCOUNT, + UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN, + UserGroup.USER_GROUP, + UserRole.USER_ROLE + ); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Tables.java new file mode 100644 index 0000000..8974802 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/Tables.java @@ -0,0 +1,80 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.AccessLevel; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.Authority; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.EsiaUser; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserAccountUserGroup; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserGroupUserRole; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserRoleAuthority; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.OrgUnit; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccountRefreshToken; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole; + + +/** + * Convenience access to all tables in security. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * The table security.access_level. + */ + public static final AccessLevel ACCESS_LEVEL = AccessLevel.ACCESS_LEVEL; + + /** + * The table security.authority. + */ + public static final Authority AUTHORITY = Authority.AUTHORITY; + + /** + * The table security.esia_user. + */ + public static final EsiaUser ESIA_USER = EsiaUser.ESIA_USER; + + /** + * The table security.link_user_account_user_group. + */ + public static final LinkUserAccountUserGroup LINK_USER_ACCOUNT_USER_GROUP = LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP; + + /** + * The table security.link_user_group_user_role. + */ + public static final LinkUserGroupUserRole LINK_USER_GROUP_USER_ROLE = LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE; + + /** + * The table security.link_user_role_authority. + */ + public static final LinkUserRoleAuthority LINK_USER_ROLE_AUTHORITY = LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY; + + /** + * The table security.org_unit. + */ + public static final OrgUnit ORG_UNIT = OrgUnit.ORG_UNIT; + + /** + * The table security.user_account. + */ + public static final UserAccount USER_ACCOUNT = UserAccount.USER_ACCOUNT; + + /** + * The table security.user_account_refresh_token. + */ + public static final UserAccountRefreshToken USER_ACCOUNT_REFRESH_TOKEN = UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN; + + /** + * The table security.user_group. + */ + public static final UserGroup USER_GROUP = UserGroup.USER_GROUP; + + /** + * The table security.user_role. + */ + public static final UserRole USER_ROLE = UserRole.USER_ROLE; +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/AccessLevel.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/AccessLevel.java new file mode 100644 index 0000000..76c825e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/AccessLevel.java @@ -0,0 +1,284 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.AccessLevelRecord; + +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 AccessLevel extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.access_level + */ + public static final AccessLevel ACCESS_LEVEL = new AccessLevel(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return AccessLevelRecord.class; + } + + /** + * The column security.access_level.access_level_id. + */ + public final TableField ACCESS_LEVEL_ID = createField(DSL.name("access_level_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.access_level.level. + */ + public final TableField LEVEL = createField(DSL.name("level"), SQLDataType.SMALLINT.nullable(false), this, ""); + + /** + * The column security.access_level.description. + */ + public final TableField DESCRIPTION = createField(DSL.name("description"), SQLDataType.VARCHAR(256).nullable(false), this, ""); + + private AccessLevel(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private AccessLevel(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.access_level table reference + */ + public AccessLevel(String alias) { + this(DSL.name(alias), ACCESS_LEVEL); + } + + /** + * Create an aliased security.access_level table reference + */ + public AccessLevel(Name alias) { + this(alias, ACCESS_LEVEL); + } + + /** + * Create a security.access_level table reference + */ + public AccessLevel() { + this(DSL.name("access_level"), null); + } + + public AccessLevel(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, ACCESS_LEVEL); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class AccessLevelPath extends AccessLevel implements Path { + public AccessLevelPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private AccessLevelPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public AccessLevelPath as(String alias) { + return new AccessLevelPath(DSL.name(alias), this); + } + + @Override + public AccessLevelPath as(Name alias) { + return new AccessLevelPath(alias, this); + } + + @Override + public AccessLevelPath as(Table alias) { + return new AccessLevelPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_ACCESS_LEVEL; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_ACCESS_LEVEL); + } + + private transient UserGroupPath _userGroup; + + /** + * Get the implicit to-many join path to the + * security.user_group table + */ + public UserGroupPath userGroup() { + if (_userGroup == null) + _userGroup = new UserGroupPath(this, null, Keys.USER_GROUP__FK_USER_GROUP_ACCESS_LEVEL.getInverseKey()); + + return _userGroup; + } + + @Override + public AccessLevel as(String alias) { + return new AccessLevel(DSL.name(alias), this); + } + + @Override + public AccessLevel as(Name alias) { + return new AccessLevel(alias, this); + } + + @Override + public AccessLevel as(Table alias) { + return new AccessLevel(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public AccessLevel rename(String name) { + return new AccessLevel(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public AccessLevel rename(Name name) { + return new AccessLevel(name, null); + } + + /** + * Rename this table + */ + @Override + public AccessLevel rename(Table name) { + return new AccessLevel(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AccessLevel where(Condition condition) { + return new AccessLevel(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AccessLevel where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AccessLevel where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AccessLevel where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AccessLevel where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AccessLevel where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AccessLevel where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public AccessLevel where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AccessLevel whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public AccessLevel whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/Authority.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/Authority.java new file mode 100644 index 0000000..7157e97 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/Authority.java @@ -0,0 +1,294 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserRoleAuthority.LinkUserRoleAuthorityPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole.UserRolePath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.AuthorityRecord; + +import java.sql.Timestamp; +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 Authority extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.authority + */ + public static final Authority AUTHORITY = new Authority(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return AuthorityRecord.class; + } + + /** + * The column security.authority.authority_id. + */ + public final TableField AUTHORITY_ID = createField(DSL.name("authority_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.authority.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column security.authority.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private Authority(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Authority(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.authority table reference + */ + public Authority(String alias) { + this(DSL.name(alias), AUTHORITY); + } + + /** + * Create an aliased security.authority table reference + */ + public Authority(Name alias) { + this(alias, AUTHORITY); + } + + /** + * Create a security.authority table reference + */ + public Authority() { + this(DSL.name("authority"), null); + } + + public Authority(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, AUTHORITY); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class AuthorityPath extends Authority implements Path { + public AuthorityPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private AuthorityPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public AuthorityPath as(String alias) { + return new AuthorityPath(DSL.name(alias), this); + } + + @Override + public AuthorityPath as(Name alias) { + return new AuthorityPath(alias, this); + } + + @Override + public AuthorityPath as(Table alias) { + return new AuthorityPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_AUTHORITY; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_AUTHORITY_NAME); + } + + private transient LinkUserRoleAuthorityPath _linkUserRoleAuthority; + + /** + * Get the implicit to-many join path to the + * security.link_user_role_authority table + */ + public LinkUserRoleAuthorityPath linkUserRoleAuthority() { + if (_linkUserRoleAuthority == null) + _linkUserRoleAuthority = new LinkUserRoleAuthorityPath(this, null, Keys.LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_AUTHORITY.getInverseKey()); + + return _linkUserRoleAuthority; + } + + /** + * Get the implicit many-to-many join path to the + * security.user_role table + */ + public UserRolePath userRole() { + return linkUserRoleAuthority().userRole(); + } + + @Override + public Authority as(String alias) { + return new Authority(DSL.name(alias), this); + } + + @Override + public Authority as(Name alias) { + return new Authority(alias, this); + } + + @Override + public Authority as(Table alias) { + return new Authority(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Authority rename(String name) { + return new Authority(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Authority rename(Name name) { + return new Authority(name, null); + } + + /** + * Rename this table + */ + @Override + public Authority rename(Table name) { + return new Authority(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Authority where(Condition condition) { + return new Authority(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Authority where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Authority where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Authority where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Authority where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Authority where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Authority where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Authority where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Authority whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Authority whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/EsiaUser.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/EsiaUser.java new file mode 100644 index 0000000..bca1c5a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/EsiaUser.java @@ -0,0 +1,289 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.EsiaUserRecord; + +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 EsiaUser extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.esia_user + */ + public static final EsiaUser ESIA_USER = new EsiaUser(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return EsiaUserRecord.class; + } + + /** + * The column security.esia_user.esia_user_id. + */ + public final TableField ESIA_USER_ID = createField(DSL.name("esia_user_id"), SQLDataType.VARCHAR(36).nullable(false), this, ""); + + /** + * The column security.esia_user.user_account_id. + */ + public final TableField USER_ACCOUNT_ID = createField(DSL.name("user_account_id"), SQLDataType.VARCHAR(36).nullable(false), this, ""); + + /** + * The column security.esia_user.person_contact_id. + */ + public final TableField PERSON_CONTACT_ID = createField(DSL.name("person_contact_id"), SQLDataType.BIGINT.nullable(false), this, ""); + + private EsiaUser(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private EsiaUser(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.esia_user table reference + */ + public EsiaUser(String alias) { + this(DSL.name(alias), ESIA_USER); + } + + /** + * Create an aliased security.esia_user table reference + */ + public EsiaUser(Name alias) { + this(alias, ESIA_USER); + } + + /** + * Create a security.esia_user table reference + */ + public EsiaUser() { + this(DSL.name("esia_user"), null); + } + + public EsiaUser(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, ESIA_USER); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class EsiaUserPath extends EsiaUser implements Path { + public EsiaUserPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private EsiaUserPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public EsiaUserPath as(String alias) { + return new EsiaUserPath(DSL.name(alias), this); + } + + @Override + public EsiaUserPath as(Name alias) { + return new EsiaUserPath(alias, this); + } + + @Override + public EsiaUserPath as(Table alias) { + return new EsiaUserPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_ESIA_USER; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_ESIA_USER1, Keys.UNI_ESIA_USER2); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.ESIA_USER__FK_ESIA_USER1); + } + + private transient UserAccountPath _userAccount; + + /** + * Get the implicit join path to the security.user_account + * table. + */ + public UserAccountPath userAccount() { + if (_userAccount == null) + _userAccount = new UserAccountPath(this, Keys.ESIA_USER__FK_ESIA_USER1, null); + + return _userAccount; + } + + @Override + public EsiaUser as(String alias) { + return new EsiaUser(DSL.name(alias), this); + } + + @Override + public EsiaUser as(Name alias) { + return new EsiaUser(alias, this); + } + + @Override + public EsiaUser as(Table alias) { + return new EsiaUser(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public EsiaUser rename(String name) { + return new EsiaUser(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public EsiaUser rename(Name name) { + return new EsiaUser(name, null); + } + + /** + * Rename this table + */ + @Override + public EsiaUser rename(Table name) { + return new EsiaUser(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EsiaUser where(Condition condition) { + return new EsiaUser(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EsiaUser where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EsiaUser where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EsiaUser where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EsiaUser where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EsiaUser where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EsiaUser where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EsiaUser where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EsiaUser whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EsiaUser whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserAccountUserGroup.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserAccountUserGroup.java new file mode 100644 index 0000000..9c2cccb --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserAccountUserGroup.java @@ -0,0 +1,315 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.LinkUserAccountUserGroupRecord; + +import java.sql.Timestamp; +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 LinkUserAccountUserGroup extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * security.link_user_account_user_group + */ + public static final LinkUserAccountUserGroup LINK_USER_ACCOUNT_USER_GROUP = new LinkUserAccountUserGroup(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return LinkUserAccountUserGroupRecord.class; + } + + /** + * The column + * security.link_user_account_user_group.link_user_account_user_group_id. + */ + public final TableField LINK_USER_ACCOUNT_USER_GROUP_ID = createField(DSL.name("link_user_account_user_group_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column + * security.link_user_account_user_group.user_account_id. + */ + public final TableField USER_ACCOUNT_ID = createField(DSL.name("user_account_id"), SQLDataType.VARCHAR(150).nullable(false), this, ""); + + /** + * The column + * security.link_user_account_user_group.user_group_id. + */ + public final TableField USER_GROUP_ID = createField(DSL.name("user_group_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.link_user_account_user_group.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private LinkUserAccountUserGroup(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private LinkUserAccountUserGroup(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.link_user_account_user_group + * table reference + */ + public LinkUserAccountUserGroup(String alias) { + this(DSL.name(alias), LINK_USER_ACCOUNT_USER_GROUP); + } + + /** + * Create an aliased security.link_user_account_user_group + * table reference + */ + public LinkUserAccountUserGroup(Name alias) { + this(alias, LINK_USER_ACCOUNT_USER_GROUP); + } + + /** + * Create a security.link_user_account_user_group table + * reference + */ + public LinkUserAccountUserGroup() { + this(DSL.name("link_user_account_user_group"), null); + } + + public LinkUserAccountUserGroup(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, LINK_USER_ACCOUNT_USER_GROUP); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class LinkUserAccountUserGroupPath extends LinkUserAccountUserGroup implements Path { + public LinkUserAccountUserGroupPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private LinkUserAccountUserGroupPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public LinkUserAccountUserGroupPath as(String alias) { + return new LinkUserAccountUserGroupPath(DSL.name(alias), this); + } + + @Override + public LinkUserAccountUserGroupPath as(Name alias) { + return new LinkUserAccountUserGroupPath(alias, this); + } + + @Override + public LinkUserAccountUserGroupPath as(Table alias) { + return new LinkUserAccountUserGroupPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_USER_GROUP; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_USER_GROUP); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_USER, Keys.LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_GROUP); + } + + private transient UserAccountPath _userAccount; + + /** + * Get the implicit join path to the security.user_account + * table. + */ + public UserAccountPath userAccount() { + if (_userAccount == null) + _userAccount = new UserAccountPath(this, Keys.LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_USER, null); + + return _userAccount; + } + + private transient UserGroupPath _userGroup; + + /** + * Get the implicit join path to the security.user_group table. + */ + public UserGroupPath userGroup() { + if (_userGroup == null) + _userGroup = new UserGroupPath(this, Keys.LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_GROUP, null); + + return _userGroup; + } + + @Override + public LinkUserAccountUserGroup as(String alias) { + return new LinkUserAccountUserGroup(DSL.name(alias), this); + } + + @Override + public LinkUserAccountUserGroup as(Name alias) { + return new LinkUserAccountUserGroup(alias, this); + } + + @Override + public LinkUserAccountUserGroup as(Table alias) { + return new LinkUserAccountUserGroup(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public LinkUserAccountUserGroup rename(String name) { + return new LinkUserAccountUserGroup(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public LinkUserAccountUserGroup rename(Name name) { + return new LinkUserAccountUserGroup(name, null); + } + + /** + * Rename this table + */ + @Override + public LinkUserAccountUserGroup rename(Table name) { + return new LinkUserAccountUserGroup(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserAccountUserGroup where(Condition condition) { + return new LinkUserAccountUserGroup(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserAccountUserGroup where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserAccountUserGroup where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserAccountUserGroup where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserAccountUserGroup where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserAccountUserGroup where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserAccountUserGroup where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserAccountUserGroup where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserAccountUserGroup whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserAccountUserGroup whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserGroupUserRole.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserGroupUserRole.java new file mode 100644 index 0000000..fb75edb --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserGroupUserRole.java @@ -0,0 +1,310 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole.UserRolePath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.LinkUserGroupUserRoleRecord; + +import java.sql.Timestamp; +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 LinkUserGroupUserRole extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.link_user_group_user_role + */ + public static final LinkUserGroupUserRole LINK_USER_GROUP_USER_ROLE = new LinkUserGroupUserRole(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return LinkUserGroupUserRoleRecord.class; + } + + /** + * The column + * security.link_user_group_user_role.link_user_group_user_role_id. + */ + public final TableField LINK_USER_GROUP_USER_ROLE_ID = createField(DSL.name("link_user_group_user_role_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.link_user_group_user_role.user_group_id. + */ + public final TableField USER_GROUP_ID = createField(DSL.name("user_group_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.link_user_group_user_role.user_role_id. + */ + public final TableField USER_ROLE_ID = createField(DSL.name("user_role_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.link_user_group_user_role.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private LinkUserGroupUserRole(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private LinkUserGroupUserRole(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.link_user_group_user_role table + * reference + */ + public LinkUserGroupUserRole(String alias) { + this(DSL.name(alias), LINK_USER_GROUP_USER_ROLE); + } + + /** + * Create an aliased security.link_user_group_user_role table + * reference + */ + public LinkUserGroupUserRole(Name alias) { + this(alias, LINK_USER_GROUP_USER_ROLE); + } + + /** + * Create a security.link_user_group_user_role table reference + */ + public LinkUserGroupUserRole() { + this(DSL.name("link_user_group_user_role"), null); + } + + public LinkUserGroupUserRole(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, LINK_USER_GROUP_USER_ROLE); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class LinkUserGroupUserRolePath extends LinkUserGroupUserRole implements Path { + public LinkUserGroupUserRolePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private LinkUserGroupUserRolePath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public LinkUserGroupUserRolePath as(String alias) { + return new LinkUserGroupUserRolePath(DSL.name(alias), this); + } + + @Override + public LinkUserGroupUserRolePath as(Name alias) { + return new LinkUserGroupUserRolePath(alias, this); + } + + @Override + public LinkUserGroupUserRolePath as(Table alias) { + return new LinkUserGroupUserRolePath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_GROUP_ROLE; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_GROUP_ROLE); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_GROUP, Keys.LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_ROLE); + } + + private transient UserGroupPath _userGroup; + + /** + * Get the implicit join path to the security.user_group table. + */ + public UserGroupPath userGroup() { + if (_userGroup == null) + _userGroup = new UserGroupPath(this, Keys.LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_GROUP, null); + + return _userGroup; + } + + private transient UserRolePath _userRole; + + /** + * Get the implicit join path to the security.user_role table. + */ + public UserRolePath userRole() { + if (_userRole == null) + _userRole = new UserRolePath(this, Keys.LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_ROLE, null); + + return _userRole; + } + + @Override + public LinkUserGroupUserRole as(String alias) { + return new LinkUserGroupUserRole(DSL.name(alias), this); + } + + @Override + public LinkUserGroupUserRole as(Name alias) { + return new LinkUserGroupUserRole(alias, this); + } + + @Override + public LinkUserGroupUserRole as(Table alias) { + return new LinkUserGroupUserRole(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public LinkUserGroupUserRole rename(String name) { + return new LinkUserGroupUserRole(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public LinkUserGroupUserRole rename(Name name) { + return new LinkUserGroupUserRole(name, null); + } + + /** + * Rename this table + */ + @Override + public LinkUserGroupUserRole rename(Table name) { + return new LinkUserGroupUserRole(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserGroupUserRole where(Condition condition) { + return new LinkUserGroupUserRole(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserGroupUserRole where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserGroupUserRole where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserGroupUserRole where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserGroupUserRole where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserGroupUserRole where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserGroupUserRole where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserGroupUserRole where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserGroupUserRole whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserGroupUserRole whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserRoleAuthority.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserRoleAuthority.java new file mode 100644 index 0000000..f046c87 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/LinkUserRoleAuthority.java @@ -0,0 +1,310 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.Authority.AuthorityPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole.UserRolePath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.LinkUserRoleAuthorityRecord; + +import java.sql.Timestamp; +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 LinkUserRoleAuthority extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.link_user_role_authority + */ + public static final LinkUserRoleAuthority LINK_USER_ROLE_AUTHORITY = new LinkUserRoleAuthority(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return LinkUserRoleAuthorityRecord.class; + } + + /** + * The column + * security.link_user_role_authority.user_role_authority_id. + */ + public final TableField USER_ROLE_AUTHORITY_ID = createField(DSL.name("user_role_authority_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.link_user_role_authority.user_role_id. + */ + public final TableField USER_ROLE_ID = createField(DSL.name("user_role_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.link_user_role_authority.authority_id. + */ + public final TableField AUTHORITY_ID = createField(DSL.name("authority_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.link_user_role_authority.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private LinkUserRoleAuthority(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private LinkUserRoleAuthority(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.link_user_role_authority table + * reference + */ + public LinkUserRoleAuthority(String alias) { + this(DSL.name(alias), LINK_USER_ROLE_AUTHORITY); + } + + /** + * Create an aliased security.link_user_role_authority table + * reference + */ + public LinkUserRoleAuthority(Name alias) { + this(alias, LINK_USER_ROLE_AUTHORITY); + } + + /** + * Create a security.link_user_role_authority table reference + */ + public LinkUserRoleAuthority() { + this(DSL.name("link_user_role_authority"), null); + } + + public LinkUserRoleAuthority(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, LINK_USER_ROLE_AUTHORITY); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class LinkUserRoleAuthorityPath extends LinkUserRoleAuthority implements Path { + public LinkUserRoleAuthorityPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private LinkUserRoleAuthorityPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public LinkUserRoleAuthorityPath as(String alias) { + return new LinkUserRoleAuthorityPath(DSL.name(alias), this); + } + + @Override + public LinkUserRoleAuthorityPath as(Name alias) { + return new LinkUserRoleAuthorityPath(alias, this); + } + + @Override + public LinkUserRoleAuthorityPath as(Table alias) { + return new LinkUserRoleAuthorityPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_ROLE_AUTHORITY; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_ROLE_AUTHORITY); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_ROLE, Keys.LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_AUTHORITY); + } + + private transient UserRolePath _userRole; + + /** + * Get the implicit join path to the security.user_role table. + */ + public UserRolePath userRole() { + if (_userRole == null) + _userRole = new UserRolePath(this, Keys.LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_ROLE, null); + + return _userRole; + } + + private transient AuthorityPath _authority; + + /** + * Get the implicit join path to the security.authority table. + */ + public AuthorityPath authority() { + if (_authority == null) + _authority = new AuthorityPath(this, Keys.LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_AUTHORITY, null); + + return _authority; + } + + @Override + public LinkUserRoleAuthority as(String alias) { + return new LinkUserRoleAuthority(DSL.name(alias), this); + } + + @Override + public LinkUserRoleAuthority as(Name alias) { + return new LinkUserRoleAuthority(alias, this); + } + + @Override + public LinkUserRoleAuthority as(Table alias) { + return new LinkUserRoleAuthority(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public LinkUserRoleAuthority rename(String name) { + return new LinkUserRoleAuthority(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public LinkUserRoleAuthority rename(Name name) { + return new LinkUserRoleAuthority(name, null); + } + + /** + * Rename this table + */ + @Override + public LinkUserRoleAuthority rename(Table name) { + return new LinkUserRoleAuthority(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserRoleAuthority where(Condition condition) { + return new LinkUserRoleAuthority(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserRoleAuthority where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserRoleAuthority where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserRoleAuthority where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserRoleAuthority where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserRoleAuthority where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserRoleAuthority where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserRoleAuthority where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserRoleAuthority whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserRoleAuthority whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/OrgUnit.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/OrgUnit.java new file mode 100644 index 0000000..979727e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/OrgUnit.java @@ -0,0 +1,312 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.OrgUnit.OrgUnitPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.OrgUnitRecord; + +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 OrgUnit extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.org_unit + */ + public static final OrgUnit ORG_UNIT = new OrgUnit(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return OrgUnitRecord.class; + } + + /** + * The column security.org_unit.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.org_unit.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR(1000).nullable(false), this, ""); + + /** + * The column security.org_unit.code. + */ + public final TableField CODE = createField(DSL.name("code"), SQLDataType.VARCHAR(50).nullable(false), this, ""); + + /** + * The column security.org_unit.parent_id. + */ + public final TableField PARENT_ID = createField(DSL.name("parent_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column security.org_unit.removed. + */ + public final TableField REMOVED = createField(DSL.name("removed"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); + + private OrgUnit(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private OrgUnit(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.org_unit table reference + */ + public OrgUnit(String alias) { + this(DSL.name(alias), ORG_UNIT); + } + + /** + * Create an aliased security.org_unit table reference + */ + public OrgUnit(Name alias) { + this(alias, ORG_UNIT); + } + + /** + * Create a security.org_unit table reference + */ + public OrgUnit() { + this(DSL.name("org_unit"), null); + } + + public OrgUnit(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, ORG_UNIT); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class OrgUnitPath extends OrgUnit implements Path { + public OrgUnitPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private OrgUnitPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public OrgUnitPath as(String alias) { + return new OrgUnitPath(DSL.name(alias), this); + } + + @Override + public OrgUnitPath as(Name alias) { + return new OrgUnitPath(alias, this); + } + + @Override + public OrgUnitPath as(Table alias) { + return new OrgUnitPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_ORG_UNIT; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.ORG_UNIT_CODE_KEY); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.ORG_UNIT__FK_ORG_UNIT_PARENT_ID); + } + + private transient OrgUnitPath _orgUnit; + + /** + * Get the implicit join path to the security.org_unit table. + */ + public OrgUnitPath orgUnit() { + if (_orgUnit == null) + _orgUnit = new OrgUnitPath(this, Keys.ORG_UNIT__FK_ORG_UNIT_PARENT_ID, null); + + return _orgUnit; + } + + private transient UserAccountPath _userAccount; + + /** + * Get the implicit to-many join path to the + * security.user_account table + */ + public UserAccountPath userAccount() { + if (_userAccount == null) + _userAccount = new UserAccountPath(this, null, Keys.USER_ACCOUNT__FK_USER_ORG_UNIT_ID.getInverseKey()); + + return _userAccount; + } + + @Override + public OrgUnit as(String alias) { + return new OrgUnit(DSL.name(alias), this); + } + + @Override + public OrgUnit as(Name alias) { + return new OrgUnit(alias, this); + } + + @Override + public OrgUnit as(Table alias) { + return new OrgUnit(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public OrgUnit rename(String name) { + return new OrgUnit(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public OrgUnit rename(Name name) { + return new OrgUnit(name, null); + } + + /** + * Rename this table + */ + @Override + public OrgUnit rename(Table name) { + return new OrgUnit(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnit where(Condition condition) { + return new OrgUnit(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnit where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnit where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnit where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnit where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnit where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnit where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnit where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnit whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnit whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccount.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccount.java new file mode 100644 index 0000000..cf825c2 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccount.java @@ -0,0 +1,395 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.EsiaUser.EsiaUserPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserAccountUserGroup.LinkUserAccountUserGroupPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.OrgUnit.OrgUnitPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccountRefreshToken.UserAccountRefreshTokenPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserAccountRecord; + +import java.sql.Timestamp; +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 UserAccount extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.user_account + */ + public static final UserAccount USER_ACCOUNT = new UserAccount(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserAccountRecord.class; + } + + /** + * The column security.user_account.user_account_id. + */ + public final TableField USER_ACCOUNT_ID = createField(DSL.name("user_account_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.user_account.email. + */ + public final TableField EMAIL = createField(DSL.name("email"), SQLDataType.VARCHAR(150).nullable(false), this, ""); + + /** + * The column security.user_account.first_name. + */ + public final TableField FIRST_NAME = createField(DSL.name("first_name"), SQLDataType.VARCHAR(100).nullable(false), this, ""); + + /** + * The column security.user_account.last_name. + */ + public final TableField LAST_NAME = createField(DSL.name("last_name"), SQLDataType.VARCHAR(100).nullable(false), this, ""); + + /** + * The column security.user_account.middle_name. + */ + public final TableField MIDDLE_NAME = createField(DSL.name("middle_name"), SQLDataType.VARCHAR(100), this, ""); + + /** + * The column security.user_account.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column security.user_account.updated. + */ + public final TableField UPDATED = createField(DSL.name("updated"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column security.user_account.locked. + */ + public final TableField LOCKED = createField(DSL.name("locked"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); + + /** + * The column security.user_account.org_unit_id. + */ + public final TableField ORG_UNIT_ID = createField(DSL.name("org_unit_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.user_account.username. + */ + public final TableField USERNAME = createField(DSL.name("username"), SQLDataType.VARCHAR(150).nullable(false), this, ""); + + /** + * The column security.user_account.phone. + */ + public final TableField PHONE = createField(DSL.name("phone"), SQLDataType.VARCHAR(16), this, ""); + + /** + * The column security.user_account.email_confirmed. + */ + public final TableField EMAIL_CONFIRMED = createField(DSL.name("email_confirmed"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.field(DSL.raw("true"), SQLDataType.BOOLEAN)), this, ""); + + /** + * The column security.user_account.user_source. + */ + public final TableField USER_SOURCE = createField(DSL.name("user_source"), SQLDataType.VARCHAR(20).nullable(false).defaultValue(DSL.field(DSL.raw("'LOCAL'::character varying"), SQLDataType.VARCHAR)), this, ""); + + /** + * The column security.user_account.source_name. + */ + public final TableField SOURCE_NAME = createField(DSL.name("source_name"), SQLDataType.VARCHAR(20), this, ""); + + private UserAccount(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserAccount(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.user_account table reference + */ + public UserAccount(String alias) { + this(DSL.name(alias), USER_ACCOUNT); + } + + /** + * Create an aliased security.user_account table reference + */ + public UserAccount(Name alias) { + this(alias, USER_ACCOUNT); + } + + /** + * Create a security.user_account table reference + */ + public UserAccount() { + this(DSL.name("user_account"), null); + } + + public UserAccount(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, USER_ACCOUNT); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class UserAccountPath extends UserAccount implements Path { + public UserAccountPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private UserAccountPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public UserAccountPath as(String alias) { + return new UserAccountPath(DSL.name(alias), this); + } + + @Override + public UserAccountPath as(Name alias) { + return new UserAccountPath(alias, this); + } + + @Override + public UserAccountPath as(Table alias) { + return new UserAccountPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_USER; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.USER_ACCOUNT_USERNAME_UNIQUE); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.USER_ACCOUNT__FK_USER_ORG_UNIT_ID); + } + + private transient OrgUnitPath _orgUnit; + + /** + * Get the implicit join path to the security.org_unit table. + */ + public OrgUnitPath orgUnit() { + if (_orgUnit == null) + _orgUnit = new OrgUnitPath(this, Keys.USER_ACCOUNT__FK_USER_ORG_UNIT_ID, null); + + return _orgUnit; + } + + private transient EsiaUserPath _esiaUser; + + /** + * Get the implicit to-many join path to the security.esia_user + * table + */ + public EsiaUserPath esiaUser() { + if (_esiaUser == null) + _esiaUser = new EsiaUserPath(this, null, Keys.ESIA_USER__FK_ESIA_USER1.getInverseKey()); + + return _esiaUser; + } + + private transient LinkUserAccountUserGroupPath _linkUserAccountUserGroup; + + /** + * Get the implicit to-many join path to the + * security.link_user_account_user_group table + */ + public LinkUserAccountUserGroupPath linkUserAccountUserGroup() { + if (_linkUserAccountUserGroup == null) + _linkUserAccountUserGroup = new LinkUserAccountUserGroupPath(this, null, Keys.LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_USER.getInverseKey()); + + return _linkUserAccountUserGroup; + } + + private transient UserAccountRefreshTokenPath _userAccountRefreshToken; + + /** + * Get the implicit to-many join path to the + * security.user_account_refresh_token table + */ + public UserAccountRefreshTokenPath userAccountRefreshToken() { + if (_userAccountRefreshToken == null) + _userAccountRefreshToken = new UserAccountRefreshTokenPath(this, null, Keys.USER_ACCOUNT_REFRESH_TOKEN__FK_USER_ACCOUNT_REFRESH_TOKEN.getInverseKey()); + + return _userAccountRefreshToken; + } + + /** + * Get the implicit many-to-many join path to the + * security.user_group table + */ + public UserGroupPath userGroup() { + return linkUserAccountUserGroup().userGroup(); + } + + @Override + public UserAccount as(String alias) { + return new UserAccount(DSL.name(alias), this); + } + + @Override + public UserAccount as(Name alias) { + return new UserAccount(alias, this); + } + + @Override + public UserAccount as(Table alias) { + return new UserAccount(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserAccount rename(String name) { + return new UserAccount(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserAccount rename(Name name) { + return new UserAccount(name, null); + } + + /** + * Rename this table + */ + @Override + public UserAccount rename(Table name) { + return new UserAccount(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccount where(Condition condition) { + return new UserAccount(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccount where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccount where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccount where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccount where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccount where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccount where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccount where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccount whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccount whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccountRefreshToken.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccountRefreshToken.java new file mode 100644 index 0000000..ad37446 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserAccountRefreshToken.java @@ -0,0 +1,302 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserAccountRefreshTokenRecord; + +import java.sql.Timestamp; +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 UserAccountRefreshToken extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * security.user_account_refresh_token + */ + public static final UserAccountRefreshToken USER_ACCOUNT_REFRESH_TOKEN = new UserAccountRefreshToken(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserAccountRefreshTokenRecord.class; + } + + /** + * The column + * security.user_account_refresh_token.user_account_refresh_token_id. + */ + public final TableField USER_ACCOUNT_REFRESH_TOKEN_ID = createField(DSL.name("user_account_refresh_token_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column + * security.user_account_refresh_token.user_account_id. + */ + public final TableField USER_ACCOUNT_ID = createField(DSL.name("user_account_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column + * security.user_account_refresh_token.refresh_token. + */ + public final TableField REFRESH_TOKEN = createField(DSL.name("refresh_token"), SQLDataType.CLOB, this, ""); + + /** + * The column security.user_account_refresh_token.access_token. + */ + public final TableField ACCESS_TOKEN = createField(DSL.name("access_token"), SQLDataType.CLOB, this, ""); + + /** + * The column + * security.user_account_refresh_token.expiration_time. + */ + public final TableField EXPIRATION_TIME = createField(DSL.name("expiration_time"), SQLDataType.TIMESTAMP(0), this, ""); + + private UserAccountRefreshToken(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserAccountRefreshToken(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.user_account_refresh_token table + * reference + */ + public UserAccountRefreshToken(String alias) { + this(DSL.name(alias), USER_ACCOUNT_REFRESH_TOKEN); + } + + /** + * Create an aliased security.user_account_refresh_token table + * reference + */ + public UserAccountRefreshToken(Name alias) { + this(alias, USER_ACCOUNT_REFRESH_TOKEN); + } + + /** + * Create a security.user_account_refresh_token table reference + */ + public UserAccountRefreshToken() { + this(DSL.name("user_account_refresh_token"), null); + } + + public UserAccountRefreshToken(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, USER_ACCOUNT_REFRESH_TOKEN); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class UserAccountRefreshTokenPath extends UserAccountRefreshToken implements Path { + public UserAccountRefreshTokenPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private UserAccountRefreshTokenPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public UserAccountRefreshTokenPath as(String alias) { + return new UserAccountRefreshTokenPath(DSL.name(alias), this); + } + + @Override + public UserAccountRefreshTokenPath as(Name alias) { + return new UserAccountRefreshTokenPath(alias, this); + } + + @Override + public UserAccountRefreshTokenPath as(Table alias) { + return new UserAccountRefreshTokenPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_USER_ACCOUNT_REFRESH_TOKEN; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.USER_ACCOUNT_REFRESH_TOKEN__FK_USER_ACCOUNT_REFRESH_TOKEN); + } + + private transient UserAccountPath _userAccount; + + /** + * Get the implicit join path to the security.user_account + * table. + */ + public UserAccountPath userAccount() { + if (_userAccount == null) + _userAccount = new UserAccountPath(this, Keys.USER_ACCOUNT_REFRESH_TOKEN__FK_USER_ACCOUNT_REFRESH_TOKEN, null); + + return _userAccount; + } + + @Override + public UserAccountRefreshToken as(String alias) { + return new UserAccountRefreshToken(DSL.name(alias), this); + } + + @Override + public UserAccountRefreshToken as(Name alias) { + return new UserAccountRefreshToken(alias, this); + } + + @Override + public UserAccountRefreshToken as(Table alias) { + return new UserAccountRefreshToken(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserAccountRefreshToken rename(String name) { + return new UserAccountRefreshToken(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserAccountRefreshToken rename(Name name) { + return new UserAccountRefreshToken(name, null); + } + + /** + * Rename this table + */ + @Override + public UserAccountRefreshToken rename(Table name) { + return new UserAccountRefreshToken(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountRefreshToken where(Condition condition) { + return new UserAccountRefreshToken(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountRefreshToken where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountRefreshToken where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountRefreshToken where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountRefreshToken where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountRefreshToken where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountRefreshToken where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountRefreshToken where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountRefreshToken whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountRefreshToken whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserGroup.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserGroup.java new file mode 100644 index 0000000..98a4e2e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserGroup.java @@ -0,0 +1,346 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.AccessLevel.AccessLevelPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserAccountUserGroup.LinkUserAccountUserGroupPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserGroupUserRole.LinkUserGroupUserRolePath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole.UserRolePath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserGroupRecord; + +import java.sql.Timestamp; +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 UserGroup extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.user_group + */ + public static final UserGroup USER_GROUP = new UserGroup(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserGroupRecord.class; + } + + /** + * The column security.user_group.user_group_id. + */ + public final TableField USER_GROUP_ID = createField(DSL.name("user_group_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.user_group.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column security.user_group.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column security.user_group.updated. + */ + public final TableField UPDATED = createField(DSL.name("updated"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column security.user_group.access_level_id. + */ + public final TableField ACCESS_LEVEL_ID = createField(DSL.name("access_level_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + private UserGroup(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserGroup(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.user_group table reference + */ + public UserGroup(String alias) { + this(DSL.name(alias), USER_GROUP); + } + + /** + * Create an aliased security.user_group table reference + */ + public UserGroup(Name alias) { + this(alias, USER_GROUP); + } + + /** + * Create a security.user_group table reference + */ + public UserGroup() { + this(DSL.name("user_group"), null); + } + + public UserGroup(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, USER_GROUP); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class UserGroupPath extends UserGroup implements Path { + public UserGroupPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private UserGroupPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public UserGroupPath as(String alias) { + return new UserGroupPath(DSL.name(alias), this); + } + + @Override + public UserGroupPath as(Name alias) { + return new UserGroupPath(alias, this); + } + + @Override + public UserGroupPath as(Table alias) { + return new UserGroupPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_GROUP; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_GROUP_NAME); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.USER_GROUP__FK_USER_GROUP_ACCESS_LEVEL); + } + + private transient AccessLevelPath _accessLevel; + + /** + * Get the implicit join path to the security.access_level + * table. + */ + public AccessLevelPath accessLevel() { + if (_accessLevel == null) + _accessLevel = new AccessLevelPath(this, Keys.USER_GROUP__FK_USER_GROUP_ACCESS_LEVEL, null); + + return _accessLevel; + } + + private transient LinkUserAccountUserGroupPath _linkUserAccountUserGroup; + + /** + * Get the implicit to-many join path to the + * security.link_user_account_user_group table + */ + public LinkUserAccountUserGroupPath linkUserAccountUserGroup() { + if (_linkUserAccountUserGroup == null) + _linkUserAccountUserGroup = new LinkUserAccountUserGroupPath(this, null, Keys.LINK_USER_ACCOUNT_USER_GROUP__FK_USER_GROUP_GROUP.getInverseKey()); + + return _linkUserAccountUserGroup; + } + + private transient LinkUserGroupUserRolePath _linkUserGroupUserRole; + + /** + * Get the implicit to-many join path to the + * security.link_user_group_user_role table + */ + public LinkUserGroupUserRolePath linkUserGroupUserRole() { + if (_linkUserGroupUserRole == null) + _linkUserGroupUserRole = new LinkUserGroupUserRolePath(this, null, Keys.LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_GROUP.getInverseKey()); + + return _linkUserGroupUserRole; + } + + /** + * Get the implicit many-to-many join path to the + * security.user_account table + */ + public UserAccountPath userAccount() { + return linkUserAccountUserGroup().userAccount(); + } + + /** + * Get the implicit many-to-many join path to the + * security.user_role table + */ + public UserRolePath userRole() { + return linkUserGroupUserRole().userRole(); + } + + @Override + public UserGroup as(String alias) { + return new UserGroup(DSL.name(alias), this); + } + + @Override + public UserGroup as(Name alias) { + return new UserGroup(alias, this); + } + + @Override + public UserGroup as(Table alias) { + return new UserGroup(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserGroup rename(String name) { + return new UserGroup(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserGroup rename(Name name) { + return new UserGroup(name, null); + } + + /** + * Rename this table + */ + @Override + public UserGroup rename(Table name) { + return new UserGroup(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserGroup where(Condition condition) { + return new UserGroup(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserGroup where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserGroup where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserGroup where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserGroup where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserGroup where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserGroup where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserGroup where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserGroup whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserGroup whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserRole.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserRole.java new file mode 100644 index 0000000..ac47dd2 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/UserRole.java @@ -0,0 +1,322 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.Keys; +import ervu_dashboard.ervu_dashboard.db_beans.security.Security; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.Authority.AuthorityPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserGroupUserRole.LinkUserGroupUserRolePath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserRoleAuthority.LinkUserRoleAuthorityPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.records.UserRoleRecord; + +import java.sql.Timestamp; +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 UserRole extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.user_role + */ + public static final UserRole USER_ROLE = new UserRole(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserRoleRecord.class; + } + + /** + * The column security.user_role.user_role_id. + */ + public final TableField USER_ROLE_ID = createField(DSL.name("user_role_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.user_role.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column security.user_role.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column security.user_role.updated. + */ + public final TableField UPDATED = createField(DSL.name("updated"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private UserRole(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserRole(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.user_role table reference + */ + public UserRole(String alias) { + this(DSL.name(alias), USER_ROLE); + } + + /** + * Create an aliased security.user_role table reference + */ + public UserRole(Name alias) { + this(alias, USER_ROLE); + } + + /** + * Create a security.user_role table reference + */ + public UserRole() { + this(DSL.name("user_role"), null); + } + + public UserRole(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, USER_ROLE); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class UserRolePath extends UserRole implements Path { + public UserRolePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private UserRolePath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public UserRolePath as(String alias) { + return new UserRolePath(DSL.name(alias), this); + } + + @Override + public UserRolePath as(Name alias) { + return new UserRolePath(alias, this); + } + + @Override + public UserRolePath as(Table alias) { + return new UserRolePath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_ROLE; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_ROLE_NAME); + } + + private transient LinkUserGroupUserRolePath _linkUserGroupUserRole; + + /** + * Get the implicit to-many join path to the + * security.link_user_group_user_role table + */ + public LinkUserGroupUserRolePath linkUserGroupUserRole() { + if (_linkUserGroupUserRole == null) + _linkUserGroupUserRole = new LinkUserGroupUserRolePath(this, null, Keys.LINK_USER_GROUP_USER_ROLE__FK_GROUP_ROLE_ROLE.getInverseKey()); + + return _linkUserGroupUserRole; + } + + private transient LinkUserRoleAuthorityPath _linkUserRoleAuthority; + + /** + * Get the implicit to-many join path to the + * security.link_user_role_authority table + */ + public LinkUserRoleAuthorityPath linkUserRoleAuthority() { + if (_linkUserRoleAuthority == null) + _linkUserRoleAuthority = new LinkUserRoleAuthorityPath(this, null, Keys.LINK_USER_ROLE_AUTHORITY__FK_ROLE_AUTHORITY_ROLE.getInverseKey()); + + return _linkUserRoleAuthority; + } + + /** + * Get the implicit many-to-many join path to the + * security.user_group table + */ + public UserGroupPath userGroup() { + return linkUserGroupUserRole().userGroup(); + } + + /** + * Get the implicit many-to-many join path to the + * security.authority table + */ + public AuthorityPath authority() { + return linkUserRoleAuthority().authority(); + } + + @Override + public UserRole as(String alias) { + return new UserRole(DSL.name(alias), this); + } + + @Override + public UserRole as(Name alias) { + return new UserRole(alias, this); + } + + @Override + public UserRole as(Table alias) { + return new UserRole(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserRole rename(String name) { + return new UserRole(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserRole rename(Name name) { + return new UserRole(name, null); + } + + /** + * Rename this table + */ + @Override + public UserRole rename(Table name) { + return new UserRole(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserRole where(Condition condition) { + return new UserRole(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserRole where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserRole where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserRole where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserRole where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserRole where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserRole where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserRole where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserRole whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserRole whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AccessLevelRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AccessLevelRecord.java new file mode 100644 index 0000000..b3e323b --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AccessLevelRecord.java @@ -0,0 +1,94 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.AccessLevel; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class AccessLevelRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.access_level.access_level_id. + */ + public void setAccessLevelId(String value) { + set(0, value); + } + + /** + * Getter for security.access_level.access_level_id. + */ + public String getAccessLevelId() { + return (String) get(0); + } + + /** + * Setter for security.access_level.level. + */ + public void setLevel(Short value) { + set(1, value); + } + + /** + * Getter for security.access_level.level. + */ + public Short getLevel() { + return (Short) get(1); + } + + /** + * Setter for security.access_level.description. + */ + public void setDescription(String value) { + set(2, value); + } + + /** + * Getter for security.access_level.description. + */ + public String getDescription() { + return (String) get(2); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached AccessLevelRecord + */ + public AccessLevelRecord() { + super(AccessLevel.ACCESS_LEVEL); + } + + /** + * Create a detached, initialised AccessLevelRecord + */ + public AccessLevelRecord(String accessLevelId, Short level, String description) { + super(AccessLevel.ACCESS_LEVEL); + + setAccessLevelId(accessLevelId); + setLevel(level); + setDescription(description); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AuthorityRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AuthorityRecord.java new file mode 100644 index 0000000..b7d4fdd --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/AuthorityRecord.java @@ -0,0 +1,96 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.Authority; + +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 AuthorityRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.authority.authority_id. + */ + public void setAuthorityId(String value) { + set(0, value); + } + + /** + * Getter for security.authority.authority_id. + */ + public String getAuthorityId() { + return (String) get(0); + } + + /** + * Setter for security.authority.name. + */ + public void setName(String value) { + set(1, value); + } + + /** + * Getter for security.authority.name. + */ + public String getName() { + return (String) get(1); + } + + /** + * Setter for security.authority.created. + */ + public void setCreated(Timestamp value) { + set(2, value); + } + + /** + * Getter for security.authority.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(2); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached AuthorityRecord + */ + public AuthorityRecord() { + super(Authority.AUTHORITY); + } + + /** + * Create a detached, initialised AuthorityRecord + */ + public AuthorityRecord(String authorityId, String name, Timestamp created) { + super(Authority.AUTHORITY); + + setAuthorityId(authorityId); + setName(name); + setCreated(created); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/EsiaUserRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/EsiaUserRecord.java new file mode 100644 index 0000000..1353f27 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/EsiaUserRecord.java @@ -0,0 +1,94 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.EsiaUser; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class EsiaUserRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.esia_user.esia_user_id. + */ + public void setEsiaUserId(String value) { + set(0, value); + } + + /** + * Getter for security.esia_user.esia_user_id. + */ + public String getEsiaUserId() { + return (String) get(0); + } + + /** + * Setter for security.esia_user.user_account_id. + */ + public void setUserAccountId(String value) { + set(1, value); + } + + /** + * Getter for security.esia_user.user_account_id. + */ + public String getUserAccountId() { + return (String) get(1); + } + + /** + * Setter for security.esia_user.person_contact_id. + */ + public void setPersonContactId(Long value) { + set(2, value); + } + + /** + * Getter for security.esia_user.person_contact_id. + */ + public Long getPersonContactId() { + return (Long) get(2); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached EsiaUserRecord + */ + public EsiaUserRecord() { + super(EsiaUser.ESIA_USER); + } + + /** + * Create a detached, initialised EsiaUserRecord + */ + public EsiaUserRecord(String esiaUserId, String userAccountId, Long personContactId) { + super(EsiaUser.ESIA_USER); + + setEsiaUserId(esiaUserId); + setUserAccountId(userAccountId); + setPersonContactId(personContactId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserAccountUserGroupRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserAccountUserGroupRecord.java new file mode 100644 index 0000000..0c19903 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserAccountUserGroupRecord.java @@ -0,0 +1,117 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserAccountUserGroup; + +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 LinkUserAccountUserGroupRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * security.link_user_account_user_group.link_user_account_user_group_id. + */ + public void setLinkUserAccountUserGroupId(String value) { + set(0, value); + } + + /** + * Getter for + * security.link_user_account_user_group.link_user_account_user_group_id. + */ + public String getLinkUserAccountUserGroupId() { + return (String) get(0); + } + + /** + * Setter for + * security.link_user_account_user_group.user_account_id. + */ + public void setUserAccountId(String value) { + set(1, value); + } + + /** + * Getter for + * security.link_user_account_user_group.user_account_id. + */ + public String getUserAccountId() { + return (String) get(1); + } + + /** + * Setter for + * security.link_user_account_user_group.user_group_id. + */ + public void setUserGroupId(String value) { + set(2, value); + } + + /** + * Getter for + * security.link_user_account_user_group.user_group_id. + */ + public String getUserGroupId() { + return (String) get(2); + } + + /** + * Setter for security.link_user_account_user_group.created. + */ + public void setCreated(Timestamp value) { + set(3, value); + } + + /** + * Getter for security.link_user_account_user_group.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached LinkUserAccountUserGroupRecord + */ + public LinkUserAccountUserGroupRecord() { + super(LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP); + } + + /** + * Create a detached, initialised LinkUserAccountUserGroupRecord + */ + public LinkUserAccountUserGroupRecord(String linkUserAccountUserGroupId, String userAccountId, String userGroupId, Timestamp created) { + super(LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP); + + setLinkUserAccountUserGroupId(linkUserAccountUserGroupId); + setUserAccountId(userAccountId); + setUserGroupId(userGroupId); + setCreated(created); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserGroupUserRoleRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserGroupUserRoleRecord.java new file mode 100644 index 0000000..4c0dbdf --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserGroupUserRoleRecord.java @@ -0,0 +1,113 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserGroupUserRole; + +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 LinkUserGroupUserRoleRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * security.link_user_group_user_role.link_user_group_user_role_id. + */ + public void setLinkUserGroupUserRoleId(String value) { + set(0, value); + } + + /** + * Getter for + * security.link_user_group_user_role.link_user_group_user_role_id. + */ + public String getLinkUserGroupUserRoleId() { + return (String) get(0); + } + + /** + * Setter for security.link_user_group_user_role.user_group_id. + */ + public void setUserGroupId(String value) { + set(1, value); + } + + /** + * Getter for security.link_user_group_user_role.user_group_id. + */ + public String getUserGroupId() { + return (String) get(1); + } + + /** + * Setter for security.link_user_group_user_role.user_role_id. + */ + public void setUserRoleId(String value) { + set(2, value); + } + + /** + * Getter for security.link_user_group_user_role.user_role_id. + */ + public String getUserRoleId() { + return (String) get(2); + } + + /** + * Setter for security.link_user_group_user_role.created. + */ + public void setCreated(Timestamp value) { + set(3, value); + } + + /** + * Getter for security.link_user_group_user_role.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached LinkUserGroupUserRoleRecord + */ + public LinkUserGroupUserRoleRecord() { + super(LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE); + } + + /** + * Create a detached, initialised LinkUserGroupUserRoleRecord + */ + public LinkUserGroupUserRoleRecord(String linkUserGroupUserRoleId, String userGroupId, String userRoleId, Timestamp created) { + super(LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE); + + setLinkUserGroupUserRoleId(linkUserGroupUserRoleId); + setUserGroupId(userGroupId); + setUserRoleId(userRoleId); + setCreated(created); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserRoleAuthorityRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserRoleAuthorityRecord.java new file mode 100644 index 0000000..57e1c17 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/LinkUserRoleAuthorityRecord.java @@ -0,0 +1,113 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserRoleAuthority; + +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 LinkUserRoleAuthorityRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * security.link_user_role_authority.user_role_authority_id. + */ + public void setUserRoleAuthorityId(String value) { + set(0, value); + } + + /** + * Getter for + * security.link_user_role_authority.user_role_authority_id. + */ + public String getUserRoleAuthorityId() { + return (String) get(0); + } + + /** + * Setter for security.link_user_role_authority.user_role_id. + */ + public void setUserRoleId(String value) { + set(1, value); + } + + /** + * Getter for security.link_user_role_authority.user_role_id. + */ + public String getUserRoleId() { + return (String) get(1); + } + + /** + * Setter for security.link_user_role_authority.authority_id. + */ + public void setAuthorityId(String value) { + set(2, value); + } + + /** + * Getter for security.link_user_role_authority.authority_id. + */ + public String getAuthorityId() { + return (String) get(2); + } + + /** + * Setter for security.link_user_role_authority.created. + */ + public void setCreated(Timestamp value) { + set(3, value); + } + + /** + * Getter for security.link_user_role_authority.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached LinkUserRoleAuthorityRecord + */ + public LinkUserRoleAuthorityRecord() { + super(LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY); + } + + /** + * Create a detached, initialised LinkUserRoleAuthorityRecord + */ + public LinkUserRoleAuthorityRecord(String userRoleAuthorityId, String userRoleId, String authorityId, Timestamp created) { + super(LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY); + + setUserRoleAuthorityId(userRoleAuthorityId); + setUserRoleId(userRoleId); + setAuthorityId(authorityId); + setCreated(created); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/OrgUnitRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/OrgUnitRecord.java new file mode 100644 index 0000000..7ea94d7 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/OrgUnitRecord.java @@ -0,0 +1,124 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.OrgUnit; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class OrgUnitRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.org_unit.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for security.org_unit.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for security.org_unit.name. + */ + public void setName(String value) { + set(1, value); + } + + /** + * Getter for security.org_unit.name. + */ + public String getName() { + return (String) get(1); + } + + /** + * Setter for security.org_unit.code. + */ + public void setCode(String value) { + set(2, value); + } + + /** + * Getter for security.org_unit.code. + */ + public String getCode() { + return (String) get(2); + } + + /** + * Setter for security.org_unit.parent_id. + */ + public void setParentId(String value) { + set(3, value); + } + + /** + * Getter for security.org_unit.parent_id. + */ + public String getParentId() { + return (String) get(3); + } + + /** + * Setter for security.org_unit.removed. + */ + public void setRemoved(Boolean value) { + set(4, value); + } + + /** + * Getter for security.org_unit.removed. + */ + public Boolean getRemoved() { + return (Boolean) get(4); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached OrgUnitRecord + */ + public OrgUnitRecord() { + super(OrgUnit.ORG_UNIT); + } + + /** + * Create a detached, initialised OrgUnitRecord + */ + public OrgUnitRecord(String id, String name, String code, String parentId, Boolean removed) { + super(OrgUnit.ORG_UNIT); + + setId(id); + setName(name); + setCode(code); + setParentId(parentId); + setRemoved(removed); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRecord.java new file mode 100644 index 0000000..3995de9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRecord.java @@ -0,0 +1,261 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount; + +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 UserAccountRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.user_account.user_account_id. + */ + public void setUserAccountId(String value) { + set(0, value); + } + + /** + * Getter for security.user_account.user_account_id. + */ + public String getUserAccountId() { + return (String) get(0); + } + + /** + * Setter for security.user_account.email. + */ + public void setEmail(String value) { + set(1, value); + } + + /** + * Getter for security.user_account.email. + */ + public String getEmail() { + return (String) get(1); + } + + /** + * Setter for security.user_account.first_name. + */ + public void setFirstName(String value) { + set(2, value); + } + + /** + * Getter for security.user_account.first_name. + */ + public String getFirstName() { + return (String) get(2); + } + + /** + * Setter for security.user_account.last_name. + */ + public void setLastName(String value) { + set(3, value); + } + + /** + * Getter for security.user_account.last_name. + */ + public String getLastName() { + return (String) get(3); + } + + /** + * Setter for security.user_account.middle_name. + */ + public void setMiddleName(String value) { + set(4, value); + } + + /** + * Getter for security.user_account.middle_name. + */ + public String getMiddleName() { + return (String) get(4); + } + + /** + * Setter for security.user_account.created. + */ + public void setCreated(Timestamp value) { + set(5, value); + } + + /** + * Getter for security.user_account.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(5); + } + + /** + * Setter for security.user_account.updated. + */ + public void setUpdated(Timestamp value) { + set(6, value); + } + + /** + * Getter for security.user_account.updated. + */ + public Timestamp getUpdated() { + return (Timestamp) get(6); + } + + /** + * Setter for security.user_account.locked. + */ + public void setLocked(Boolean value) { + set(7, value); + } + + /** + * Getter for security.user_account.locked. + */ + public Boolean getLocked() { + return (Boolean) get(7); + } + + /** + * Setter for security.user_account.org_unit_id. + */ + public void setOrgUnitId(String value) { + set(8, value); + } + + /** + * Getter for security.user_account.org_unit_id. + */ + public String getOrgUnitId() { + return (String) get(8); + } + + /** + * Setter for security.user_account.username. + */ + public void setUsername(String value) { + set(9, value); + } + + /** + * Getter for security.user_account.username. + */ + public String getUsername() { + return (String) get(9); + } + + /** + * Setter for security.user_account.phone. + */ + public void setPhone(String value) { + set(10, value); + } + + /** + * Getter for security.user_account.phone. + */ + public String getPhone() { + return (String) get(10); + } + + /** + * Setter for security.user_account.email_confirmed. + */ + public void setEmailConfirmed(Boolean value) { + set(11, value); + } + + /** + * Getter for security.user_account.email_confirmed. + */ + public Boolean getEmailConfirmed() { + return (Boolean) get(11); + } + + /** + * Setter for security.user_account.user_source. + */ + public void setUserSource(String value) { + set(12, value); + } + + /** + * Getter for security.user_account.user_source. + */ + public String getUserSource() { + return (String) get(12); + } + + /** + * Setter for security.user_account.source_name. + */ + public void setSourceName(String value) { + set(13, value); + } + + /** + * Getter for security.user_account.source_name. + */ + public String getSourceName() { + return (String) get(13); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserAccountRecord + */ + public UserAccountRecord() { + super(UserAccount.USER_ACCOUNT); + } + + /** + * Create a detached, initialised UserAccountRecord + */ + public UserAccountRecord(String userAccountId, String email, String firstName, String lastName, String middleName, Timestamp created, Timestamp updated, Boolean locked, String orgUnitId, String username, String phone, Boolean emailConfirmed, String userSource, String sourceName) { + super(UserAccount.USER_ACCOUNT); + + setUserAccountId(userAccountId); + setEmail(email); + setFirstName(firstName); + setLastName(lastName); + setMiddleName(middleName); + setCreated(created); + setUpdated(updated); + setLocked(locked); + setOrgUnitId(orgUnitId); + setUsername(username); + setPhone(phone); + setEmailConfirmed(emailConfirmed); + setUserSource(userSource); + setSourceName(sourceName); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRefreshTokenRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRefreshTokenRecord.java new file mode 100644 index 0000000..a9bc65d --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserAccountRefreshTokenRecord.java @@ -0,0 +1,134 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccountRefreshToken; + +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 UserAccountRefreshTokenRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * security.user_account_refresh_token.user_account_refresh_token_id. + */ + public void setUserAccountRefreshTokenId(String value) { + set(0, value); + } + + /** + * Getter for + * security.user_account_refresh_token.user_account_refresh_token_id. + */ + public String getUserAccountRefreshTokenId() { + return (String) get(0); + } + + /** + * Setter for + * security.user_account_refresh_token.user_account_id. + */ + public void setUserAccountId(String value) { + set(1, value); + } + + /** + * Getter for + * security.user_account_refresh_token.user_account_id. + */ + public String getUserAccountId() { + return (String) get(1); + } + + /** + * Setter for + * security.user_account_refresh_token.refresh_token. + */ + public void setRefreshToken(String value) { + set(2, value); + } + + /** + * Getter for + * security.user_account_refresh_token.refresh_token. + */ + public String getRefreshToken() { + return (String) get(2); + } + + /** + * Setter for security.user_account_refresh_token.access_token. + */ + public void setAccessToken(String value) { + set(3, value); + } + + /** + * Getter for security.user_account_refresh_token.access_token. + */ + public String getAccessToken() { + return (String) get(3); + } + + /** + * Setter for + * security.user_account_refresh_token.expiration_time. + */ + public void setExpirationTime(Timestamp value) { + set(4, value); + } + + /** + * Getter for + * security.user_account_refresh_token.expiration_time. + */ + public Timestamp getExpirationTime() { + return (Timestamp) get(4); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserAccountRefreshTokenRecord + */ + public UserAccountRefreshTokenRecord() { + super(UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN); + } + + /** + * Create a detached, initialised UserAccountRefreshTokenRecord + */ + public UserAccountRefreshTokenRecord(String userAccountRefreshTokenId, String userAccountId, String refreshToken, String accessToken, Timestamp expirationTime) { + super(UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN); + + setUserAccountRefreshTokenId(userAccountRefreshTokenId); + setUserAccountId(userAccountId); + setRefreshToken(refreshToken); + setAccessToken(accessToken); + setExpirationTime(expirationTime); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserGroupRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserGroupRecord.java new file mode 100644 index 0000000..ee11ce6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserGroupRecord.java @@ -0,0 +1,126 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup; + +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 UserGroupRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.user_group.user_group_id. + */ + public void setUserGroupId(String value) { + set(0, value); + } + + /** + * Getter for security.user_group.user_group_id. + */ + public String getUserGroupId() { + return (String) get(0); + } + + /** + * Setter for security.user_group.name. + */ + public void setName(String value) { + set(1, value); + } + + /** + * Getter for security.user_group.name. + */ + public String getName() { + return (String) get(1); + } + + /** + * Setter for security.user_group.created. + */ + public void setCreated(Timestamp value) { + set(2, value); + } + + /** + * Getter for security.user_group.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(2); + } + + /** + * Setter for security.user_group.updated. + */ + public void setUpdated(Timestamp value) { + set(3, value); + } + + /** + * Getter for security.user_group.updated. + */ + public Timestamp getUpdated() { + return (Timestamp) get(3); + } + + /** + * Setter for security.user_group.access_level_id. + */ + public void setAccessLevelId(String value) { + set(4, value); + } + + /** + * Getter for security.user_group.access_level_id. + */ + public String getAccessLevelId() { + return (String) get(4); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserGroupRecord + */ + public UserGroupRecord() { + super(UserGroup.USER_GROUP); + } + + /** + * Create a detached, initialised UserGroupRecord + */ + public UserGroupRecord(String userGroupId, String name, Timestamp created, Timestamp updated, String accessLevelId) { + super(UserGroup.USER_GROUP); + + setUserGroupId(userGroupId); + setName(name); + setCreated(created); + setUpdated(updated); + setAccessLevelId(accessLevelId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserRoleRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserRoleRecord.java new file mode 100644 index 0000000..cb37569 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/security/tables/records/UserRoleRecord.java @@ -0,0 +1,111 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.security.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserRole; + +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 UserRoleRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.user_role.user_role_id. + */ + public void setUserRoleId(String value) { + set(0, value); + } + + /** + * Getter for security.user_role.user_role_id. + */ + public String getUserRoleId() { + return (String) get(0); + } + + /** + * Setter for security.user_role.name. + */ + public void setName(String value) { + set(1, value); + } + + /** + * Getter for security.user_role.name. + */ + public String getName() { + return (String) get(1); + } + + /** + * Setter for security.user_role.created. + */ + public void setCreated(Timestamp value) { + set(2, value); + } + + /** + * Getter for security.user_role.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(2); + } + + /** + * Setter for security.user_role.updated. + */ + public void setUpdated(Timestamp value) { + set(3, value); + } + + /** + * Getter for security.user_role.updated. + */ + public Timestamp getUpdated() { + return (Timestamp) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserRoleRecord + */ + public UserRoleRecord() { + super(UserRole.USER_ROLE); + } + + /** + * Create a detached, initialised UserRoleRecord + */ + public UserRoleRecord(String userRoleId, String name, Timestamp created, Timestamp updated) { + super(UserRole.USER_ROLE); + + setUserRoleId(userRoleId); + setName(name); + setCreated(created); + setUpdated(updated); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Keys.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Keys.java new file mode 100644 index 0000000..c8c79c8 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Keys.java @@ -0,0 +1,37 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space; + + +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.records.MilitaryCommissariatRecord; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.MilitaryDistrictRecord; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.RegionRecord; +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.records.TestrecruitmentRecord; + +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 + * space. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Keys { + + // ------------------------------------------------------------------------- + // UNIQUE and PRIMARY KEY definitions + // ------------------------------------------------------------------------- + + public static final UniqueKey PK_MILITARY_COMMISSARIAT = Internal.createUniqueKey(MilitaryCommissariat.MILITARY_COMMISSARIAT, DSL.name("pk_military_commissariat"), new TableField[] { MilitaryCommissariat.MILITARY_COMMISSARIAT.ID_MILITARY_COMMISSARIAT }, true); + public static final UniqueKey MILITARY_DISTRICT_PKEY = Internal.createUniqueKey(MilitaryDistrict.MILITARY_DISTRICT, DSL.name("military_district_pkey"), new TableField[] { MilitaryDistrict.MILITARY_DISTRICT.ID_MILITARY_DISTRICT }, true); + public static final UniqueKey PK_REGION = Internal.createUniqueKey(Region.REGION, DSL.name("pk_region"), new TableField[] { Region.REGION.ID_REGION }, true); + public static final UniqueKey TESTRECRUITMENT_PKEY = Internal.createUniqueKey(Testrecruitment.TESTRECRUITMENT, DSL.name("testrecruitment_pkey"), new TableField[] { Testrecruitment.TESTRECRUITMENT.ID }, true); +} 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 new file mode 100644 index 0000000..147557c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Space.java @@ -0,0 +1,76 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space; + + +import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; +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 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 Space extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of space + */ + public static final Space SPACE = new Space(); + + /** + * ミ漬セミオミスミスム巾オ ミコミセミシミクムムミームミクミームび + */ + public final MilitaryCommissariat MILITARY_COMMISSARIAT = MilitaryCommissariat.MILITARY_COMMISSARIAT; + + /** + * ミ漬セミオミスミスム巾オ ミセミコムムσウミー + */ + public final MilitaryDistrict MILITARY_DISTRICT = MilitaryDistrict.MILITARY_DISTRICT; + + /** + * ミミオミウミクミセミスム + */ + public final Region REGION = Region.REGION; + + /** + * The table space.testrecruitment. + */ + public final Testrecruitment TESTRECRUITMENT = Testrecruitment.TESTRECRUITMENT; + + /** + * No further instances allowed + */ + private Space() { + super("space", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + MilitaryCommissariat.MILITARY_COMMISSARIAT, + MilitaryDistrict.MILITARY_DISTRICT, + Region.REGION, + Testrecruitment.TESTRECRUITMENT + ); + } +} 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 new file mode 100644 index 0000000..3ac7f50 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/Tables.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space; + + +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; + + +/** + * Convenience access to all tables in space. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * ミ漬セミオミスミスム巾オ ミコミセミシミクムムミームミクミームび + */ + public static final MilitaryCommissariat MILITARY_COMMISSARIAT = MilitaryCommissariat.MILITARY_COMMISSARIAT; + + /** + * ミ漬セミオミスミスム巾オ ミセミコムムσウミー + */ + public static final MilitaryDistrict MILITARY_DISTRICT = MilitaryDistrict.MILITARY_DISTRICT; + + /** + * ミミオミウミクミセミスム + */ + public static final Region REGION = Region.REGION; + + /** + * The table space.testrecruitment. + */ + public static final Testrecruitment TESTRECRUITMENT = Testrecruitment.TESTRECRUITMENT; +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryCommissariat.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryCommissariat.java new file mode 100644 index 0000000..e45e6ae --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryCommissariat.java @@ -0,0 +1,234 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables; + + +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.MilitaryCommissariatRecord; + +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; + + +/** + * ミ漬セミオミスミスム巾オ ミコミセミシミクムムミームミクミームび + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MilitaryCommissariat extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of space.military_commissariat + */ + public static final MilitaryCommissariat MILITARY_COMMISSARIAT = new MilitaryCommissariat(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return MilitaryCommissariatRecord.class; + } + + /** + * The column + * space.military_commissariat.id_military_commissariat. + */ + public final TableField ID_MILITARY_COMMISSARIAT = createField(DSL.name("id_military_commissariat"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column + * space.military_commissariat.military_commissariat_name. + * ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミコミセミシミクムムミームミクミームひー + */ + public final TableField MILITARY_COMMISSARIAT_NAME = createField(DSL.name("military_commissariat_name"), SQLDataType.CLOB, this, "ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミコミセミシミクムムミームミクミームひー"); + + private MilitaryCommissariat(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private MilitaryCommissariat(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ漬セミオミスミスム巾オ ミコミセミシミクムムミームミクミームび"), TableOptions.table(), where); + } + + /** + * Create an aliased space.military_commissariat table + * reference + */ + public MilitaryCommissariat(String alias) { + this(DSL.name(alias), MILITARY_COMMISSARIAT); + } + + /** + * Create an aliased space.military_commissariat table + * reference + */ + public MilitaryCommissariat(Name alias) { + this(alias, MILITARY_COMMISSARIAT); + } + + /** + * Create a space.military_commissariat table reference + */ + public MilitaryCommissariat() { + this(DSL.name("military_commissariat"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Space.SPACE; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_MILITARY_COMMISSARIAT; + } + + @Override + public MilitaryCommissariat as(String alias) { + return new MilitaryCommissariat(DSL.name(alias), this); + } + + @Override + public MilitaryCommissariat as(Name alias) { + return new MilitaryCommissariat(alias, this); + } + + @Override + public MilitaryCommissariat as(Table alias) { + return new MilitaryCommissariat(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public MilitaryCommissariat rename(String name) { + return new MilitaryCommissariat(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public MilitaryCommissariat rename(Name name) { + return new MilitaryCommissariat(name, null); + } + + /** + * Rename this table + */ + @Override + public MilitaryCommissariat rename(Table name) { + return new MilitaryCommissariat(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryCommissariat where(Condition condition) { + return new MilitaryCommissariat(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryCommissariat where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryCommissariat where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryCommissariat where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryCommissariat where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryCommissariat where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryCommissariat where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryCommissariat where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryCommissariat whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryCommissariat whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryDistrict.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryDistrict.java new file mode 100644 index 0000000..fcad58a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/MilitaryDistrict.java @@ -0,0 +1,230 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables; + + +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.MilitaryDistrictRecord; + +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; + + +/** + * ミ漬セミオミスミスム巾オ ミセミコムムσウミー + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MilitaryDistrict extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of space.military_district + */ + public static final MilitaryDistrict MILITARY_DISTRICT = new MilitaryDistrict(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return MilitaryDistrictRecord.class; + } + + /** + * The column space.military_district.id_military_district. + */ + public final TableField ID_MILITARY_DISTRICT = createField(DSL.name("id_military_district"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column space.military_district.military_district_name. + * ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミセミコムムσウミー + */ + public final TableField MILITARY_DISTRICT_NAME = createField(DSL.name("military_district_name"), SQLDataType.CLOB, this, "ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミセミコムムσウミー"); + + private MilitaryDistrict(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private MilitaryDistrict(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ漬セミオミスミスム巾オ ミセミコムムσウミー"), TableOptions.table(), where); + } + + /** + * Create an aliased space.military_district table reference + */ + public MilitaryDistrict(String alias) { + this(DSL.name(alias), MILITARY_DISTRICT); + } + + /** + * Create an aliased space.military_district table reference + */ + public MilitaryDistrict(Name alias) { + this(alias, MILITARY_DISTRICT); + } + + /** + * Create a space.military_district table reference + */ + public MilitaryDistrict() { + this(DSL.name("military_district"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Space.SPACE; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.MILITARY_DISTRICT_PKEY; + } + + @Override + public MilitaryDistrict as(String alias) { + return new MilitaryDistrict(DSL.name(alias), this); + } + + @Override + public MilitaryDistrict as(Name alias) { + return new MilitaryDistrict(alias, this); + } + + @Override + public MilitaryDistrict as(Table alias) { + return new MilitaryDistrict(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public MilitaryDistrict rename(String name) { + return new MilitaryDistrict(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public MilitaryDistrict rename(Name name) { + return new MilitaryDistrict(name, null); + } + + /** + * Rename this table + */ + @Override + public MilitaryDistrict rename(Table name) { + return new MilitaryDistrict(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryDistrict where(Condition condition) { + return new MilitaryDistrict(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryDistrict where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryDistrict where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryDistrict where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryDistrict where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryDistrict where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryDistrict where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public MilitaryDistrict where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryDistrict whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public MilitaryDistrict whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..a08767c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Region.java @@ -0,0 +1,320 @@ +/* + * This file is generated by jOOQ. + */ +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.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; + +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; + + +/** + * ミミオミウミクミセミスム + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Region extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of space.region + */ + public static final Region REGION = new Region(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return RegionRecord.class; + } + + /** + * The column space.region.id_region. + */ + public final TableField ID_REGION = createField(DSL.name("id_region"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column space.region.region. ミ斷ーミクミシミオミスミセミイミーミスミクミオ ムミオミウミクミセミスミー + */ + public final TableField REGION_ = createField(DSL.name("region"), SQLDataType.CLOB, this, "ミ斷ーミクミシミオミスミセミイミーミスミクミオ ムミオミウミクミセミスミー"); + + private Region(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Region(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミミオミウミクミセミスム"), TableOptions.table(), where); + } + + /** + * Create an aliased space.region table reference + */ + public Region(String alias) { + this(DSL.name(alias), REGION); + } + + /** + * Create an aliased space.region table reference + */ + public Region(Name alias) { + this(alias, REGION); + } + + /** + * Create a space.region table reference + */ + public Region() { + this(DSL.name("region"), null); + } + + public Region(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, REGION); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class RegionPath extends Region implements Path { + public RegionPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private RegionPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public RegionPath as(String alias) { + return new RegionPath(DSL.name(alias), this); + } + + @Override + public RegionPath as(Name alias) { + return new RegionPath(alias, this); + } + + @Override + public RegionPath as(Table alias) { + return new RegionPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Space.SPACE; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_REGION; + } + + 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__FK_REGION.getInverseKey()); + + return _reviewRating; + } + + 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__FK_REGION.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__FK_REGION.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__FK_REGION.getInverseKey()); + + return _recruitment; + } + + @Override + public Region as(String alias) { + return new Region(DSL.name(alias), this); + } + + @Override + public Region as(Name alias) { + return new Region(alias, this); + } + + @Override + public Region as(Table alias) { + return new Region(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Region rename(String name) { + return new Region(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Region rename(Name name) { + return new Region(name, null); + } + + /** + * Rename this table + */ + @Override + public Region rename(Table name) { + return new Region(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Region where(Condition condition) { + return new Region(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Region where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Region where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Region where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Region where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Region where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Region where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Region where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Region whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Region whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..1b58460 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/Testrecruitment.java @@ -0,0 +1,223 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables; + + +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.TestrecruitmentRecord; + +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 Testrecruitment extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of space.testrecruitment + */ + public static final Testrecruitment TESTRECRUITMENT = new Testrecruitment(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return TestrecruitmentRecord.class; + } + + /** + * The column space.testrecruitment.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column space.testrecruitment.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.CHAR(300), this, ""); + + private Testrecruitment(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Testrecruitment(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased space.testrecruitment table reference + */ + public Testrecruitment(String alias) { + this(DSL.name(alias), TESTRECRUITMENT); + } + + /** + * Create an aliased space.testrecruitment table reference + */ + public Testrecruitment(Name alias) { + this(alias, TESTRECRUITMENT); + } + + /** + * Create a space.testrecruitment table reference + */ + public Testrecruitment() { + this(DSL.name("testrecruitment"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Space.SPACE; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.TESTRECRUITMENT_PKEY; + } + + @Override + public Testrecruitment as(String alias) { + return new Testrecruitment(DSL.name(alias), this); + } + + @Override + public Testrecruitment as(Name alias) { + return new Testrecruitment(alias, this); + } + + @Override + public Testrecruitment as(Table alias) { + return new Testrecruitment(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Testrecruitment rename(String name) { + return new Testrecruitment(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Testrecruitment rename(Name name) { + return new Testrecruitment(name, null); + } + + /** + * Rename this table + */ + @Override + public Testrecruitment rename(Table name) { + return new Testrecruitment(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Testrecruitment where(Condition condition) { + return new Testrecruitment(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Testrecruitment where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Testrecruitment where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Testrecruitment where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Testrecruitment where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Testrecruitment where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Testrecruitment where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Testrecruitment where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Testrecruitment whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Testrecruitment whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryCommissariatRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryCommissariatRecord.java new file mode 100644 index 0000000..eccac02 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryCommissariatRecord.java @@ -0,0 +1,85 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.MilitaryCommissariat; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ漬セミオミスミスム巾オ ミコミセミシミクムムミームミクミームび + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MilitaryCommissariatRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * space.military_commissariat.id_military_commissariat. + */ + public void setIdMilitaryCommissariat(Long value) { + set(0, value); + } + + /** + * Getter for + * space.military_commissariat.id_military_commissariat. + */ + public Long getIdMilitaryCommissariat() { + return (Long) get(0); + } + + /** + * Setter for + * space.military_commissariat.military_commissariat_name. + * ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミコミセミシミクムムミームミクミームひー + */ + public void setMilitaryCommissariatName(String value) { + set(1, value); + } + + /** + * Getter for + * space.military_commissariat.military_commissariat_name. + * ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミコミセミシミクムムミームミクミームひー + */ + public String getMilitaryCommissariatName() { + return (String) get(1); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached MilitaryCommissariatRecord + */ + public MilitaryCommissariatRecord() { + super(MilitaryCommissariat.MILITARY_COMMISSARIAT); + } + + /** + * Create a detached, initialised MilitaryCommissariatRecord + */ + public MilitaryCommissariatRecord(Long idMilitaryCommissariat, String militaryCommissariatName) { + super(MilitaryCommissariat.MILITARY_COMMISSARIAT); + + setIdMilitaryCommissariat(idMilitaryCommissariat); + setMilitaryCommissariatName(militaryCommissariatName); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryDistrictRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryDistrictRecord.java new file mode 100644 index 0000000..a56820a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/MilitaryDistrictRecord.java @@ -0,0 +1,81 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.MilitaryDistrict; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ漬セミオミスミスム巾オ ミセミコムムσウミー + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MilitaryDistrictRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for space.military_district.id_military_district. + */ + public void setIdMilitaryDistrict(Long value) { + set(0, value); + } + + /** + * Getter for space.military_district.id_military_district. + */ + public Long getIdMilitaryDistrict() { + return (Long) get(0); + } + + /** + * Setter for space.military_district.military_district_name. + * ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミセミコムムσウミー + */ + public void setMilitaryDistrictName(String value) { + set(1, value); + } + + /** + * Getter for space.military_district.military_district_name. + * ミ斷ーミクミシミオミスミセミイミーミスミクミオ ミイミセミオミスミスミセミウミセ ミセミコムムσウミー + */ + public String getMilitaryDistrictName() { + return (String) get(1); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached MilitaryDistrictRecord + */ + public MilitaryDistrictRecord() { + super(MilitaryDistrict.MILITARY_DISTRICT); + } + + /** + * Create a detached, initialised MilitaryDistrictRecord + */ + public MilitaryDistrictRecord(Long idMilitaryDistrict, String militaryDistrictName) { + super(MilitaryDistrict.MILITARY_DISTRICT); + + setIdMilitaryDistrict(idMilitaryDistrict); + setMilitaryDistrictName(militaryDistrictName); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/RegionRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/RegionRecord.java new file mode 100644 index 0000000..c1130e4 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/RegionRecord.java @@ -0,0 +1,79 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Region; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミミオミウミクミセミスム + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class RegionRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for space.region.id_region. + */ + public void setIdRegion(Long value) { + set(0, value); + } + + /** + * Getter for space.region.id_region. + */ + public Long getIdRegion() { + return (Long) get(0); + } + + /** + * Setter for space.region.region. ミ斷ーミクミシミオミスミセミイミーミスミクミオ ムミオミウミクミセミスミー + */ + public void setRegion(String value) { + set(1, value); + } + + /** + * Getter for space.region.region. ミ斷ーミクミシミオミスミセミイミーミスミクミオ ムミオミウミクミセミスミー + */ + public String getRegion() { + return (String) get(1); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached RegionRecord + */ + public RegionRecord() { + super(Region.REGION); + } + + /** + * Create a detached, initialised RegionRecord + */ + public RegionRecord(Long idRegion, String region) { + super(Region.REGION); + + setIdRegion(idRegion); + setRegion(region); + resetChangedOnNotNull(); + } +} 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 new file mode 100644 index 0000000..3746d9a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/space/tables/records/TestrecruitmentRecord.java @@ -0,0 +1,79 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.space.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.space.tables.Testrecruitment; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class TestrecruitmentRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for space.testrecruitment.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for space.testrecruitment.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for space.testrecruitment.name. + */ + public void setName(String value) { + set(1, value); + } + + /** + * Getter for space.testrecruitment.name. + */ + public String getName() { + return (String) get(1); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached TestrecruitmentRecord + */ + public TestrecruitmentRecord() { + super(Testrecruitment.TESTRECRUITMENT); + } + + /** + * Create a detached, initialised TestrecruitmentRecord + */ + public TestrecruitmentRecord(String id, String name) { + super(Testrecruitment.TESTRECRUITMENT); + + 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 new file mode 100644 index 0000000..d7b38ab --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Keys.java @@ -0,0 +1,69 @@ +/* + * This file is generated by jOOQ. + */ +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; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.DriverLicense; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.EducationLevel; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.MaritalStatus; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RegMilCat; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RemovedRegistry; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Subpoenas; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.AgeRecord; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.BusynessRecord; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.ChildMinorRecord; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.DriverLicenseRecord; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.EducationLevelRecord; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.MaritalStatusRecord; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records.RegMilCatRecord; +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; +import org.jooq.impl.Internal; + + +/** + * A class modelling foreign key relationships and constraints of tables in + * total_registered. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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); +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Tables.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Tables.java new file mode 100644 index 0000000..afc12e9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/Tables.java @@ -0,0 +1,73 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered; + + +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; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.DriverLicense; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.EducationLevel; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.MaritalStatus; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RegMilCat; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RemovedRegistry; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Subpoenas; + + +/** + * Convenience access to all tables in total_registered. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * ミ漬セミキムミームム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public static final Age AGE = Age.AGE; + + /** + * ミ厘ーミスム肖ひセムムび ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public static final Busyness BUSYNESS = Busyness.BUSYNESS; + + /** + * ミ頒オムひク ムひセ 18 ミサミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public static final ChildMinor CHILD_MINOR = ChildMinor.CHILD_MINOR; + + /** + * ミ斷ーミサミクムミクミオ ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, + * ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public static final DriverLicense DRIVER_LICENSE = DriverLicense.DRIVER_LICENSE; + + /** + * ミ」ムミセミイミオミスム ミセミアムミーミキミセミイミーミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public static final EducationLevel EDUCATION_LEVEL = EducationLevel.EDUCATION_LEVEL; + + /** + * ミ。ミオミシミオミケミスミセミオ ミソミセミサミセミカミオミスミクミオ ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public static final MaritalStatus MARITAL_STATUS = MaritalStatus.MARITAL_STATUS; + + /** + * ミ墟ームひオミウミセムミクミク ミソミセムムひーミスミセミイミコミク ミスミー ミイミセミクミスムミコミクミケ ムτミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public static final RegMilCat REG_MIL_CAT = RegMilCat.REG_MIL_CAT; + + /** + * ミ。ミスム肖ひセ ム ムτミオムひー ムτミセミイミオミスム ミミ、 + */ + public static final RemovedRegistry REMOVED_REGISTRY = RemovedRegistry.REMOVED_REGISTRY; + + /** + * ミ渙セミイミオムムひコミク ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public static final Subpoenas SUBPOENAS = Subpoenas.SUBPOENAS; +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/TotalRegistered.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/TotalRegistered.java new file mode 100644 index 0000000..9a06c96 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/TotalRegistered.java @@ -0,0 +1,116 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered; + + +import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog; +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; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.DriverLicense; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.EducationLevel; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.MaritalStatus; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RegMilCat; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RemovedRegistry; +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Subpoenas; + +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 TotalRegistered extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered + */ + public static final TotalRegistered TOTAL_REGISTERED = new TotalRegistered(); + + /** + * ミ漬セミキムミームム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public final Age AGE = Age.AGE; + + /** + * ミ厘ーミスム肖ひセムムび ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public final Busyness BUSYNESS = Busyness.BUSYNESS; + + /** + * ミ頒オムひク ムひセ 18 ミサミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public final ChildMinor CHILD_MINOR = ChildMinor.CHILD_MINOR; + + /** + * ミ斷ーミサミクムミクミオ ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, + * ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public final DriverLicense DRIVER_LICENSE = DriverLicense.DRIVER_LICENSE; + + /** + * ミ」ムミセミイミオミスム ミセミアムミーミキミセミイミーミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public final EducationLevel EDUCATION_LEVEL = EducationLevel.EDUCATION_LEVEL; + + /** + * ミ。ミオミシミオミケミスミセミオ ミソミセミサミセミカミオミスミクミオ ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public final MaritalStatus MARITAL_STATUS = MaritalStatus.MARITAL_STATUS; + + /** + * ミ墟ームひオミウミセムミクミク ミソミセムムひーミスミセミイミコミク ミスミー ミイミセミクミスムミコミクミケ ムτミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ + public final RegMilCat REG_MIL_CAT = RegMilCat.REG_MIL_CAT; + + /** + * ミ。ミスム肖ひセ ム ムτミオムひー ムτミセミイミオミスム ミミ、 + */ + public final RemovedRegistry REMOVED_REGISTRY = RemovedRegistry.REMOVED_REGISTRY; + + /** + * ミ渙セミイミオムムひコミク ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ + public final Subpoenas SUBPOENAS = Subpoenas.SUBPOENAS; + + /** + * No further instances allowed + */ + private TotalRegistered() { + super("total_registered", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + Age.AGE, + Busyness.BUSYNESS, + ChildMinor.CHILD_MINOR, + DriverLicense.DRIVER_LICENSE, + EducationLevel.EDUCATION_LEVEL, + MaritalStatus.MARITAL_STATUS, + RegMilCat.REG_MIL_CAT, + RemovedRegistry.REMOVED_REGISTRY, + Subpoenas.SUBPOENAS + ); + } +} 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 new file mode 100644 index 0000000..bdf1456 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Age.java @@ -0,0 +1,392 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 Age extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.age + */ + public static final Age AGE = new Age(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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 + */ + public final TableField _17_YAERS = createField(DSL.name("17_yaers"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 17"); + + /** + * The column total_registered.age.18-26_years. ミ漬セミキムミームム 18-26 + */ + public final TableField _18_26_YEARS = createField(DSL.name("18-26_years"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 18-26"); + + /** + * The column total_registered.age.27-30_years. ミ漬セミキムミームム 27-30 + */ + public final TableField _27_30_YEARS = createField(DSL.name("27-30_years"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 27-30"); + + /** + * The column total_registered.age.31-35_years. ミ漬セミキムミームム 31-35 + */ + public final TableField _31_35_YEARS = createField(DSL.name("31-35_years"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 31-35"); + + /** + * The column total_registered.age.36-40_years. ミ漬セミキムミームム 36-40 + */ + public final TableField _36_40_YEARS = createField(DSL.name("36-40_years"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 36-40"); + + /** + * The column total_registered.age.41-45_years. ミ漬セミキムミームム 41-45 + */ + public final TableField _41_45_YEARS = createField(DSL.name("41-45_years"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 41-45"); + + /** + * The column total_registered.age.51+_years. ミ漬セミキムミームム 51+ + */ + public final TableField _51_2b_YEARS = createField(DSL.name("51+_years"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 51+"); + + /** + * 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, "ミ。ミセムムひセミクム ミスミー ムτミオムひオ ミクミサミク ミスミオム"); + + /** + * The column total_registered.age.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column total_registered.age.46-50_years. ミ漬セミキムミームム 46-50 + */ + public final TableField _46_50_YEARS = createField(DSL.name("46-50_years"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 46-50"); + + /** + * The column total_registered.age.17_yaers_percent. ミ漬セミキムミームム 17 + * ミイ ミソムミセムミオミスムひーム + */ + public final TableField _17_YAERS_PERCENT = createField(DSL.name("17_yaers_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 17 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.18-26_years_percent. ミ漬セミキムミームム + * 18-26 ミイ ミソムミセムミオミスムひーム + */ + public final TableField _18_26_YEARS_PERCENT = createField(DSL.name("18-26_years_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 18-26 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.27-30_years_percent. ミ漬セミキムミームム + * 27-30 ミイ ミソムミセムミオミスムひーム + */ + public final TableField _27_30_YEARS_PERCENT = createField(DSL.name("27-30_years_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 27-30 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.31-35_years_percent. ミ漬セミキムミームム + * 31-35 ミイ ミソムミセムミオミスムひーム + */ + public final TableField _31_35_YEARS_PERCENT = createField(DSL.name("31-35_years_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 31-35 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.36-40_years_percent. ミ漬セミキムミームム + * 36-40 ミイ ミソムミセムミオミスムひーム + */ + public final TableField _36_40_YEARS_PERCENT = createField(DSL.name("36-40_years_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 36-40 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.41-45_years_percent. ミ漬セミキムミームム + * 41-45 ミイ ミソムミセムミオミスムひーム + */ + public final TableField _41_45_YEARS_PERCENT = createField(DSL.name("41-45_years_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 41-45 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.46-50_years_percent. ミ漬セミキムミームム + * 46-50 ミイ ミソムミセムミオミスムひーム + */ + public final TableField _46_50_YEARS_PERCENT = createField(DSL.name("46-50_years_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 46-50 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.51+_years_percent. ミ漬セミキムミームム + * 51+ ミイ ミソムミセムミオミスムひーム + */ + public final TableField _51_2b_YEARS_PERCENT = createField(DSL.name("51+_years_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキムミームム 51+ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.age.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private Age(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Age(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ漬セミキムミームム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.age table reference + */ + public Age(String alias) { + this(DSL.name(alias), AGE); + } + + /** + * Create an aliased total_registered.age table reference + */ + public Age(Name alias) { + this(alias, AGE); + } + + /** + * Create a total_registered.age table reference + */ + public Age() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public Age as(String alias) { + return new Age(DSL.name(alias), this); + } + + @Override + public Age as(Name alias) { + return new Age(alias, this); + } + + @Override + public Age as(Table alias) { + return new Age(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Age rename(String name) { + return new Age(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Age rename(Name name) { + return new Age(name, null); + } + + /** + * Rename this table + */ + @Override + public Age rename(Table name) { + return new Age(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Age where(Condition condition) { + return new Age(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Age where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Age where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Age where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Age where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Age where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Age where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Age where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Age whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Age whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..2912698 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Busyness.java @@ -0,0 +1,339 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 Busyness extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.busyness + */ + public static final Busyness BUSYNESS = new Busyness(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. ミ」ムミームびム + */ + public final TableField STUDY = createField(DSL.name("study"), SQLDataType.NUMERIC, this, "ミ」ムミームびム"); + + /** + * The column total_registered.busyness.work. ミミーミアミセムひーム紗 + */ + public final TableField WORK = createField(DSL.name("work"), SQLDataType.NUMERIC, this, "ミミーミアミセムひーム紗"); + + /** + * The column total_registered.busyness.not_work. ミ岱オミキムミーミアミセムひスム巾オ + */ + 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column total_registered.busyness.study_percent. ミ」ムミームびム ミイ + * ミソムミセムミオミスムひーム + */ + public final TableField STUDY_PERCENT = createField(DSL.name("study_percent"), SQLDataType.NUMERIC, this, "ミ」ムミームびム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.busyness.work_percent. ミミーミアミセムひーム紗 + * ミイ ミソムミセムミオミスムひーム + */ + public final TableField WORK_PERCENT = createField(DSL.name("work_percent"), SQLDataType.NUMERIC, this, "ミミーミアミセムひーム紗 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.busyness.not_work_percent. + * ミ岱オミキムミーミアミセムひスム巾オ ミイ ミソムミセムミオミスムひーム + */ + public final TableField NOT_WORK_PERCENT = createField(DSL.name("not_work_percent"), SQLDataType.NUMERIC, this, "ミ岱オミキムミーミアミセムひスム巾オ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.busyness.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private Busyness(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Busyness(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ厘ーミスム肖ひセムムび ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.busyness table reference + */ + public Busyness(String alias) { + this(DSL.name(alias), BUSYNESS); + } + + /** + * Create an aliased total_registered.busyness table reference + */ + public Busyness(Name alias) { + this(alias, BUSYNESS); + } + + /** + * Create a total_registered.busyness table reference + */ + public Busyness() { + 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; + } + + @Override + public Busyness as(String alias) { + return new Busyness(DSL.name(alias), this); + } + + @Override + public Busyness as(Name alias) { + return new Busyness(alias, this); + } + + @Override + public Busyness as(Table alias) { + return new Busyness(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Busyness rename(String name) { + return new Busyness(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Busyness rename(Name name) { + return new Busyness(name, null); + } + + /** + * Rename this table + */ + @Override + public Busyness rename(Table name) { + return new Busyness(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Busyness where(Condition condition) { + return new Busyness(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Busyness where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Busyness where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Busyness where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Busyness where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Busyness where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Busyness where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Busyness where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Busyness whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Busyness whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..a500b72 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/ChildMinor.java @@ -0,0 +1,359 @@ +/* + * This file is generated by jOOQ. + */ +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; +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; + + +/** + * ミ頒オムひク ムひセ 18 ミサミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ChildMinor extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.child_minor + */ + public static final ChildMinor CHILD_MINOR = new ChildMinor(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. ミ斷オム ミエミオムひオミケ + */ + public final TableField NO_CHILD = createField(DSL.name("no_child"), SQLDataType.NUMERIC, this, "ミ斷オム ミエミオムひオミケ"); + + /** + * The column total_registered.child_minor.1_child. 1 ムミオミアミオミスミセミコ + */ + public final TableField _1_CHILD = createField(DSL.name("1_child"), SQLDataType.NUMERIC, this, "1 ムミオミアミオミスミセミコ"); + + /** + * The column total_registered.child_minor.2_child. 2 ムミオミアミオミスミコミー + */ + public final TableField _2_CHILD = createField(DSL.name("2_child"), SQLDataType.NUMERIC, this, "2 ムミオミアミオミスミコミー"); + + /** + * The column total_registered.child_minor.3_child. 3 ムミオミアミオミスミコミー + */ + public final TableField _3_CHILD = createField(DSL.name("3_child"), SQLDataType.NUMERIC, this, "3 ムミオミアミオミスミコミー"); + + /** + * The column total_registered.child_minor.4_more_child. 4 ミク + * ミアミセミサミオミオ + */ + public final TableField _4_MORE_CHILD = createField(DSL.name("4_more_child"), SQLDataType.NUMERIC, this, "4 ミク ミアミセミサミオミオ"); + + /** + * The column total_registered.child_minor.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム"); + + /** + * The column total_registered.child_minor.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column total_registered.child_minor.no_child_percent. + * ミ斷オム ミエミオムひオミケ ミイ ミソムミセムミオミスムひーム + */ + public final TableField NO_CHILD_PERCENT = createField(DSL.name("no_child_percent"), SQLDataType.NUMERIC, this, "ミ斷オム ミエミオムひオミケ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.child_minor.1_child_percent. 1 + * ムミオミアミオミスミセミコ ミイ ミソムミセムミオミスムひーム + */ + public final TableField _1_CHILD_PERCENT = createField(DSL.name("1_child_percent"), SQLDataType.NUMERIC, this, "1 ムミオミアミオミスミセミコ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.child_minor.2_child_percent. 2 + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public final TableField _2_CHILD_PERCENT = createField(DSL.name("2_child_percent"), SQLDataType.NUMERIC, this, "2 ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.child_minor.3_child_percent. 3 + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public final TableField _3_CHILD_PERCENT = createField(DSL.name("3_child_percent"), SQLDataType.NUMERIC, this, "3 ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.child_minor.4_more_child_percent. 4 ミク ミアミセミサミオミオ + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public final TableField _4_MORE_CHILD_PERCENT = createField(DSL.name("4_more_child_percent"), SQLDataType.NUMERIC, this, "4 ミク ミアミセミサミオミオ ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.child_minor.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private ChildMinor(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private ChildMinor(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ頒オムひク ムひセ 18 ミサミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.child_minor table + * reference + */ + public ChildMinor(String alias) { + this(DSL.name(alias), CHILD_MINOR); + } + + /** + * Create an aliased total_registered.child_minor table + * reference + */ + public ChildMinor(Name alias) { + this(alias, CHILD_MINOR); + } + + /** + * Create a total_registered.child_minor table reference + */ + public ChildMinor() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public ChildMinor as(String alias) { + return new ChildMinor(DSL.name(alias), this); + } + + @Override + public ChildMinor as(Name alias) { + return new ChildMinor(alias, this); + } + + @Override + public ChildMinor as(Table alias) { + return new ChildMinor(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public ChildMinor rename(String name) { + return new ChildMinor(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public ChildMinor rename(Name name) { + return new ChildMinor(name, null); + } + + /** + * Rename this table + */ + @Override + public ChildMinor rename(Table name) { + return new ChildMinor(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChildMinor where(Condition condition) { + return new ChildMinor(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChildMinor where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChildMinor where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChildMinor where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChildMinor where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChildMinor where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChildMinor where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public ChildMinor where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChildMinor whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public ChildMinor whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..87e0eb6 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/DriverLicense.java @@ -0,0 +1,371 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 DriverLicense extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.driver_license + */ + public static final DriverLicense DRIVER_LICENSE = new DriverLicense(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. ミスミオム + * ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム + */ + public final TableField NOPE = createField(DSL.name("nope"), SQLDataType.NUMERIC, this, "ミスミオム ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム"); + + /** + * The column total_registered.driver_license.A. ミコミームひオミウミセムミクム A + */ + public final TableField A = createField(DSL.name("A"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム A"); + + /** + * The column total_registered.driver_license.B. ミコミームひオミウミセムミクム B + */ + public final TableField B = createField(DSL.name("B"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム B"); + + /** + * The column total_registered.driver_license.C. ミコミームひオミウミセムミクム C + */ + public final TableField C = createField(DSL.name("C"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム C"); + + /** + * The column total_registered.driver_license.D. ミコミームひオミウミセムミクム D + */ + public final TableField D = createField(DSL.name("D"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム D"); + + /** + * The column total_registered.driver_license.E. ミコミームひオミウミセムミクム E + */ + public final TableField E = createField(DSL.name("E"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム E"); + + /** + * The column total_registered.driver_license.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム"); + + /** + * The column total_registered.driver_license.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column total_registered.driver_license.nope_repcent. ミスミオム + * ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ミイ ミソムミセムミオミスムひーム + */ + public final TableField NOPE_REPCENT = createField(DSL.name("nope_repcent"), SQLDataType.NUMERIC, this, "ミスミオム ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.driver_license.A_repcent. + * ミコミームひオミウミセムミクム A ミイ ミソムミセムミオミスムひーム + */ + public final TableField A_REPCENT = createField(DSL.name("A_repcent"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム A ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.driver_license.B_repcent. + * ミコミームひオミウミセムミクム B ミイ ミソムミセムミオミスムひーム + */ + public final TableField B_REPCENT = createField(DSL.name("B_repcent"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム B ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.driver_license.C_repcent. + * ミコミームひオミウミセムミクム C ミイ ミソムミセムミオミスムひーム + */ + public final TableField C_REPCENT = createField(DSL.name("C_repcent"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム C ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.driver_license.D_repcent. + * ミコミームひオミウミセムミクム D ミイ ミソムミセムミオミスムひーム + */ + public final TableField D_REPCENT = createField(DSL.name("D_repcent"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム D ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.driver_license.E_repcent. + * ミコミームひオミウミセムミクム E ミイ ミソムミセムミオミスムひーム + */ + public final TableField E_REPCENT = createField(DSL.name("E_repcent"), SQLDataType.NUMERIC, this, "ミコミームひオミウミセムミクム E ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.driver_license.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private DriverLicense(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private DriverLicense(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ斷ーミサミクムミクミオ ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.driver_license table + * reference + */ + public DriverLicense(String alias) { + this(DSL.name(alias), DRIVER_LICENSE); + } + + /** + * Create an aliased total_registered.driver_license table + * reference + */ + public DriverLicense(Name alias) { + this(alias, DRIVER_LICENSE); + } + + /** + * Create a total_registered.driver_license table reference + */ + public DriverLicense() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public DriverLicense as(String alias) { + return new DriverLicense(DSL.name(alias), this); + } + + @Override + public DriverLicense as(Name alias) { + return new DriverLicense(alias, this); + } + + @Override + public DriverLicense as(Table alias) { + return new DriverLicense(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public DriverLicense rename(String name) { + return new DriverLicense(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public DriverLicense rename(Name name) { + return new DriverLicense(name, null); + } + + /** + * Rename this table + */ + @Override + public DriverLicense rename(Table name) { + return new DriverLicense(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriverLicense where(Condition condition) { + return new DriverLicense(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriverLicense where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriverLicense where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriverLicense where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriverLicense where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriverLicense where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriverLicense where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public DriverLicense where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriverLicense whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public DriverLicense whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..ccfade9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/EducationLevel.java @@ -0,0 +1,353 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 EducationLevel extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.education_level + */ + public static final EducationLevel EDUCATION_LEVEL = new EducationLevel(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. ミ柘錦ム威オミオ + * ミセミアムミーミキミセミイミーミスミクミオ + */ + public final TableField HIGHER = createField(DSL.name("higher"), SQLDataType.NUMERIC, this, "ミ柘錦ム威オミオ ミセミアムミーミキミセミイミーミスミクミオ"); + + /** + * The column total_registered.education_level.average. ミ。ムミオミエミスミオミオ + * ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ + */ + public final TableField AVERAGE = createField(DSL.name("average"), SQLDataType.NUMERIC, this, "ミ。ムミオミエミスミオミオ ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ"); + + /** + * The column total_registered.education_level.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, this, "ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム"); + + /** + * The column total_registered.education_level.only_general. + * ミ「ミセミサム糊コミセ ミセミアム禍オミオ + */ + public final TableField ONLY_GENERAL = createField(DSL.name("only_general"), SQLDataType.NUMERIC, this, "ミ「ミセミサム糊コミセ ミセミアム禍オミオ"); + + /** + * The column total_registered.education_level.no_data. ミ斷オム + * ミエミーミスミスム錦 + */ + public final TableField NO_DATA = createField(DSL.name("no_data"), SQLDataType.NUMERIC, this, "ミ斷オム ミエミーミスミスム錦"); + + /** + * 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column total_registered.education_level.higher_percent. + * ミ柘錦ム威オミオ ミセミアムミーミキミセミイミーミスミクミオ ミイ ミソムミセムミオミスムひーム + */ + public final TableField HIGHER_PERCENT = createField(DSL.name("higher_percent"), SQLDataType.NUMERIC, this, "ミ柘錦ム威オミオ ミセミアムミーミキミセミイミーミスミクミオ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.education_level.average_percent. + * ミ。ムミオミエミスミオミオ ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ ミイ ミソムミセムミオミスムひーム + */ + public final TableField AVERAGE_PERCENT = createField(DSL.name("average_percent"), SQLDataType.NUMERIC, this, "ミ。ムミオミエミスミオミオ ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.education_level.only_general_percent. + * ミ「ミセミサム糊コミセ ミセミアム禍オミオ ミイ ミソムミセムミオミスムひーム + */ + public final TableField ONLY_GENERAL_PERCENT = createField(DSL.name("only_general_percent"), SQLDataType.NUMERIC, this, "ミ「ミセミサム糊コミセ ミセミアム禍オミオ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.education_level.no_data_percent. + * ミ斷オム ミエミーミスミスム錦 ミセミア ミセミアムミーミキミセミイミーミスミクミクミク ミイ ミソムミセムミオミスムひーム + */ + public final TableField NO_DATA_PERCENT = createField(DSL.name("no_data_percent"), SQLDataType.NUMERIC, this, "ミ斷オム ミエミーミスミスム錦 ミセミア ミセミアムミーミキミセミイミーミスミクミクミク ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.education_level.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + private EducationLevel(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private EducationLevel(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ」ムミセミイミオミスム ミセミアムミーミキミセミイミーミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.education_level table + * reference + */ + public EducationLevel(String alias) { + this(DSL.name(alias), EDUCATION_LEVEL); + } + + /** + * Create an aliased total_registered.education_level table + * reference + */ + public EducationLevel(Name alias) { + this(alias, EDUCATION_LEVEL); + } + + /** + * Create a total_registered.education_level table reference + */ + public EducationLevel() { + 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; + } + + @Override + public EducationLevel as(String alias) { + return new EducationLevel(DSL.name(alias), this); + } + + @Override + public EducationLevel as(Name alias) { + return new EducationLevel(alias, this); + } + + @Override + public EducationLevel as(Table alias) { + return new EducationLevel(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public EducationLevel rename(String name) { + return new EducationLevel(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public EducationLevel rename(Name name) { + return new EducationLevel(name, null); + } + + /** + * Rename this table + */ + @Override + public EducationLevel rename(Table name) { + return new EducationLevel(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EducationLevel where(Condition condition) { + return new EducationLevel(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EducationLevel where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EducationLevel where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EducationLevel where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EducationLevel where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EducationLevel where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EducationLevel where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public EducationLevel where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EducationLevel whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public EducationLevel whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..5ec5e9b --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/MaritalStatus.java @@ -0,0 +1,328 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 MaritalStatus extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.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 + * 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. ミ ミアムミーミコミオ + */ + public final TableField MARRIED = createField(DSL.name("married"), SQLDataType.NUMERIC, this, "ミ ミアムミーミコミオ"); + + /** + * The column total_registered.marital_status.not_married. + * ミ・ミセミサミセムム + */ + public final TableField NOT_MARRIED = createField(DSL.name("not_married"), SQLDataType.NUMERIC, this, "ミ・ミセミサミセムム"); + + /** + * The column total_registered.marital_status.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public final TableField ALL_M_W = createField(DSL.name("all_M_W"), SQLDataType.CLOB, 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column total_registered.marital_status.married_percent. + * ミ ミアムミーミコミオ ミイ ミソムミセムミオミスムひーム + */ + public final TableField MARRIED_PERCENT = createField(DSL.name("married_percent"), SQLDataType.NUMERIC, this, "ミ ミアムミーミコミオ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.marital_status.not_married_percent. ミ・ミセミサミセムム + * ミイ ミソムミセムミオミスムひーム + */ + public final TableField NOT_MARRIED_PERCENT = createField(DSL.name("not_married_percent"), SQLDataType.NUMERIC, this, "ミ・ミセミサミセムム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.marital_status.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, 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 total_registered.marital_status table + * reference + */ + public MaritalStatus(String alias) { + this(DSL.name(alias), MARITAL_STATUS); + } + + /** + * Create an aliased total_registered.marital_status table + * reference + */ + public MaritalStatus(Name alias) { + this(alias, MARITAL_STATUS); + } + + /** + * Create a total_registered.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 : 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; + } + + @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/total_registered/tables/RegMilCat.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RegMilCat.java new file mode 100644 index 0000000..6aab08f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RegMilCat.java @@ -0,0 +1,391 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 RegMilCat extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.reg_mil_cat + */ + public static final RegMilCat REG_MIL_CAT = new RegMilCat(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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 ミサミオム + */ + public final TableField FIRST_REG_17 = createField(DSL.name("first_reg_17"), SQLDataType.NUMERIC, this, "ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 17 ミサミオム"); + + /** + * The column total_registered.reg_mil_cat.first_reg_18. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム + */ + public final TableField FIRST_REG_18 = createField(DSL.name("first_reg_18"), SQLDataType.NUMERIC, this, "ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム"); + + /** + * The column + * total_registered.reg_mil_cat.returned_dep_liberty. + * ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム + */ + public final TableField RETURNED_DEP_LIBERTY = createField(DSL.name("returned_dep_liberty"), SQLDataType.NUMERIC, this, "ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム"); + + /** + * The column total_registered.reg_mil_cat.mil_spec_W. ミ孟オミスム禍クミスム, + * ミソミセミサムτミクミイム威クミオ ミ漬」ミ。 + */ + public final TableField MIL_SPEC_W = createField(DSL.name("mil_spec_W"), SQLDataType.NUMERIC, this, "ミ孟オミスム禍クミスム, ミソミセミサムτミクミイム威クミオ ミ漬」ミ。"); + + /** + * The column total_registered.reg_mil_cat.punished. ミ樮ひアム巾イミーム紗禍クミオ + * ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム + */ + public final TableField PUNISHED = createField(DSL.name("punished"), SQLDataType.NUMERIC, this, "ミ樮ひアム巾イミーム紗禍クミオ ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム"); + + /** + * The column + * total_registered.reg_mil_cat.received_citizenship. + * ミ渙セミサムτミクミイム威クミオ ミウムミーミカミエミーミスムムひイミセ + */ + 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column + * total_registered.reg_mil_cat.first_reg_17_percent. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 17 ミサミオム ミイ ミソムミセムミオミスムひーム + */ + public final TableField FIRST_REG_17_PERCENT = createField(DSL.name("first_reg_17_percent"), SQLDataType.NUMERIC, this, "ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 17 ミサミオム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.reg_mil_cat.first_reg_18_percent. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム ミイ ミソムミセムミオミスムひーム + */ + public final TableField FIRST_REG_18_PERCENT = createField(DSL.name("first_reg_18_percent"), SQLDataType.NUMERIC, this, "ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.reg_mil_cat.returned_dep_liberty_percent. + * ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム + */ + public final TableField RETURNED_DEP_LIBERTY_PERCENT = createField(DSL.name("returned_dep_liberty_percent"), SQLDataType.NUMERIC, this, "ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.reg_mil_cat.mil_spec_W_percent. + * ミ孟オミスム禍クミスム, ミソミセミサムτミクミイム威クミオ ミ漬」ミ。 ミイ ミソムミセムミオミスムひーム + */ + public final TableField MIL_SPEC_W_PERCENT = createField(DSL.name("mil_spec_W_percent"), SQLDataType.NUMERIC, this, "ミ孟オミスム禍クミスム, ミソミセミサムτミクミイム威クミオ ミ漬」ミ。 ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.reg_mil_cat.punished_percent. + * ミ樮ひアム巾イミーム紗禍クミオ ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム + */ + public final TableField PUNISHED_PERCENT = createField(DSL.name("punished_percent"), SQLDataType.NUMERIC, this, "ミ樮ひアム巾イミーム紗禍クミオ ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.reg_mil_cat.received_citizenship_percent. + * ミ渙セミサムτミクミイム威クミオ ミウムミーミカミエミーミスムムひイミセ ミイ ミソムミセムミオミスムひーム + */ + public final TableField RECEIVED_CITIZENSHIP_PERCENT = createField(DSL.name("received_citizenship_percent"), SQLDataType.NUMERIC, this, "ミ渙セミサムτミクミイム威クミオ ミウムミーミカミエミーミスムムひイミセ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.reg_mil_cat.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column total_registered.reg_mil_cat.testrecruitment_id. + */ + public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column total_registered.reg_mil_cat.testmil_reg. + */ + public final TableField TESTMIL_REG = createField(DSL.name("testmil_reg"), SQLDataType.NUMERIC, this, ""); + + private RegMilCat(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private RegMilCat(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ墟ームひオミウミセムミクミク ミソミセムムひーミスミセミイミコミク ミスミー ミイミセミクミスムミコミクミケ ムτミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.reg_mil_cat table + * reference + */ + public RegMilCat(String alias) { + this(DSL.name(alias), REG_MIL_CAT); + } + + /** + * Create an aliased total_registered.reg_mil_cat table + * reference + */ + public RegMilCat(Name alias) { + this(alias, REG_MIL_CAT); + } + + /** + * Create a total_registered.reg_mil_cat table reference + */ + public RegMilCat() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public RegMilCat as(String alias) { + return new RegMilCat(DSL.name(alias), this); + } + + @Override + public RegMilCat as(Name alias) { + return new RegMilCat(alias, this); + } + + @Override + public RegMilCat as(Table alias) { + return new RegMilCat(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public RegMilCat rename(String name) { + return new RegMilCat(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public RegMilCat rename(Name name) { + return new RegMilCat(name, null); + } + + /** + * Rename this table + */ + @Override + public RegMilCat rename(Table name) { + return new RegMilCat(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RegMilCat where(Condition condition) { + return new RegMilCat(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RegMilCat where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RegMilCat where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RegMilCat where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RegMilCat where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RegMilCat where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RegMilCat where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RegMilCat where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RegMilCat whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RegMilCat whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..d473f9e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/RemovedRegistry.java @@ -0,0 +1,385 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 RemovedRegistry extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.removed_registry + */ + public static final RemovedRegistry REMOVED_REGISTRY = new RemovedRegistry(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return RemovedRegistryRecord.class; + } + + /** + * The column + * total_registered.removed_registry.removed_registry. ミ。ミスム肖ひセ ム + * ムτミオムひー + */ + public final TableField REMOVED_REGISTRY_ = createField(DSL.name("removed_registry"), SQLDataType.NUMERIC, this, "ミ。ミスム肖ひセ ム ムτミオムひー"); + + /** + * The column + * total_registered.removed_registry.deprivation_citizenship. + * ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー + */ + public final TableField DEPRIVATION_CITIZENSHIP = createField(DSL.name("deprivation_citizenship"), SQLDataType.NUMERIC, this, "ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー"); + + /** + * The column total_registered.removed_registry.age_limit. + * ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー + */ + public final TableField AGE_LIMIT = createField(DSL.name("age_limit"), SQLDataType.NUMERIC, this, "ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー"); + + /** + * The column total_registered.removed_registry.death. ミ。ミシミオムムび + */ + public final TableField DEATH = createField(DSL.name("death"), SQLDataType.NUMERIC, this, "ミ。ミシミオムムび"); + + /** + * The column total_registered.removed_registry.travel_abroad. + * ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ + */ + public final TableField TRAVEL_ABROAD = createField(DSL.name("travel_abroad"), SQLDataType.NUMERIC, this, "ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ"); + + /** + * The column total_registered.removed_registry.living_abroad. + * ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ + */ + public final TableField LIVING_ABROAD = createField(DSL.name("living_abroad"), SQLDataType.NUMERIC, this, "ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ"); + + /** + * The column total_registered.removed_registry.other. ミ湲ミセムミオミオ + */ + public final TableField OTHER = createField(DSL.name("other"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミオ"); + + /** + * The column total_registered.removed_registry.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public final TableField RECORDING_DATE = createField(DSL.name("recording_date"), SQLDataType.DATE, this, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column + * total_registered.removed_registry.deprivation_citizen_percents. + * ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー ミイ ミソムミセムミオミスムひーム + */ + public final TableField DEPRIVATION_CITIZEN_PERCENTS = createField(DSL.name("deprivation_citizen_percents"), SQLDataType.NUMERIC, this, "ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.removed_registry.age_limit_percent. + * ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー ミイ ミソムミセムミオミスムひーム + */ + public final TableField AGE_LIMIT_PERCENT = createField(DSL.name("age_limit_percent"), SQLDataType.NUMERIC, this, "ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.removed_registry.death_percent. + * ミ。ミシミオムムび ミイ ミソムミセムミオミスムひーム + */ + public final TableField DEATH_PERCENT = createField(DSL.name("death_percent"), SQLDataType.NUMERIC, this, "ミ。ミシミオムムび ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.removed_registry.travel_abroad_percent. + * ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ ミイ ミソムミセムミオミスムひーム + */ + public final TableField TRAVEL_ABROAD_PERCENT = createField(DSL.name("travel_abroad_percent"), SQLDataType.NUMERIC, this, "ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.removed_registry.living_abroad_percent. + * ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ ミイ ミソムミセムミオミスムひーム + */ + public final TableField LIVING_ABROAD_PERCENT = createField(DSL.name("living_abroad_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.removed_registry.other_percent. + * ミ湲ミセムミオミオ ミイ ミソムミセムミオミスムひーム + */ + public final TableField OTHER_PERCENT = createField(DSL.name("other_percent"), SQLDataType.NUMERIC, this, "ミ湲ミセムミオミオ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.removed_registry.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column + * total_registered.removed_registry.id_removed_registry. + */ + 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); + } + + private RemovedRegistry(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ。ミスム肖ひセ ム ムτミオムひー ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.removed_registry table + * reference + */ + public RemovedRegistry(String alias) { + this(DSL.name(alias), REMOVED_REGISTRY); + } + + /** + * Create an aliased total_registered.removed_registry table + * reference + */ + public RemovedRegistry(Name alias) { + this(alias, REMOVED_REGISTRY); + } + + /** + * Create a total_registered.removed_registry table reference + */ + public RemovedRegistry() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + 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); + } + + @Override + public RemovedRegistry as(Name alias) { + return new RemovedRegistry(alias, this); + } + + @Override + public RemovedRegistry as(Table alias) { + return new RemovedRegistry(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public RemovedRegistry rename(String name) { + return new RemovedRegistry(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public RemovedRegistry rename(Name name) { + return new RemovedRegistry(name, null); + } + + /** + * Rename this table + */ + @Override + public RemovedRegistry rename(Table name) { + return new RemovedRegistry(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RemovedRegistry where(Condition condition) { + return new RemovedRegistry(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RemovedRegistry where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RemovedRegistry where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RemovedRegistry where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RemovedRegistry where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RemovedRegistry where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RemovedRegistry where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public RemovedRegistry where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RemovedRegistry whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public RemovedRegistry whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..e84a341 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/Subpoenas.java @@ -0,0 +1,419 @@ +/* + * This file is generated by jOOQ. + */ +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; +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 Subpoenas extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of total_registered.subpoenas + */ + public static final Subpoenas SUBPOENAS = new Subpoenas(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + 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. ミ斷ーミソムミーミイミサミオミスミセ + * ミソミセミイミオムムひセミコ + */ + public final TableField SUBPOENA = createField(DSL.name("subpoena"), SQLDataType.NUMERIC, this, "ミ斷ーミソムミーミイミサミオミスミセ ミソミセミイミオムムひセミコ"); + + /** + * The column total_registered.subpoenas.average_appeared. + * ミ。ムミオミエミスミクミケ ムムミセミコ ム紹イミコミク + */ + public final TableField AVERAGE_APPEARED = createField(DSL.name("average_appeared"), SQLDataType.NUMERIC, this, "ミ。ムミオミエミスミクミケ ムムミセミコ ム紹イミコミク"); + + /** + * The column total_registered.subpoenas.appeared. ミッミイミクミサミクムム + */ + public final TableField APPEARED = createField(DSL.name("appeared"), SQLDataType.NUMERIC, this, "ミッミイミクミサミクムム"); + + /** + * The column total_registered.subpoenas.not_appeared. ミ斷オ + * ム紹イミクミサミクムム + */ + public final TableField NOT_APPEARED = createField(DSL.name("not_appeared"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム"); + + /** + * The column total_registered.subpoenas.not_ap_good_reason. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public final TableField NOT_AP_GOOD_REASON = createField(DSL.name("not_ap_good_reason"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ"); + + /** + * The column total_registered.subpoenas.ap_not_required. ミッミイミコミー + * ミスミオ ムびミオミアムσオムびム + */ + public final TableField AP_NOT_REQUIRED = createField(DSL.name("ap_not_required"), SQLDataType.NUMERIC, this, "ミッミイミコミー ミスミオ ムびミオミアムσオムびム"); + + /** + * The column total_registered.subpoenas.electron. ミュミサミオミコムびミセミスミスミセ + */ + public final TableField ELECTRON = createField(DSL.name("electron"), SQLDataType.NUMERIC, this, "ミュミサミオミコムびミセミスミスミセ"); + + /** + * The column total_registered.subpoenas.paper. ミ斷ームミセムミスミセ + */ + public final TableField PAPER = createField(DSL.name("paper"), SQLDataType.NUMERIC, this, "ミ斷ームミセムミスミセ"); + + /** + * The column total_registered.subpoenas.restrictions_applied. + * ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + public final TableField RESTRICTIONS_APPLIED = createField(DSL.name("restrictions_applied"), SQLDataType.NUMERIC, this, "ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ"); + + /** + * The column total_registered.subpoenas.introduced_measures. + * ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + 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, "ミ頒ームひー ミキミーミソミクムミク"); + + /** + * The column total_registered.subpoenas.appeared_percent. + * ミッミイミクミサミクムム ミイ ミソムミセムミオミスムひーム + */ + public final TableField APPEARED_PERCENT = createField(DSL.name("appeared_percent"), SQLDataType.NUMERIC, this, "ミッミイミクミサミクムム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.subpoenas.not_appeared_percent. + * ミ斷オ ム紹イミクミサミクムム ミイ ミソムミセムミオミスムひーム + */ + public final TableField NOT_APPEARED_PERCENT = createField(DSL.name("not_appeared_percent"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.subpoenas.not_ap_good_reason_percent. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ ミイ ミソムミセムミオミスムひーム + */ + public final TableField NOT_AP_GOOD_REASON_PERCENT = createField(DSL.name("not_ap_good_reason_percent"), SQLDataType.NUMERIC, this, "ミ斷オ ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.subpoenas.ap_not_required_percent. ミッミイミコミー ミスミオ + * ムびミオミアムσオムびム ミイ ミソムミセムミオミスムひーム + */ + public final TableField AP_NOT_REQUIRED_PERCENT = createField(DSL.name("ap_not_required_percent"), SQLDataType.NUMERIC, this, "ミッミイミコミー ミスミオ ムびミオミアムσオムびム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.subpoenas.electron_percent. + * ミュミサミオミコムびミセミスミスミセ ミイ ミソムミセムミオミスムひーム + */ + public final TableField ELECTRON_PERCENT = createField(DSL.name("electron_percent"), SQLDataType.NUMERIC, this, "ミュミサミオミコムびミセミスミスミセ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.subpoenas.paper_percent. ミ斷ームミセムミスミセ + * ミイ ミソムミセムミオミスムひーム + */ + public final TableField PAPER_PERCENT = createField(DSL.name("paper_percent"), SQLDataType.NUMERIC, this, "ミ斷ームミセムミスミセ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.subpoenas.restrictions_applied_percent. + * ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ ミイ ミソムミセムミオミスムひーム + */ + public final TableField RESTRICTIONS_APPLIED_PERCENT = createField(DSL.name("restrictions_applied_percent"), SQLDataType.NUMERIC, this, "ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ ミイ ミソムミセムミオミスムひーム"); + + /** + * The column + * total_registered.subpoenas.introduced_measures_percent. + * ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム ミイ ミソムミセムミオミスムひーム + */ + public final TableField INTRODUCED_MEASURES_PERCENT = createField(DSL.name("introduced_measures_percent"), SQLDataType.NUMERIC, this, "ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム ミイ ミソムミセムミオミスムひーム"); + + /** + * The column total_registered.subpoenas.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column total_registered.subpoenas.testrecruitment_id. + */ + public final TableField TESTRECRUITMENT_ID = createField(DSL.name("testrecruitment_id"), SQLDataType.CHAR(36), this, ""); + + /** + * The column total_registered.subpoenas.testmil_reg. + */ + public final TableField TESTMIL_REG = createField(DSL.name("testmil_reg"), SQLDataType.NUMERIC, this, ""); + + private Subpoenas(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Subpoenas(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("ミ渙セミイミオムムひコミク ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、"), TableOptions.table(), where); + } + + /** + * Create an aliased total_registered.subpoenas table reference + */ + public Subpoenas(String alias) { + this(DSL.name(alias), SUBPOENAS); + } + + /** + * Create an aliased total_registered.subpoenas table reference + */ + public Subpoenas(Name alias) { + this(alias, SUBPOENAS); + } + + /** + * Create a total_registered.subpoenas table reference + */ + public Subpoenas() { + 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; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @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; + } + + @Override + public Subpoenas as(String alias) { + return new Subpoenas(DSL.name(alias), this); + } + + @Override + public Subpoenas as(Name alias) { + return new Subpoenas(alias, this); + } + + @Override + public Subpoenas as(Table alias) { + return new Subpoenas(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Subpoenas rename(String name) { + return new Subpoenas(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Subpoenas rename(Name name) { + return new Subpoenas(name, null); + } + + /** + * Rename this table + */ + @Override + public Subpoenas rename(Table name) { + return new Subpoenas(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Condition condition) { + return new Subpoenas(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Subpoenas where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Subpoenas whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} 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 new file mode 100644 index 0000000..4f4738e --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/AgeRecord.java @@ -0,0 +1,386 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +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.impl.UpdatableRecordImpl; + + +/** + * ミ漬セミキムミームム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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); + } + + /** + * Getter for total_registered.age.17_yaers. ミ漬セミキムミームム 17 + */ + public BigDecimal get_17Yaers() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.age.18-26_years. ミ漬セミキムミームム 18-26 + */ + public void set_18_26Years(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.age.18-26_years. ミ漬セミキムミームム 18-26 + */ + public BigDecimal get_18_26Years() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.age.27-30_years. ミ漬セミキムミームム 27-30 + */ + public void set_27_30Years(BigDecimal value) { + set(3, value); + } + + /** + * Getter for total_registered.age.27-30_years. ミ漬セミキムミームム 27-30 + */ + public BigDecimal get_27_30Years() { + return (BigDecimal) get(3); + } + + /** + * Setter for total_registered.age.31-35_years. ミ漬セミキムミームム 31-35 + */ + public void set_31_35Years(BigDecimal value) { + set(4, value); + } + + /** + * Getter for total_registered.age.31-35_years. ミ漬セミキムミームム 31-35 + */ + public BigDecimal get_31_35Years() { + return (BigDecimal) get(4); + } + + /** + * Setter for total_registered.age.36-40_years. ミ漬セミキムミームム 36-40 + */ + public void set_36_40Years(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.age.36-40_years. ミ漬セミキムミームム 36-40 + */ + public BigDecimal get_36_40Years() { + return (BigDecimal) get(5); + } + + /** + * Setter for total_registered.age.41-45_years. ミ漬セミキムミームム 41-45 + */ + public void set_41_45Years(BigDecimal value) { + set(6, value); + } + + /** + * Getter for total_registered.age.41-45_years. ミ漬セミキムミームム 41-45 + */ + public BigDecimal get_41_45Years() { + return (BigDecimal) get(6); + } + + /** + * Setter for total_registered.age.51+_years. ミ漬セミキムミームム 51+ + */ + public void set_51_2bYears(BigDecimal value) { + set(7, value); + } + + /** + * Getter for total_registered.age.51+_years. ミ漬セミキムミームム 51+ + */ + public BigDecimal get_51_2bYears() { + return (BigDecimal) get(7); + } + + /** + * Setter for total_registered.age.all_M_W. ミ柘ミオ/ミシムσカムミクミスム/ミカミオミスム禍クミスム + */ + public void setAllMW(String value) { + set(8, 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); + } + + /** + * Setter for total_registered.age.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(10, value); + } + + /** + * Getter for total_registered.age.recording_date. ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(10); + } + + /** + * Setter for total_registered.age.46-50_years. ミ漬セミキムミームム 46-50 + */ + public void set_46_50Years(BigDecimal value) { + set(11, value); + } + + /** + * Getter for total_registered.age.46-50_years. ミ漬セミキムミームム 46-50 + */ + public BigDecimal get_46_50Years() { + return (BigDecimal) get(11); + } + + /** + * Setter for total_registered.age.17_yaers_percent. ミ漬セミキムミームム 17 + * ミイ ミソムミセムミオミスムひーム + */ + public void set_17YaersPercent(BigDecimal value) { + set(12, value); + } + + /** + * Getter for total_registered.age.17_yaers_percent. ミ漬セミキムミームム 17 + * ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_17YaersPercent() { + return (BigDecimal) get(12); + } + + /** + * Setter for total_registered.age.18-26_years_percent. ミ漬セミキムミームム + * 18-26 ミイ ミソムミセムミオミスムひーム + */ + public void set_18_26YearsPercent(BigDecimal value) { + set(13, value); + } + + /** + * Getter for total_registered.age.18-26_years_percent. ミ漬セミキムミームム + * 18-26 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_18_26YearsPercent() { + return (BigDecimal) get(13); + } + + /** + * Setter for total_registered.age.27-30_years_percent. ミ漬セミキムミームム + * 27-30 ミイ ミソムミセムミオミスムひーム + */ + public void set_27_30YearsPercent(BigDecimal value) { + set(14, value); + } + + /** + * Getter for total_registered.age.27-30_years_percent. ミ漬セミキムミームム + * 27-30 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_27_30YearsPercent() { + return (BigDecimal) get(14); + } + + /** + * Setter for total_registered.age.31-35_years_percent. ミ漬セミキムミームム + * 31-35 ミイ ミソムミセムミオミスムひーム + */ + public void set_31_35YearsPercent(BigDecimal value) { + set(15, value); + } + + /** + * Getter for total_registered.age.31-35_years_percent. ミ漬セミキムミームム + * 31-35 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_31_35YearsPercent() { + return (BigDecimal) get(15); + } + + /** + * Setter for total_registered.age.36-40_years_percent. ミ漬セミキムミームム + * 36-40 ミイ ミソムミセムミオミスムひーム + */ + public void set_36_40YearsPercent(BigDecimal value) { + set(16, value); + } + + /** + * Getter for total_registered.age.36-40_years_percent. ミ漬セミキムミームム + * 36-40 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_36_40YearsPercent() { + return (BigDecimal) get(16); + } + + /** + * Setter for total_registered.age.41-45_years_percent. ミ漬セミキムミームム + * 41-45 ミイ ミソムミセムミオミスムひーム + */ + public void set_41_45YearsPercent(BigDecimal value) { + set(17, value); + } + + /** + * Getter for total_registered.age.41-45_years_percent. ミ漬セミキムミームム + * 41-45 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_41_45YearsPercent() { + return (BigDecimal) get(17); + } + + /** + * Setter for total_registered.age.46-50_years_percent. ミ漬セミキムミームム + * 46-50 ミイ ミソムミセムミオミスムひーム + */ + public void set_46_50YearsPercent(BigDecimal value) { + set(18, value); + } + + /** + * Getter for total_registered.age.46-50_years_percent. ミ漬セミキムミームム + * 46-50 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_46_50YearsPercent() { + return (BigDecimal) get(18); + } + + /** + * Setter for total_registered.age.51+_years_percent. ミ漬セミキムミームム + * 51+ ミイ ミソムミセムミオミスムひーム + */ + public void set_51_2bYearsPercent(BigDecimal value) { + set(19, value); + } + + /** + * Getter for total_registered.age.51+_years_percent. ミ漬セミキムミームム + * 51+ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_51_2bYearsPercent() { + return (BigDecimal) get(19); + } + + /** + * Setter for total_registered.age.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(20, value); + } + + /** + * Getter for total_registered.age.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(20); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached AgeRecord + */ + public AgeRecord() { + super(Age.AGE); + } + + /** + * 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) { + super(Age.AGE); + + setIdAge(idAge); + set_17Yaers(_17Yaers); + set_18_26Years(_18_26Years); + set_27_30Years(_27_30Years); + set_31_35Years(_31_35Years); + set_36_40Years(_36_40Years); + set_41_45Years(_41_45Years); + set_51_2bYears(_51_2bYears); + setAllMW(allMW); + setRegistered(registered); + setRecordingDate(recordingDate); + set_46_50Years(_46_50Years); + set_17YaersPercent(_17YaersPercent); + set_18_26YearsPercent(_18_26YearsPercent); + set_27_30YearsPercent(_27_30YearsPercent); + set_31_35YearsPercent(_31_35YearsPercent); + set_36_40YearsPercent(_36_40YearsPercent); + set_41_45YearsPercent(_41_45YearsPercent); + set_46_50YearsPercent(_46_50YearsPercent); + set_51_2bYearsPercent(_51_2bYearsPercent); + setRecruitmentId(recruitmentId); + 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 new file mode 100644 index 0000000..2515808 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/BusynessRecord.java @@ -0,0 +1,230 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +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.impl.UpdatableRecordImpl; + + +/** + * ミ厘ーミスム肖ひセムムび ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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); + } + + /** + * Getter for total_registered.busyness.study. ミ」ムミームびム + */ + public BigDecimal getStudy() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.busyness.work. ミミーミアミセムひーム紗 + */ + public void setWork(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.busyness.work. ミミーミアミセムひーム紗 + */ + public BigDecimal getWork() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.busyness.not_work. ミ岱オミキムミーミアミセムひスム巾オ + */ + public void setNotWork(BigDecimal value) { + set(3, 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); + } + + /** + * Setter for total_registered.busyness.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(6, value); + } + + /** + * Getter for total_registered.busyness.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(6); + } + + /** + * Setter for total_registered.busyness.study_percent. ミ」ムミームびム ミイ + * ミソムミセムミオミスムひーム + */ + public void setStudyPercent(BigDecimal value) { + set(7, value); + } + + /** + * Getter for total_registered.busyness.study_percent. ミ」ムミームびム ミイ + * ミソムミセムミオミスムひーム + */ + public BigDecimal getStudyPercent() { + return (BigDecimal) get(7); + } + + /** + * Setter for total_registered.busyness.work_percent. ミミーミアミセムひーム紗 + * ミイ ミソムミセムミオミスムひーム + */ + public void setWorkPercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for total_registered.busyness.work_percent. ミミーミアミセムひーム紗 + * ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getWorkPercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for total_registered.busyness.not_work_percent. + * ミ岱オミキムミーミアミセムひスム巾オ ミイ ミソムミセムミオミスムひーム + */ + public void setNotWorkPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for total_registered.busyness.not_work_percent. + * ミ岱オミキムミーミアミセムひスム巾オ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNotWorkPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for total_registered.busyness.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(10, value); + } + + /** + * Getter for total_registered.busyness.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(10); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached BusynessRecord + */ + public BusynessRecord() { + super(Busyness.BUSYNESS); + } + + /** + * 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) { + 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); + 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 new file mode 100644 index 0000000..9f57004 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/ChildMinorRecord.java @@ -0,0 +1,281 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +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.impl.UpdatableRecordImpl; + + +/** + * ミ頒オムひク ムひセ 18 ミサミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +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); + } + + /** + * Getter for total_registered.child_minor.no_child. ミ斷オム ミエミオムひオミケ + */ + public BigDecimal getNoChild() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.child_minor.1_child. 1 ムミオミアミオミスミセミコ + */ + public void set_1Child(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.child_minor.1_child. 1 ムミオミアミオミスミセミコ + */ + public BigDecimal get_1Child() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.child_minor.2_child. 2 ムミオミアミオミスミコミー + */ + public void set_2Child(BigDecimal value) { + set(3, value); + } + + /** + * Getter for total_registered.child_minor.2_child. 2 ムミオミアミオミスミコミー + */ + public BigDecimal get_2Child() { + return (BigDecimal) get(3); + } + + /** + * Setter for total_registered.child_minor.3_child. 3 ムミオミアミオミスミコミー + */ + public void set_3Child(BigDecimal value) { + set(4, value); + } + + /** + * Getter for total_registered.child_minor.3_child. 3 ムミオミアミオミスミコミー + */ + public BigDecimal get_3Child() { + return (BigDecimal) get(4); + } + + /** + * Setter for total_registered.child_minor.4_more_child. 4 ミク + * ミアミセミサミオミオ + */ + public void set_4MoreChild(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.child_minor.4_more_child. 4 ミク + * ミアミセミサミオミオ + */ + public BigDecimal get_4MoreChild() { + return (BigDecimal) get(5); + } + + /** + * Setter for total_registered.child_minor.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public void setAllMW(String value) { + set(6, value); + } + + /** + * Getter for total_registered.child_minor.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public String getAllMW() { + return (String) get(6); + } + + /** + * Setter for total_registered.child_minor.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(7, value); + } + + /** + * Getter for total_registered.child_minor.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(7); + } + + /** + * Setter for total_registered.child_minor.no_child_percent. + * ミ斷オム ミエミオムひオミケ ミイ ミソムミセムミオミスムひーム + */ + public void setNoChildPercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for total_registered.child_minor.no_child_percent. + * ミ斷オム ミエミオムひオミケ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNoChildPercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for total_registered.child_minor.1_child_percent. 1 + * ムミオミアミオミスミセミコ ミイ ミソムミセムミオミスムひーム + */ + public void set_1ChildPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for total_registered.child_minor.1_child_percent. 1 + * ムミオミアミオミスミセミコ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_1ChildPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for total_registered.child_minor.2_child_percent. 2 + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public void set_2ChildPercent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for total_registered.child_minor.2_child_percent. 2 + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_2ChildPercent() { + return (BigDecimal) get(10); + } + + /** + * Setter for total_registered.child_minor.3_child_percent. 3 + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public void set_3ChildPercent(BigDecimal value) { + set(11, value); + } + + /** + * Getter for total_registered.child_minor.3_child_percent. 3 + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_3ChildPercent() { + return (BigDecimal) get(11); + } + + /** + * Setter for + * total_registered.child_minor.4_more_child_percent. 4 ミク ミアミセミサミオミオ + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public void set_4MoreChildPercent(BigDecimal value) { + set(12, value); + } + + /** + * Getter for + * total_registered.child_minor.4_more_child_percent. 4 ミク ミアミセミサミオミオ + * ムミオミアミオミスミコミー ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal get_4MoreChildPercent() { + return (BigDecimal) get(12); + } + + /** + * Setter for total_registered.child_minor.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(13, value); + } + + /** + * Getter for total_registered.child_minor.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(13); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ChildMinorRecord + */ + public ChildMinorRecord() { + super(ChildMinor.CHILD_MINOR); + } + + /** + * 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) { + super(ChildMinor.CHILD_MINOR); + + setIdChildMinor(idChildMinor); + setNoChild(noChild); + set_1Child(_1Child); + set_2Child(_2Child); + set_3Child(_3Child); + set_4MoreChild(_4MoreChild); + setAllMW(allMW); + setRecordingDate(recordingDate); + setNoChildPercent(noChildPercent); + set_1ChildPercent(_1ChildPercent); + set_2ChildPercent(_2ChildPercent); + set_3ChildPercent(_3ChildPercent); + set_4MoreChildPercent(_4MoreChildPercent); + setRecruitmentId(recruitmentId); + 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 new file mode 100644 index 0000000..64bafb3 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/DriverLicenseRecord.java @@ -0,0 +1,314 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.DriverLicense; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ斷ーミサミクムミクミオ ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, + * ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DriverLicenseRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * total_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); + } + + /** + * Getter for total_registered.driver_license.nope. ミスミオム + * ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム + */ + public BigDecimal getNope() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.driver_license.A. ミコミームひオミウミセムミクム A + */ + public void setA(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.driver_license.A. ミコミームひオミウミセムミクム A + */ + public BigDecimal getA() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.driver_license.B. ミコミームひオミウミセムミクム B + */ + public void setB(BigDecimal value) { + set(3, value); + } + + /** + * Getter for total_registered.driver_license.B. ミコミームひオミウミセムミクム B + */ + public BigDecimal getB() { + return (BigDecimal) get(3); + } + + /** + * Setter for total_registered.driver_license.C. ミコミームひオミウミセムミクム C + */ + public void setC(BigDecimal value) { + set(4, value); + } + + /** + * Getter for total_registered.driver_license.C. ミコミームひオミウミセムミクム C + */ + public BigDecimal getC() { + return (BigDecimal) get(4); + } + + /** + * Setter for total_registered.driver_license.D. ミコミームひオミウミセムミクム D + */ + public void setD(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.driver_license.D. ミコミームひオミウミセムミクム D + */ + public BigDecimal getD() { + return (BigDecimal) get(5); + } + + /** + * Setter for total_registered.driver_license.E. ミコミームひオミウミセムミクム E + */ + public void setE(BigDecimal value) { + set(6, value); + } + + /** + * Getter for total_registered.driver_license.E. ミコミームひオミウミセムミクム E + */ + public BigDecimal getE() { + return (BigDecimal) get(6); + } + + /** + * Setter for total_registered.driver_license.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public void setAllMW(String value) { + set(7, value); + } + + /** + * Getter for total_registered.driver_license.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public String getAllMW() { + return (String) get(7); + } + + /** + * Setter for total_registered.driver_license.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(8, value); + } + + /** + * Getter for total_registered.driver_license.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(8); + } + + /** + * Setter for total_registered.driver_license.nope_repcent. ミスミオム + * ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ミイ ミソムミセムミオミスムひーム + */ + public void setNopeRepcent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for total_registered.driver_license.nope_repcent. ミスミオム + * ミイミセミエミクムひオミサム袴ミコミセミウミセ ムσエミセムムひセミイミオムミオミスミクム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNopeRepcent() { + return (BigDecimal) get(9); + } + + /** + * Setter for total_registered.driver_license.A_repcent. + * ミコミームひオミウミセムミクム A ミイ ミソムミセムミオミスムひーム + */ + public void setARepcent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for total_registered.driver_license.A_repcent. + * ミコミームひオミウミセムミクム A ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getARepcent() { + return (BigDecimal) get(10); + } + + /** + * Setter for total_registered.driver_license.B_repcent. + * ミコミームひオミウミセムミクム B ミイ ミソムミセムミオミスムひーム + */ + public void setBRepcent(BigDecimal value) { + set(11, value); + } + + /** + * Getter for total_registered.driver_license.B_repcent. + * ミコミームひオミウミセムミクム B ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getBRepcent() { + return (BigDecimal) get(11); + } + + /** + * Setter for total_registered.driver_license.C_repcent. + * ミコミームひオミウミセムミクム C ミイ ミソムミセムミオミスムひーム + */ + public void setCRepcent(BigDecimal value) { + set(12, value); + } + + /** + * Getter for total_registered.driver_license.C_repcent. + * ミコミームひオミウミセムミクム C ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getCRepcent() { + return (BigDecimal) get(12); + } + + /** + * Setter for total_registered.driver_license.D_repcent. + * ミコミームひオミウミセムミクム D ミイ ミソムミセムミオミスムひーム + */ + public void setDRepcent(BigDecimal value) { + set(13, value); + } + + /** + * Getter for total_registered.driver_license.D_repcent. + * ミコミームひオミウミセムミクム D ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getDRepcent() { + return (BigDecimal) get(13); + } + + /** + * Setter for total_registered.driver_license.E_repcent. + * ミコミームひオミウミセムミクム E ミイ ミソムミセムミオミスムひーム + */ + public void setERepcent(BigDecimal value) { + set(14, value); + } + + /** + * Getter for total_registered.driver_license.E_repcent. + * ミコミームひオミウミセムミクム E ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getERepcent() { + return (BigDecimal) get(14); + } + + /** + * Setter for total_registered.driver_license.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(15, value); + } + + /** + * Getter for total_registered.driver_license.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(15); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DriverLicenseRecord + */ + public DriverLicenseRecord() { + super(DriverLicense.DRIVER_LICENSE); + } + + /** + * Create a detached, initialised DriverLicenseRecord + */ + public DriverLicenseRecord(Long idDriverLicense, BigDecimal nope, BigDecimal a, BigDecimal b, BigDecimal c, BigDecimal d, BigDecimal e, String allMW, Date recordingDate, BigDecimal nopeRepcent, BigDecimal aRepcent, BigDecimal bRepcent, BigDecimal cRepcent, BigDecimal dRepcent, BigDecimal eRepcent, UUID recruitmentId) { + super(DriverLicense.DRIVER_LICENSE); + + setIdDriverLicense(idDriverLicense); + setNope(nope); + setA(a); + setB(b); + setC(c); + setD(d); + setE(e); + setAllMW(allMW); + setRecordingDate(recordingDate); + setNopeRepcent(nopeRepcent); + setARepcent(aRepcent); + setBRepcent(bRepcent); + setCRepcent(cRepcent); + setDRepcent(dRepcent); + setERepcent(eRepcent); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/EducationLevelRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/EducationLevelRecord.java new file mode 100644 index 0000000..d64ca51 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/EducationLevelRecord.java @@ -0,0 +1,258 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.EducationLevel; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ」ムミセミイミオミスム ミセミアムミーミキミセミイミーミスミクム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class EducationLevelRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * total_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); + } + + /** + * Getter for total_registered.education_level.higher. ミ柘錦ム威オミオ + * ミセミアムミーミキミセミイミーミスミクミオ + */ + public BigDecimal getHigher() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.education_level.average. ミ。ムミオミエミスミオミオ + * ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ + */ + public void setAverage(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.education_level.average. ミ。ムミオミエミスミオミオ + * ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ + */ + public BigDecimal getAverage() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.education_level.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public void setAllMW(String value) { + set(3, value); + } + + /** + * Getter for total_registered.education_level.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public String getAllMW() { + return (String) get(3); + } + + /** + * Setter for total_registered.education_level.only_general. + * ミ「ミセミサム糊コミセ ミセミアム禍オミオ + */ + public void setOnlyGeneral(BigDecimal value) { + set(4, value); + } + + /** + * Getter for total_registered.education_level.only_general. + * ミ「ミセミサム糊コミセ ミセミアム禍オミオ + */ + public BigDecimal getOnlyGeneral() { + return (BigDecimal) get(4); + } + + /** + * Setter for total_registered.education_level.no_data. ミ斷オム + * ミエミーミスミスム錦 + */ + public void setNoData(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.education_level.no_data. ミ斷オム + * ミエミーミスミスム錦 + */ + public BigDecimal getNoData() { + return (BigDecimal) get(5); + } + + /** + * Setter for total_registered.education_level.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(6, value); + } + + /** + * Getter for total_registered.education_level.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(6); + } + + /** + * Setter for total_registered.education_level.higher_percent. + * ミ柘錦ム威オミオ ミセミアムミーミキミセミイミーミスミクミオ ミイ ミソムミセムミオミスムひーム + */ + public void setHigherPercent(BigDecimal value) { + set(7, value); + } + + /** + * Getter for total_registered.education_level.higher_percent. + * ミ柘錦ム威オミオ ミセミアムミーミキミセミイミーミスミクミオ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getHigherPercent() { + return (BigDecimal) get(7); + } + + /** + * Setter for total_registered.education_level.average_percent. + * ミ。ムミオミエミスミオミオ ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ ミイ ミソムミセムミオミスムひーム + */ + public void setAveragePercent(BigDecimal value) { + set(8, value); + } + + /** + * Getter for total_registered.education_level.average_percent. + * ミ。ムミオミエミスミオミオ ミソムミセムミオムムミクミセミスミーミサム糊スミセミオ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getAveragePercent() { + return (BigDecimal) get(8); + } + + /** + * Setter for + * total_registered.education_level.only_general_percent. + * ミ「ミセミサム糊コミセ ミセミアム禍オミオ ミイ ミソムミセムミオミスムひーム + */ + public void setOnlyGeneralPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for + * total_registered.education_level.only_general_percent. + * ミ「ミセミサム糊コミセ ミセミアム禍オミオ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getOnlyGeneralPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for total_registered.education_level.no_data_percent. + * ミ斷オム ミエミーミスミスム錦 ミセミア ミセミアムミーミキミセミイミーミスミクミクミク ミイ ミソムミセムミオミスムひーム + */ + public void setNoDataPercent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for total_registered.education_level.no_data_percent. + * ミ斷オム ミエミーミスミスム錦 ミセミア ミセミアムミーミキミセミイミーミスミクミクミク ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNoDataPercent() { + return (BigDecimal) get(10); + } + + /** + * Setter for total_registered.education_level.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(11, value); + } + + /** + * Getter for total_registered.education_level.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(11); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached EducationLevelRecord + */ + public EducationLevelRecord() { + super(EducationLevel.EDUCATION_LEVEL); + } + + /** + * Create a detached, initialised EducationLevelRecord + */ + public EducationLevelRecord(Long idEducationLevel, BigDecimal higher, BigDecimal average, String allMW, BigDecimal onlyGeneral, BigDecimal noData, Date recordingDate, BigDecimal higherPercent, BigDecimal averagePercent, BigDecimal onlyGeneralPercent, BigDecimal noDataPercent, UUID recruitmentId) { + super(EducationLevel.EDUCATION_LEVEL); + + setIdEducationLevel(idEducationLevel); + setHigher(higher); + setAverage(average); + setAllMW(allMW); + setOnlyGeneral(onlyGeneral); + setNoData(noData); + setRecordingDate(recordingDate); + setHigherPercent(higherPercent); + setAveragePercent(averagePercent); + setOnlyGeneralPercent(onlyGeneralPercent); + setNoDataPercent(noDataPercent); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/MaritalStatusRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/MaritalStatusRecord.java new file mode 100644 index 0000000..718ca05 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/MaritalStatusRecord.java @@ -0,0 +1,188 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.MaritalStatus; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ。ミオミシミオミケミスミセミオ ミソミセミサミセミカミオミスミクミオ ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム, ミシムσカムミクミス/ミカミオミスム禍クミス/ミイムミオム ミスミー ムτミオムひオ + * ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class MaritalStatusRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * total_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); + } + + /** + * Getter for total_registered.marital_status.married. ミ ミアムミーミコミオ + */ + public BigDecimal getMarried() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.marital_status.not_married. + * ミ・ミセミサミセムム + */ + public void setNotMarried(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.marital_status.not_married. + * ミ・ミセミサミセムム + */ + public BigDecimal getNotMarried() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.marital_status.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public void setAllMW(String value) { + set(3, value); + } + + /** + * Getter for total_registered.marital_status.all_M_W. + * ミ柘ミオ/ミ慯σカムミクミスム/ミ孟オミスム禍クミスム + */ + public String getAllMW() { + return (String) get(3); + } + + /** + * Setter for total_registered.marital_status.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(4, value); + } + + /** + * Getter for total_registered.marital_status.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(4); + } + + /** + * Setter for total_registered.marital_status.married_percent. + * ミ ミアムミーミコミオ ミイ ミソムミセムミオミスムひーム + */ + public void setMarriedPercent(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.marital_status.married_percent. + * ミ ミアムミーミコミオ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getMarriedPercent() { + return (BigDecimal) get(5); + } + + /** + * Setter for + * total_registered.marital_status.not_married_percent. ミ・ミセミサミセムム + * ミイ ミソムミセムミオミスムひーム + */ + public void setNotMarriedPercent(BigDecimal value) { + set(6, value); + } + + /** + * Getter for + * total_registered.marital_status.not_married_percent. ミ・ミセミサミセムム + * ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNotMarriedPercent() { + return (BigDecimal) get(6); + } + + /** + * Setter for total_registered.marital_status.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(7, value); + } + + /** + * Getter for total_registered.marital_status.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(7); + } + + // ------------------------------------------------------------------------- + // 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 idMaritalStatus, BigDecimal married, BigDecimal notMarried, String allMW, Date recordingDate, BigDecimal marriedPercent, BigDecimal notMarriedPercent, UUID recruitmentId) { + super(MaritalStatus.MARITAL_STATUS); + + setIdMaritalStatus(idMaritalStatus); + setMarried(married); + setNotMarried(notMarried); + setAllMW(allMW); + setRecordingDate(recordingDate); + setMarriedPercent(marriedPercent); + setNotMarriedPercent(notMarriedPercent); + setRecruitmentId(recruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RegMilCatRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RegMilCatRecord.java new file mode 100644 index 0000000..e960702 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RegMilCatRecord.java @@ -0,0 +1,364 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RegMilCat; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ墟ームひオミウミセムミクミク ミソミセムムひーミスミセミイミコミク ミスミー ミイミセミクミスムミコミクミケ ムτミオム ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ ムτミセミイミオミスム + * ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class RegMilCatRecord 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); + } + + /** + * Getter for total_registered.reg_mil_cat.first_reg_17. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 17 ミサミオム + */ + public BigDecimal getFirstReg_17() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.reg_mil_cat.first_reg_18. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム + */ + public void setFirstReg_18(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.reg_mil_cat.first_reg_18. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム + */ + public BigDecimal getFirstReg_18() { + return (BigDecimal) get(2); + } + + /** + * Setter for + * total_registered.reg_mil_cat.returned_dep_liberty. + * ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム + */ + public void setReturnedDepLiberty(BigDecimal value) { + set(3, value); + } + + /** + * Getter for + * total_registered.reg_mil_cat.returned_dep_liberty. + * ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム + */ + public BigDecimal getReturnedDepLiberty() { + return (BigDecimal) get(3); + } + + /** + * Setter for total_registered.reg_mil_cat.mil_spec_W. ミ孟オミスム禍クミスム, + * ミソミセミサムτミクミイム威クミオ ミ漬」ミ。 + */ + public void setMilSpecW(BigDecimal value) { + set(4, value); + } + + /** + * Getter for total_registered.reg_mil_cat.mil_spec_W. ミ孟オミスム禍クミスム, + * ミソミセミサムτミクミイム威クミオ ミ漬」ミ。 + */ + public BigDecimal getMilSpecW() { + return (BigDecimal) get(4); + } + + /** + * Setter for total_registered.reg_mil_cat.punished. ミ樮ひアム巾イミーム紗禍クミオ + * ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム + */ + public void setPunished(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.reg_mil_cat.punished. ミ樮ひアム巾イミーム紗禍クミオ + * ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム + */ + public BigDecimal getPunished() { + return (BigDecimal) get(5); + } + + /** + * Setter for + * total_registered.reg_mil_cat.received_citizenship. + * ミ渙セミサムτミクミイム威クミオ ミウムミーミカミエミーミスムムひイミセ + */ + public void setReceivedCitizenship(BigDecimal value) { + set(6, value); + } + + /** + * Getter for + * total_registered.reg_mil_cat.received_citizenship. + * ミ渙セミサムτミクミイム威クミオ ミウムミーミカミエミーミスムムひイミセ + */ + 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); + } + + /** + * Setter for total_registered.reg_mil_cat.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(8, value); + } + + /** + * Getter for total_registered.reg_mil_cat.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(8); + } + + /** + * Setter for + * total_registered.reg_mil_cat.first_reg_17_percent. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 17 ミサミオム ミイ ミソムミセムミオミスムひーム + */ + public void setFirstReg_17Percent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for + * total_registered.reg_mil_cat.first_reg_17_percent. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 17 ミサミオム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getFirstReg_17Percent() { + return (BigDecimal) get(9); + } + + /** + * Setter for + * total_registered.reg_mil_cat.first_reg_18_percent. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム ミイ ミソムミセムミオミスムひーム + */ + public void setFirstReg_18Percent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for + * total_registered.reg_mil_cat.first_reg_18_percent. + * ミ渙オムミイミセミスミームミーミサム糊スミーム ミソミセムムひーミスミセミイミコミー ミスミー ミイミセミクミスムミコミクミケ ムτミオム ミウムミーミカミエミーミス ミセム 18 ミサミオム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getFirstReg_18Percent() { + return (BigDecimal) get(10); + } + + /** + * Setter for + * total_registered.reg_mil_cat.returned_dep_liberty_percent. + * ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム + */ + public void setReturnedDepLibertyPercent(BigDecimal value) { + set(11, value); + } + + /** + * Getter for + * total_registered.reg_mil_cat.returned_dep_liberty_percent. + * ミ漬セミキミイムミームひクミイム威クミオムム ミクミキ ミシミオムム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getReturnedDepLibertyPercent() { + return (BigDecimal) get(11); + } + + /** + * Setter for total_registered.reg_mil_cat.mil_spec_W_percent. + * ミ孟オミスム禍クミスム, ミソミセミサムτミクミイム威クミオ ミ漬」ミ。 ミイ ミソムミセムミオミスムひーム + */ + public void setMilSpecWPercent(BigDecimal value) { + set(12, value); + } + + /** + * Getter for total_registered.reg_mil_cat.mil_spec_W_percent. + * ミ孟オミスム禍クミスム, ミソミセミサムτミクミイム威クミオ ミ漬」ミ。 ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getMilSpecWPercent() { + return (BigDecimal) get(12); + } + + /** + * Setter for total_registered.reg_mil_cat.punished_percent. + * ミ樮ひアム巾イミーム紗禍クミオ ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム + */ + public void setPunishedPercent(BigDecimal value) { + set(13, value); + } + + /** + * Getter for total_registered.reg_mil_cat.punished_percent. + * ミ樮ひアム巾イミーム紗禍クミオ ミスミーミコミーミキミーミスミクミオ ミイ ミシミオムムひーム ミサミクム威オミスミクム ムミイミセミアミセミエム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getPunishedPercent() { + return (BigDecimal) get(13); + } + + /** + * Setter for + * total_registered.reg_mil_cat.received_citizenship_percent. + * ミ渙セミサムτミクミイム威クミオ ミウムミーミカミエミーミスムムひイミセ ミイ ミソムミセムミオミスムひーム + */ + public void setReceivedCitizenshipPercent(BigDecimal value) { + set(14, value); + } + + /** + * Getter for + * total_registered.reg_mil_cat.received_citizenship_percent. + * ミ渙セミサムτミクミイム威クミオ ミウムミーミカミエミーミスムムひイミセ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getReceivedCitizenshipPercent() { + return (BigDecimal) get(14); + } + + /** + * Setter for total_registered.reg_mil_cat.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(15, value); + } + + /** + * Getter for total_registered.reg_mil_cat.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(15); + } + + /** + * Setter for total_registered.reg_mil_cat.testrecruitment_id. + */ + public void setTestrecruitmentId(String value) { + set(16, value); + } + + /** + * Getter for total_registered.reg_mil_cat.testrecruitment_id. + */ + public String getTestrecruitmentId() { + return (String) get(16); + } + + /** + * Setter for total_registered.reg_mil_cat.testmil_reg. + */ + public void setTestmilReg(BigDecimal value) { + set(17, value); + } + + /** + * Getter for total_registered.reg_mil_cat.testmil_reg. + */ + public BigDecimal getTestmilReg() { + return (BigDecimal) get(17); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached RegMilCatRecord + */ + public RegMilCatRecord() { + super(RegMilCat.REG_MIL_CAT); + } + + /** + * 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) { + 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); + setReturnedDepLibertyPercent(returnedDepLibertyPercent); + setMilSpecWPercent(milSpecWPercent); + setPunishedPercent(punishedPercent); + setReceivedCitizenshipPercent(receivedCitizenshipPercent); + setRecruitmentId(recruitmentId); + setTestrecruitmentId(testrecruitmentId); + setTestmilReg(testmilReg); + 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 new file mode 100644 index 0000000..71a8e92 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/RemovedRegistryRecord.java @@ -0,0 +1,348 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.RemovedRegistry; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ。ミスム肖ひセ ム ムτミオムひー ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class RemovedRegistryRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * total_registered.removed_registry.removed_registry. ミ。ミスム肖ひセ ム + * ムτミオムひー + */ + public void setRemovedRegistry(BigDecimal value) { + set(0, value); + } + + /** + * Getter for + * total_registered.removed_registry.removed_registry. ミ。ミスム肖ひセ ム + * ムτミオムひー + */ + public BigDecimal getRemovedRegistry() { + return (BigDecimal) get(0); + } + + /** + * Setter for + * total_registered.removed_registry.deprivation_citizenship. + * ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー + */ + public void setDeprivationCitizenship(BigDecimal value) { + set(1, value); + } + + /** + * Getter for + * total_registered.removed_registry.deprivation_citizenship. + * ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー + */ + public BigDecimal getDeprivationCitizenship() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.removed_registry.age_limit. + * ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー + */ + public void setAgeLimit(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.removed_registry.age_limit. + * ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー + */ + public BigDecimal getAgeLimit() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.removed_registry.death. ミ。ミシミオムムび + */ + public void setDeath(BigDecimal value) { + set(3, value); + } + + /** + * Getter for total_registered.removed_registry.death. ミ。ミシミオムムび + */ + public BigDecimal getDeath() { + return (BigDecimal) get(3); + } + + /** + * Setter for total_registered.removed_registry.travel_abroad. + * ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ + */ + public void setTravelAbroad(BigDecimal value) { + set(4, value); + } + + /** + * Getter for total_registered.removed_registry.travel_abroad. + * ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ + */ + public BigDecimal getTravelAbroad() { + return (BigDecimal) get(4); + } + + /** + * Setter for total_registered.removed_registry.living_abroad. + * ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ + */ + public void setLivingAbroad(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.removed_registry.living_abroad. + * ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ + */ + public BigDecimal getLivingAbroad() { + return (BigDecimal) get(5); + } + + /** + * Setter for total_registered.removed_registry.other. ミ湲ミセムミオミオ + */ + public void setOther(BigDecimal value) { + set(6, value); + } + + /** + * Getter for total_registered.removed_registry.other. ミ湲ミセムミオミオ + */ + public BigDecimal getOther() { + return (BigDecimal) get(6); + } + + /** + * Setter for total_registered.removed_registry.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(7, value); + } + + /** + * Getter for total_registered.removed_registry.recording_date. + * ミ頒ームひー ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(7); + } + + /** + * Setter for + * total_registered.removed_registry.deprivation_citizen_percents. + * ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー ミイ ミソムミセムミオミスムひーム + */ + public void setDeprivationCitizenPercents(BigDecimal value) { + set(8, value); + } + + /** + * Getter for + * total_registered.removed_registry.deprivation_citizen_percents. + * ミ嶢クム威オミスミクミオ ミウムミーミカミエミーミスムムひイミー ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getDeprivationCitizenPercents() { + return (BigDecimal) get(8); + } + + /** + * Setter for + * total_registered.removed_registry.age_limit_percent. + * ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー ミイ ミソムミセムミオミスムひーム + */ + public void setAgeLimitPercent(BigDecimal value) { + set(9, value); + } + + /** + * Getter for + * total_registered.removed_registry.age_limit_percent. + * ミ斷ームムびσソミサミオミスミクミオ ミソムミオミエミオミサム糊スミセミウミセ ミイミセミキムミームムひー ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getAgeLimitPercent() { + return (BigDecimal) get(9); + } + + /** + * Setter for total_registered.removed_registry.death_percent. + * ミ。ミシミオムムび ミイ ミソムミセムミオミスムひーム + */ + public void setDeathPercent(BigDecimal value) { + set(10, value); + } + + /** + * Getter for total_registered.removed_registry.death_percent. + * ミ。ミシミオムムび ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getDeathPercent() { + return (BigDecimal) get(10); + } + + /** + * Setter for + * total_registered.removed_registry.travel_abroad_percent. + * ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ ミイ ミソムミセムミオミスムひーム + */ + public void setTravelAbroadPercent(BigDecimal value) { + set(11, value); + } + + /** + * Getter for + * total_registered.removed_registry.travel_abroad_percent. + * ミ柘巾オミキミエ ミキミー ミウムミーミスミクムム ミスミー ムムミセミコ ミアミセミサミオミオ 6 ミシミオムム肖ミオミイ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getTravelAbroadPercent() { + return (BigDecimal) get(11); + } + + /** + * Setter for + * total_registered.removed_registry.living_abroad_percent. + * ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ ミイ ミソムミセムミオミスムひーム + */ + public void setLivingAbroadPercent(BigDecimal value) { + set(12, value); + } + + /** + * Getter for + * total_registered.removed_registry.living_abroad_percent. + * ミ湲ミセミカミクミイミーム紗禍クミオ ミキミー ミウムミーミスミクムミオミケ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getLivingAbroadPercent() { + return (BigDecimal) get(12); + } + + /** + * Setter for total_registered.removed_registry.other_percent. + * ミ湲ミセムミオミオ ミイ ミソムミセムミオミスムひーム + */ + public void setOtherPercent(BigDecimal value) { + set(13, value); + } + + /** + * Getter for total_registered.removed_registry.other_percent. + * ミ湲ミセムミオミオ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getOtherPercent() { + return (BigDecimal) get(13); + } + + /** + * Setter for total_registered.removed_registry.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(14, value); + } + + /** + * Getter for total_registered.removed_registry.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(14); + } + + /** + * Setter for + * total_registered.removed_registry.id_removed_registry. + */ + public void setIdRemovedRegistry(Long value) { + set(15, value); + } + + /** + * Getter for + * total_registered.removed_registry.id_removed_registry. + */ + public Long getIdRemovedRegistry() { + return (Long) get(15); + } + + /** + * Setter for + * total_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(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached RemovedRegistryRecord + */ + public RemovedRegistryRecord() { + super(RemovedRegistry.REMOVED_REGISTRY); + } + + /** + * Create a detached, initialised RemovedRegistryRecord + */ + public RemovedRegistryRecord(BigDecimal removedRegistry, BigDecimal deprivationCitizenship, BigDecimal ageLimit, BigDecimal death, BigDecimal travelAbroad, BigDecimal livingAbroad, BigDecimal other, Date recordingDate, BigDecimal deprivationCitizenPercents, BigDecimal ageLimitPercent, BigDecimal deathPercent, BigDecimal travelAbroadPercent, BigDecimal livingAbroadPercent, BigDecimal otherPercent, UUID recruitmentId, Long idRemovedRegistry, String testrecruitmentId) { + super(RemovedRegistry.REMOVED_REGISTRY); + + setRemovedRegistry(removedRegistry); + setDeprivationCitizenship(deprivationCitizenship); + setAgeLimit(ageLimit); + setDeath(death); + setTravelAbroad(travelAbroad); + setLivingAbroad(livingAbroad); + setOther(other); + setRecordingDate(recordingDate); + setDeprivationCitizenPercents(deprivationCitizenPercents); + setAgeLimitPercent(ageLimitPercent); + setDeathPercent(deathPercent); + setTravelAbroadPercent(travelAbroadPercent); + setLivingAbroadPercent(livingAbroadPercent); + setOtherPercent(otherPercent); + setRecruitmentId(recruitmentId); + setIdRemovedRegistry(idRemovedRegistry); + setTestrecruitmentId(testrecruitmentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/SubpoenasRecord.java b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/SubpoenasRecord.java new file mode 100644 index 0000000..d9dcb72 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/ervu_dashboard/db_beans/total_registered/tables/records/SubpoenasRecord.java @@ -0,0 +1,455 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.records; + + +import ervu_dashboard.ervu_dashboard.db_beans.total_registered.tables.Subpoenas; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.UUID; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * ミ渙セミイミオムムひコミク ムミセムムひセム肖禍クム/ミスミオ ムミセムムひセム肖禍クム ミスミー ムτミオムひオ ムτミセミイミオミスム ミミ、 + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class SubpoenasRecord 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); + } + + /** + * Getter for total_registered.subpoenas.subpoena. ミ斷ーミソムミーミイミサミオミスミセ + * ミソミセミイミオムムひセミコ + */ + public BigDecimal getSubpoena() { + return (BigDecimal) get(1); + } + + /** + * Setter for total_registered.subpoenas.average_appeared. + * ミ。ムミオミエミスミクミケ ムムミセミコ ム紹イミコミク + */ + public void setAverageAppeared(BigDecimal value) { + set(2, value); + } + + /** + * Getter for total_registered.subpoenas.average_appeared. + * ミ。ムミオミエミスミクミケ ムムミセミコ ム紹イミコミク + */ + public BigDecimal getAverageAppeared() { + return (BigDecimal) get(2); + } + + /** + * Setter for total_registered.subpoenas.appeared. ミッミイミクミサミクムム + */ + public void setAppeared(BigDecimal value) { + set(3, value); + } + + /** + * Getter for total_registered.subpoenas.appeared. ミッミイミクミサミクムム + */ + public BigDecimal getAppeared() { + return (BigDecimal) get(3); + } + + /** + * Setter for total_registered.subpoenas.not_appeared. ミ斷オ + * ム紹イミクミサミクムム + */ + public void setNotAppeared(BigDecimal value) { + set(4, value); + } + + /** + * Getter for total_registered.subpoenas.not_appeared. ミ斷オ + * ム紹イミクミサミクムム + */ + public BigDecimal getNotAppeared() { + return (BigDecimal) get(4); + } + + /** + * Setter for total_registered.subpoenas.not_ap_good_reason. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public void setNotApGoodReason(BigDecimal value) { + set(5, value); + } + + /** + * Getter for total_registered.subpoenas.not_ap_good_reason. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ + */ + public BigDecimal getNotApGoodReason() { + return (BigDecimal) get(5); + } + + /** + * Setter for total_registered.subpoenas.ap_not_required. ミッミイミコミー + * ミスミオ ムびミオミアムσオムびム + */ + public void setApNotRequired(BigDecimal value) { + set(6, value); + } + + /** + * Getter for total_registered.subpoenas.ap_not_required. ミッミイミコミー + * ミスミオ ムびミオミアムσオムびム + */ + public BigDecimal getApNotRequired() { + return (BigDecimal) get(6); + } + + /** + * Setter for total_registered.subpoenas.electron. ミュミサミオミコムびミセミスミスミセ + */ + public void setElectron(BigDecimal value) { + set(7, value); + } + + /** + * Getter for total_registered.subpoenas.electron. ミュミサミオミコムびミセミスミスミセ + */ + public BigDecimal getElectron() { + return (BigDecimal) get(7); + } + + /** + * Setter for total_registered.subpoenas.paper. ミ斷ームミセムミスミセ + */ + public void setPaper(BigDecimal value) { + set(8, value); + } + + /** + * Getter for total_registered.subpoenas.paper. ミ斷ームミセムミスミセ + */ + public BigDecimal getPaper() { + return (BigDecimal) get(8); + } + + /** + * Setter for total_registered.subpoenas.restrictions_applied. + * ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + public void setRestrictionsApplied(BigDecimal value) { + set(9, value); + } + + /** + * Getter for total_registered.subpoenas.restrictions_applied. + * ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ + */ + public BigDecimal getRestrictionsApplied() { + return (BigDecimal) get(9); + } + + /** + * Setter for total_registered.subpoenas.introduced_measures. + * ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + public void setIntroducedMeasures(BigDecimal value) { + set(10, value); + } + + /** + * Getter for total_registered.subpoenas.introduced_measures. + * ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム + */ + 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); + } + + /** + * Setter for total_registered.subpoenas.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public void setRecordingDate(Date value) { + set(12, value); + } + + /** + * Getter for total_registered.subpoenas.recording_date. ミ頒ームひー + * ミキミーミソミクムミク + */ + public Date getRecordingDate() { + return (Date) get(12); + } + + /** + * Setter for total_registered.subpoenas.appeared_percent. + * ミッミイミクミサミクムム ミイ ミソムミセムミオミスムひーム + */ + public void setAppearedPercent(BigDecimal value) { + set(13, value); + } + + /** + * Getter for total_registered.subpoenas.appeared_percent. + * ミッミイミクミサミクムム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getAppearedPercent() { + return (BigDecimal) get(13); + } + + /** + * Setter for total_registered.subpoenas.not_appeared_percent. + * ミ斷オ ム紹イミクミサミクムム ミイ ミソムミセムミオミスムひーム + */ + public void setNotAppearedPercent(BigDecimal value) { + set(14, value); + } + + /** + * Getter for total_registered.subpoenas.not_appeared_percent. + * ミ斷オ ム紹イミクミサミクムム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNotAppearedPercent() { + return (BigDecimal) get(14); + } + + /** + * Setter for + * total_registered.subpoenas.not_ap_good_reason_percent. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ ミイ ミソムミセムミオミスムひーム + */ + public void setNotApGoodReasonPercent(BigDecimal value) { + set(15, value); + } + + /** + * Getter for + * total_registered.subpoenas.not_ap_good_reason_percent. ミ斷オ + * ム紹イミクミサミクムム ミソミセ ムσイミーミカミクムひオミサム糊スミセミケ ミソムミクムミクミスミオ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getNotApGoodReasonPercent() { + return (BigDecimal) get(15); + } + + /** + * Setter for + * total_registered.subpoenas.ap_not_required_percent. ミッミイミコミー ミスミオ + * ムびミオミアムσオムびム ミイ ミソムミセムミオミスムひーム + */ + public void setApNotRequiredPercent(BigDecimal value) { + set(16, value); + } + + /** + * Getter for + * total_registered.subpoenas.ap_not_required_percent. ミッミイミコミー ミスミオ + * ムびミオミアムσオムびム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getApNotRequiredPercent() { + return (BigDecimal) get(16); + } + + /** + * Setter for total_registered.subpoenas.electron_percent. + * ミュミサミオミコムびミセミスミスミセ ミイ ミソムミセムミオミスムひーム + */ + public void setElectronPercent(BigDecimal value) { + set(17, value); + } + + /** + * Getter for total_registered.subpoenas.electron_percent. + * ミュミサミオミコムびミセミスミスミセ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getElectronPercent() { + return (BigDecimal) get(17); + } + + /** + * Setter for total_registered.subpoenas.paper_percent. ミ斷ームミセムミスミセ + * ミイ ミソムミセムミオミスムひーム + */ + public void setPaperPercent(BigDecimal value) { + set(18, value); + } + + /** + * Getter for total_registered.subpoenas.paper_percent. ミ斷ームミセムミスミセ + * ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getPaperPercent() { + return (BigDecimal) get(18); + } + + /** + * Setter for + * total_registered.subpoenas.restrictions_applied_percent. + * ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ ミイ ミソムミセムミオミスムひーム + */ + public void setRestrictionsAppliedPercent(BigDecimal value) { + set(19, value); + } + + /** + * Getter for + * total_registered.subpoenas.restrictions_applied_percent. + * ミ湲ミクミシミオミスミオミスミセ ミセミウムミーミスミクムミオミスミクミケ ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getRestrictionsAppliedPercent() { + return (BigDecimal) get(19); + } + + /** + * Setter for + * total_registered.subpoenas.introduced_measures_percent. + * ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム ミイ ミソムミセムミオミスムひーム + */ + public void setIntroducedMeasuresPercent(BigDecimal value) { + set(20, value); + } + + /** + * Getter for + * total_registered.subpoenas.introduced_measures_percent. + * ミ漬イミオミエミオミスミセ ムミオミーミサミクミキミームひセムミセミシ ミシミオム ミイ ミソムミセムミオミスムひーム + */ + public BigDecimal getIntroducedMeasuresPercent() { + return (BigDecimal) get(20); + } + + /** + * Setter for total_registered.subpoenas.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(21, value); + } + + /** + * Getter for total_registered.subpoenas.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(21); + } + + /** + * Setter for total_registered.subpoenas.testrecruitment_id. + */ + public void setTestrecruitmentId(String value) { + set(22, value); + } + + /** + * Getter for total_registered.subpoenas.testrecruitment_id. + */ + public String getTestrecruitmentId() { + return (String) get(22); + } + + /** + * Setter for total_registered.subpoenas.testmil_reg. + */ + public void setTestmilReg(BigDecimal value) { + set(23, value); + } + + /** + * Getter for total_registered.subpoenas.testmil_reg. + */ + public BigDecimal getTestmilReg() { + return (BigDecimal) get(23); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached SubpoenasRecord + */ + public SubpoenasRecord() { + super(Subpoenas.SUBPOENAS); + } + + /** + * 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) { + super(Subpoenas.SUBPOENAS); + + setIdSubpoena(idSubpoena); + setSubpoena(subpoena); + setAverageAppeared(averageAppeared); + setAppeared(appeared); + setNotAppeared(notAppeared); + setNotApGoodReason(notApGoodReason); + setApNotRequired(apNotRequired); + setElectron(electron); + setPaper(paper); + setRestrictionsApplied(restrictionsApplied); + setIntroducedMeasures(introducedMeasures); + setMilReg(milReg); + setRecordingDate(recordingDate); + setAppearedPercent(appearedPercent); + setNotAppearedPercent(notAppearedPercent); + setNotApGoodReasonPercent(notApGoodReasonPercent); + setApNotRequiredPercent(apNotRequiredPercent); + setElectronPercent(electronPercent); + setPaperPercent(paperPercent); + setRestrictionsAppliedPercent(restrictionsAppliedPercent); + setIntroducedMeasuresPercent(introducedMeasuresPercent); + setRecruitmentId(recruitmentId); + setTestrecruitmentId(testrecruitmentId); + setTestmilReg(testmilReg); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/Font.java b/backend/src/main/java/ervu_dashboard/model/Font.java new file mode 100644 index 0000000..30f0904 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/Font.java @@ -0,0 +1,51 @@ +package ervu_dashboard.model; + +import ru.cg.webbpm.modules.webkit.annotations.Model; + +/** + * @author Vitaly Chekushkin + */ + +@Model +public class Font { + + public String family; + public String weight; + public Integer size; + + public static Font of(String family, String weight, Integer size) { + return new Font(family, weight, size); + } + + public Font(String family, String weight, Integer size) { + this.family = family; + this.weight = weight; + this.size = size; + } + + public Font() {} + + public String getFamily() { + return family; + } + + public void setFamily(String family) { + this.family = family; + } + + public String getWeight() { + return weight; + } + + public void setWeight(String weight) { + this.weight = weight; + } + + public Integer getSize() { + return size; + } + + public void setSize(Integer size) { + this.size = size; + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/BarMockDataset.java b/backend/src/main/java/ervu_dashboard/model/chart/BarMockDataset.java new file mode 100644 index 0000000..bad7f55 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/BarMockDataset.java @@ -0,0 +1,20 @@ +package ervu_dashboard.model.chart; + +import com.fasterxml.jackson.annotation.JsonInclude; + +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; + +/** + * @author Vitaly Chekushkin + */ + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class BarMockDataset { + public String label; + public Integer[] data; + + public String barPercentage; // 0.0 - 1.0 + public Integer borderRadius; + @ColorEditor + public String[] backgroundColor; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/BarMockDatasets.java b/backend/src/main/java/ervu_dashboard/model/chart/BarMockDatasets.java new file mode 100644 index 0000000..2ef46b1 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/BarMockDatasets.java @@ -0,0 +1,14 @@ +package ervu_dashboard.model.chart; + +import component.chart.dto.IChartDataDto; + +import ru.cg.webbpm.modules.standard_annotations.editor.Visible; + +/** + * @author Vitaly Chekushkin + */ +public class BarMockDatasets implements IChartDataDto { + public BarMockDataset[] datasets; + @Visible(predicate = "false") + public String[] labels; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/ChartDatasetType.java b/backend/src/main/java/ervu_dashboard/model/chart/ChartDatasetType.java new file mode 100644 index 0000000..d0c39a9 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/ChartDatasetType.java @@ -0,0 +1,11 @@ +package ervu_dashboard.model.chart; + +/** + * @author Vitaly Chekushkin + */ + +public enum ChartDatasetType { + STATIC, + AGGREGATION, + COLUMN_AGGREGATION +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationData.java b/backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationData.java new file mode 100644 index 0000000..1815245 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationData.java @@ -0,0 +1,30 @@ +package ervu_dashboard.model.chart; + +import property.grid.Formatter; +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.bean.AggregationFunction; +import ru.cg.webbpm.modules.database.bean.annotation.GraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class ColumnAggregationData { + @NotNull + public String label; + @NotNull + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + public EntityColumn aggregationColumn; + @NotNull + public AggregationFunction aggregationFunction; + @NotNull + @ColorEditor + public String borderColor; + public Formatter aggregationColumnFormatter; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationDataSet.java b/backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationDataSet.java new file mode 100644 index 0000000..121de61 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/ColumnAggregationDataSet.java @@ -0,0 +1,36 @@ +package ervu_dashboard.model.chart; + +import component.chart.enums.MultiChartType; + +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; +import ru.cg.webbpm.modules.standard_annotations.editor.Visible; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class ColumnAggregationDataSet { + @NotNull + public MultiChartType chartType; + @NotNull + public String dataSetLabel; + @NotNull + public ColumnAggregationData[] aggregationData; + + @ColorEditor + public String borderColor; + + @Visible(predicate = "chartType == MultiChartType.BAR || chartType == MultiChartType.HORIZONTAL_BAR") + public Integer borderRadius; + + @Visible(predicate = "chartType == MultiChartType.BAR || chartType == MultiChartType.HORIZONTAL_BAR") + public String barPercentage; + + public String xAxesId; + + public String yAxesId; + + public Float tension; + + public Integer drawOrder; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDataset.java b/backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDataset.java new file mode 100644 index 0000000..1f8613f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDataset.java @@ -0,0 +1,18 @@ +package ervu_dashboard.model.chart; + +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; + +/** + * @author Vitaly Chekushkin + */ +public class DoughnutMockDataset { + public Integer[] data; + @ColorEditor + public String[] backgroundColor; + + public Integer borderWidth; + public String radius; + public String cutout; + + public Integer hoverOffset; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDatasets.java b/backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDatasets.java new file mode 100644 index 0000000..1da4190 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/DoughnutMockDatasets.java @@ -0,0 +1,12 @@ +package ervu_dashboard.model.chart; + +import component.chart.dto.IChartDataDto; +import ervu_dashboard.model.chart.round.label.ChartLabelModel; + +/** + * @author Vitaly Chekushkin + */ +public class DoughnutMockDatasets implements IChartDataDto { + public DoughnutMockDataset[] datasets; + public ChartLabelModel[] centerLabels; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/ErvuChartDataSetDto.java b/backend/src/main/java/ervu_dashboard/model/chart/ErvuChartDataSetDto.java new file mode 100644 index 0000000..7bc936b --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/ErvuChartDataSetDto.java @@ -0,0 +1,46 @@ +package ervu_dashboard.model.chart; + +import java.util.List; + +import component.chart.dto.ChartDataSetDto; +import component.chart.dto.ChartPointDto; + +/** + * @author Vitaly Chekushkin + */ +public class ErvuChartDataSetDto extends ChartDataSetDto { + + public Integer borderRadius; + public String barPercentage; + + public String[] backgroundColors; + + public ErvuChartDataSetDto(String label, String type, + List data) { + super(label, type, data); + } + + public Integer getBorderRadius() { + return borderRadius; + } + + public void setBorderRadius(Integer borderRadius) { + this.borderRadius = borderRadius; + } + + public String getBarPercentage() { + return barPercentage; + } + + public void setBarPercentage(String barPercentage) { + this.barPercentage = barPercentage; + } + + public String[] getBackgroundColors() { + return backgroundColors; + } + + public void setBackgroundColors(String[] backgroundColors) { + this.backgroundColors = backgroundColors; + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationData.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationData.java new file mode 100644 index 0000000..15d9690 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationData.java @@ -0,0 +1,26 @@ +package ervu_dashboard.model.chart.round; + +import property.grid.Formatter; +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.bean.AggregationFunction; +import ru.cg.webbpm.modules.database.bean.annotation.GraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class RoundAggregationData { + @NotNull + public String dataLabel; + @NotNull + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + public EntityColumn aggregationColumn; + public Formatter aggregationColumnFormatter; + @NotNull + public AggregationFunction aggregationFunction; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationDataSet.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationDataSet.java new file mode 100644 index 0000000..44b1f4b --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundAggregationDataSet.java @@ -0,0 +1,30 @@ +package ervu_dashboard.model.chart.round; + +import property.grid.Formatter; +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.bean.annotation.GraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ + +public class RoundAggregationDataSet { + @NotNull + public RoundAggregationData aggregationData; + @NotNull + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + public EntityColumn[] groupByColumns = new EntityColumn[0]; + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + public EntityColumn labelColumn; + public Formatter labelColumFormatter; + public RoundChartColumnSort[] columnSorts = new RoundChartColumnSort[0]; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartColumnSort.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartColumnSort.java new file mode 100644 index 0000000..99de7e0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartColumnSort.java @@ -0,0 +1,33 @@ +package ervu_dashboard.model.chart.round; + +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.api.dao.option.SortOrder; +import ru.cg.webbpm.modules.database.bean.annotation.GraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class RoundChartColumnSort { + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + @NotNull + public EntityColumn field; + @NotNull + public SortOrder sortOrder; + + public RoundChartColumnSort() { + } + + public EntityColumn field() { + return this.field; + } + + public SortOrder sortOrder() { + return this.sortOrder; + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataDto.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataDto.java new file mode 100644 index 0000000..fe94194 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataDto.java @@ -0,0 +1,33 @@ +package ervu_dashboard.model.chart.round; + +import java.util.List; + +import component.chart.dto.SingleChartDataDto; +import component.chart.dto.SingleChartDataSetDto; +import ervu_dashboard.model.chart.round.label.ChartLabelModel; + +/** + * @author Vitaly Chekushkin + */ +public class RoundChartDataDto extends SingleChartDataDto { + + public List centerLabels; + + public RoundChartDataDto( + List datasets, + List labels, + List centerLabels + ) { + super(datasets, labels); + this.centerLabels = centerLabels; + } + + public List getCenterLabels() { + return centerLabels; + } + + public void setCenterLabels( + List centerLabels) { + this.centerLabels = centerLabels; + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetConfiguration.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetConfiguration.java new file mode 100644 index 0000000..1b3b335 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetConfiguration.java @@ -0,0 +1,42 @@ +package ervu_dashboard.model.chart.round; + +import ervu_dashboard.model.chart.ChartDatasetType; +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.api.dao.LoadDao; +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; +import ru.cg.webbpm.modules.standard_annotations.editor.Visible; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class RoundChartDataSetConfiguration implements LoadGraphSource { + @NotNull + public LoadDao loadDao; + + @NotNull + public ChartDatasetType datasetType; + + @NotNull(predicate = "datasetType == ChartDatasetType.AGGREGATION") + @Visible(predicate = "datasetType == ChartDatasetType.AGGREGATION") + public RoundAggregationDataSet aggregationDataSet; + + @NotNull(predicate = "datasetType == ChartDatasetType.STATIC") + @Visible(predicate = "datasetType == ChartDatasetType.STATIC") + public RoundStaticDataSet staticDataSet; + + @NotNull(predicate = "datasetType == ChartDatasetType.COLUMN_AGGREGATION") + @Visible(predicate = "datasetType == ChartDatasetType.COLUMN_AGGREGATION") + public RoundColumnAggregationDataSet columnAggregationDataSet; + + @ColorEditor + @Visible(predicate = "datasetType != ChartDatasetType.COLUMN_AGGREGATION") + public String[] backgroundColors = new String[0]; + + public Integer borderWidth; + public String radius; + public String cutout; + + public Integer hoverOffset; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDto.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDto.java new file mode 100644 index 0000000..a79227a --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDto.java @@ -0,0 +1,65 @@ +package ervu_dashboard.model.chart.round; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import component.chart.dto.SingleChartDataSetDto; + +/** + * @author Vitaly Chekushkin + */ + +public class RoundChartDataSetDto extends SingleChartDataSetDto { + public String radius; + public String cutout; + + @JsonInclude + public Integer borderWidth; + @JsonInclude + public Integer hoverOffset; + + public RoundChartDataSetDto() { + super(null, null, null); + } + + public RoundChartDataSetDto(String label, List data, String[] backgroundColor, + Integer borderWidth, String radius, String cutout, Integer hoverOffset) { + super(label, data, backgroundColor); + this.borderWidth = borderWidth; + this.radius = radius; + this.cutout = cutout; + this.hoverOffset = hoverOffset; + } + + public String getRadius() { + return radius; + } + + public void setRadius(String radius) { + this.radius = radius; + } + + public String getCutout() { + return cutout; + } + + public void setCutout(String cutout) { + this.cutout = cutout; + } + + public Integer getBorderWidth() { + return borderWidth; + } + + public void setBorderWidth(Integer borderWidth) { + this.borderWidth = borderWidth; + } + + public Integer getHoverOffset() { + return hoverOffset; + } + + public void setHoverOffset(Integer hoverOffset) { + this.hoverOffset = hoverOffset; + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDtoWrapper.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDtoWrapper.java new file mode 100644 index 0000000..5562f86 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundChartDataSetDtoWrapper.java @@ -0,0 +1,33 @@ +package ervu_dashboard.model.chart.round; + +import java.util.List; + +/** + * @author Vitaly Chekushkin + */ +public class RoundChartDataSetDtoWrapper { + private RoundChartDataSetDto roundChartDataSetDto; + private List labels; + + public RoundChartDataSetDtoWrapper(RoundChartDataSetDto roundChartDataSetDto, + List labels) { + this.roundChartDataSetDto = roundChartDataSetDto; + this.labels = labels; + } + + public RoundChartDataSetDto getRoundChartDataSetDto() { + return roundChartDataSetDto; + } + + public void setRoundChartDataSetDto(RoundChartDataSetDto roundChartDataSetDto) { + this.roundChartDataSetDto = roundChartDataSetDto; + } + + public List getLabels() { + return labels; + } + + public void setLabels(List labels) { + this.labels = labels; + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationData.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationData.java new file mode 100644 index 0000000..3ae24d4 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationData.java @@ -0,0 +1,30 @@ +package ervu_dashboard.model.chart.round; + +import property.grid.Formatter; +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.bean.AggregationFunction; +import ru.cg.webbpm.modules.database.bean.annotation.GraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class RoundColumnAggregationData { + @NotNull + public String label; + @NotNull + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + public EntityColumn aggregationColumn; + @NotNull + public AggregationFunction aggregationFunction; + @NotNull + @ColorEditor + public String backgroundColor; + public Formatter aggregationColumnFormatter; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationDataSet.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationDataSet.java new file mode 100644 index 0000000..88c118c --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundColumnAggregationDataSet.java @@ -0,0 +1,13 @@ +package ervu_dashboard.model.chart.round; + +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class RoundColumnAggregationDataSet { + @NotNull + public String dataLabel; + @NotNull + public RoundColumnAggregationData[] aggregationData; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticData.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticData.java new file mode 100644 index 0000000..46dfb5f --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticData.java @@ -0,0 +1,37 @@ +package ervu_dashboard.model.chart.round; + +import java.util.Arrays; +import java.util.List; + +import property.grid.Formatter; +import rpc.LoadGraphSource; + +import ru.cg.webbpm.modules.database.bean.annotation.GraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class RoundStaticData { + @NotNull + public String dataLabel; + @NotNull + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + public EntityColumn dataColumn; + public Formatter dataColumnFormatter; + @NotNull + @GraphSource( + value = LoadGraphSource.class, + scanMode = GraphSource.ScanMode.CLOSEST_PROPERTY_CONTEXT + ) + public EntityColumn labelColumn; + public Formatter labelColumnFormatter; + + public List columns() { + return Arrays.asList(this.dataColumn, this.labelColumn); + } +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticDataSet.java b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticDataSet.java new file mode 100644 index 0000000..406305d --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/RoundStaticDataSet.java @@ -0,0 +1,12 @@ +package ervu_dashboard.model.chart.round; + +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Vitaly Chekushkin + */ +public class RoundStaticDataSet { + @NotNull + public RoundStaticData staticData; + public RoundChartColumnSort[] columnSorts = new RoundChartColumnSort[0]; +} diff --git a/backend/src/main/java/ervu_dashboard/model/chart/round/label/ChartLabelModel.java b/backend/src/main/java/ervu_dashboard/model/chart/round/label/ChartLabelModel.java new file mode 100644 index 0000000..fd743c0 --- /dev/null +++ b/backend/src/main/java/ervu_dashboard/model/chart/round/label/ChartLabelModel.java @@ -0,0 +1,50 @@ +package ervu_dashboard.model.chart.round.label; + +import ervu_dashboard.model.Font; + +import ru.cg.webbpm.modules.standard_annotations.editor.ColorEditor; +import ru.cg.webbpm.modules.webkit.annotations.Model; + +/** + * @author Vitaly Chekushkin + */ + +@Model +public class ChartLabelModel { + public String text; + @ColorEditor + public String color; + public Font font; + + public ChartLabelModel(String text, String color, Font font) { + this.text = text; + this.color = color; + this.font = font; + } + + public ChartLabelModel() {} + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public Font getFont() { + return font; + } + + public void setFont(Font font) { + this.font = font; + } +} diff --git a/backend/src/main/java/ru/micord/security/SecurityConfig.java b/backend/src/main/java/ru/micord/security/SecurityConfig.java new file mode 100644 index 0000000..3036dc7 --- /dev/null +++ b/backend/src/main/java/ru/micord/security/SecurityConfig.java @@ -0,0 +1,25 @@ +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/loading/ProjectDefaultValueLoaderServiceImpl.java b/backend/src/main/java/service/loading/ProjectDefaultValueLoaderServiceImpl.java new file mode 100644 index 0000000..f239764 --- /dev/null +++ b/backend/src/main/java/service/loading/ProjectDefaultValueLoaderServiceImpl.java @@ -0,0 +1,89 @@ +package service.loading; + +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import component.field.dataconvert.DataConverter; +import component.field.dataconvert.DataConverterProvider; +import component.field.loading.FieldDefaultValue; +import component.field.loading.LoadType; +import model.FieldData; + +import ru.cg.webbpm.modules.database.api.bean.TableRow; +import ru.cg.webbpm.modules.database.api.dao.LoadDao; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; + +/** + * @author kochetokov + */ +public class ProjectDefaultValueLoaderServiceImpl extends AbstractDefaultValueLoaderService + implements DefaultValueLoaderService { + + public LoadDao loadDao; + + @Override + public List loadFieldDefaultValues(List guids) { + return Stream.concat( + loadValuesByFieldService(guids).stream(), + loadValuesByColumn(guids).stream() + ).collect(Collectors.toList()); + } + + protected List loadValuesByColumn(List guids) { + Map> byColumnMapping = getScriptsMapping(guids, + fieldDefaultValue -> fieldDefaultValue.loadType == LoadType.BY_COLUMN + ); + Map idToColumnMapping = byColumnMapping.entrySet().stream() + .collect(Collectors.toMap( + Map.Entry::getKey, + entry -> { + try { + return entry.getValue().getDefaultValueColumn(); + } + catch (Exception e) { + throw new RuntimeException( + String.format("Cannot load values for object with id = %s", + entry.getKey() + ), e); + } + } + ) + ); + return loadData(idToColumnMapping); + } + + protected List loadData(Map idToColumnMapping) { + + if (loadDao == null) { + return Collections.emptyList(); + } + Set columns = new HashSet<>(idToColumnMapping.values()); + Map columnToDataMapping; + + List tableRows = loadDao.load(columns); + + if (tableRows.isEmpty()) { + return Collections.emptyList(); + } + + if (tableRows.size() > 1) { + throw new IllegalArgumentException("Default graph must return one row"); + } + columnToDataMapping = tableRows.get(0).getColumnToDataMap(); + + return idToColumnMapping.entrySet().stream() + .map(entry -> { + DataConverter dataConverter = DataConverterProvider.getDataConverter( + entry.getValue().getType()); + Object convertedValue = dataConverter.convertValueForLoad( + columnToDataMapping.get(entry.getValue())); + return new FieldData(entry.getKey(), convertedValue); + }) + .collect(Collectors.toList()); + } +} diff --git a/backend/src/main/resources/.gitkeep b/backend/src/main/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config.md b/config.md new file mode 100644 index 0000000..7455710 --- /dev/null +++ b/config.md @@ -0,0 +1,749 @@ +# ミ榧ソミクムミーミスミクミオ ミソミームミーミシミオムびミセミイ ミコミセミスムミクミウムτミームミクミク ムミオムミイミオムミー ミソムミクミサミセミカミオミスミクミケ + +ミ、ミーミケミサ /standalone/configuration/standalone.xml + +## ミ榧アム禍クミオ + +- `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 ミクミシミオミスミク. + +## 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.finished_process_cleaner_timeout` - ミイムミオミシム, ムミソムτムび ミコミセムひセムミセミオ ミソムミセムミオムム ムムミクムひーミオムびム ムτムひームミオミイム威クミシ. ミ渙セ ムσシミセミサムミーミスミクム - 10 ムミームミセミイ. + +ミ湲ミクミシミオム: + +```xml + + + +``` + +### jBPM Runtime Strategy + +ミ漬セミキミシミセミカミスム巾オ ミイミームミクミーミスムび runtime strategy: + +- SINGLETON +- PER_REQUEST (ミキミスミームミオミスミクミオ ミソミセ ムσシミセミサムミーミスミクム) +- PER_PROCESS_INSTANCE +- PER_CASE + +ミ湲ミクミシミオム: + +```xml + +``` + +## ミ。ミソミセムミセミア ミームτひオミスムひクムミクミコミームミクミク + +- authentication.method - ムミソミセムミセミア ミームτひオミスムひクムミクミコミームミクミク. ミ渙セミエミエミオムミカミクミイミーミオミシム巾オ ムミソミセムミセミアム ミームτひオミスムひクムミクミコミームミクミク: form, kerberos, cert_over_db, cert_over_ldap + +### ミ渙セ ミサミセミウミクミスム ミク ミソミームミセミサム + +ミ湲ミクミシミオム ミコミセミスムミクミウムτミームミクミク: + +```xml + +``` + +### ミ渙セ ムミオムムひクムミクミコミームび + +- cert_over_db - ミソムミセミイミオムミコミー ミスミーミサミクムミクム ミソミセミサム糊キミセミイミームひオミサム ミイ ミアミーミキミオ ミエミーミスミスム錦 ミアミオミキミセミソミームミスミセムムひク +- cert_over_ldap - ミソムミセミイミオムミコミー ミスミーミサミクムミクム ミソミセミサム糊キミセミイミームひオミサム ミイ ミアミーミキミオ ミエミーミスミスム錦 ミアミオミキミセミソミームミスミセムムひク ミク ミイ LDAP + +ミ湲ミクミシミオムム: + +```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 + + + +``` + +## ミ。ムひームひクムムひクミコミー + +### jbpm hibernate statistics + +ミ。ムひームひクムムひクミコミー hibernate jbpm ミエミセムムびσソミスミー ミソミセ jmx ミソミセ ミソムτひク `org.hibernate:type=Stats,name=jbpm`. +ミ渙セミサミスム巾ケ ムミソミクムミセミコ ミソミームミーミシミオムびミセミイ ミシミセミカミスミセ ミソミセムミシミセムびミオムび ムミオムミオミキ jconsole. + +ミ渙セ ムσシミセミサムミーミスミクム ミイミコミサム紗ミオミスミー, ミセムひコミサム紗ミクムび ミシミセミカミスミセ ミスミームムびミセミケミコミセミケ `webbpm.jbpm.hibernate_statistics.enabled`: + +```xml + +``` + +## Schedulers ミソミセ ミセムミクムムひコミオ ミアミーミキム *jbpm*. + +- ミ樮ミクムムひコミー ムひーミアミサミクム ミームσエミクムひー ミセム ミキミーミイミオムム威オミスミスム錦 ミソムミセムミオムムミセミイ ミソミセ ミクムムひオムミオミスミクミク ムひーミケミシミームτひー + + - `webbpm.jbpm.finished_process_cleaner_cron` - ミキミーミエミーミオム ムミームミソミクムミーミスミクミオ (*spring cron*), ミオムミサミク ミスミームムびミセミケミコミー ミスミオ ミキミーミエミーミスミー - ミエミカミセミア ミスミオ ミキミーミソムτミコミーミオムびム + - `webbpm.jbpm.finished_process_cleaner_timeout` - ムひーミケミシミームτ ミイ ムミームミーム (*ムミオミサミセミオ ムミクムミサミセミイミセミオ ミキミスミームミオミスミクミオ*) + + ミ湲ミクミシミオム: + + ```xml + + + ``` + + ## ミ榧ウムミーミスミクムミオミスミクム ミエミサム ミキミーミソムミセムミセミイ ミ岱. + +- `webbpm.db.query_limit_enabled` - ムミサミーミウ, ミセムひイミオムミーム紗禍クミケ ミキミー ミイム巾イミセミエ ムミセミセミアム禍オミスミクミケ ミセ ミソムミオミイム錦威オミスミクミク ミサミクミシミクムひセミイ ミスミー ミコミセミサミクムミオムムひイミセ ミイミセミキミイムミーム禍ーミオミシム錦 ミキミーミソミクムミオミケ. ミ渙セ ムσシミセミサムミーミスミクム - false. + +- `webbpm.db.select_records_max_limit` - ミシミーミコムミクミシミーミサム糊スム巾ケ ミサミクミシミクム ミイミセミキミイムミーム禍ーミオミシム錦 ムムびミセミコ ミエミサム ミキミーミソムミセムミセミイ ミイ ミ岱, ミソムミク ミソムミオミイム錦威オミスミクミク/ムミーミイミオミスムムひイミオ ミエミーミスミスミセミウミセ ミサミクミシミクムひー ミアムσエミオム ミイム巾アムミセム威オミスミー ミセム威クミアミコミー (*ムミオミサミセミオ ムミクムミサミセミイミセミオ ミキミスミームミオミスミクミオ*). ミ渙セ ムσシミセミサムミーミスミクム - 100000 + +- `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.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.full_time_threshold`. ミ榧ウムミーミスミクムミオミスミクミオ ミスミー ミソミセミサミスミセミオ ミイムミオミシム ミイム巾ソミセミサミスミオミスミクム ミキミーミソムミセムミー. ミ。ミクムムひオミシミー ミイム巾イミセミエミクム ムミセミセミアム禍オミスミクミオ ミイ ミサミセミウミク ミソムミク ミソムミオミイム錦威オミスミクミク. ミ頒オミケムムひイムσオム ミエミサム ミキミーミソムミセムミセミイ, ムミセミキミエミーミスミスム錦 ミイ jOOQ. ミ渙セ ムσシミセミサムミーミスミクム sum(webbpm.db.result_read_time_threshold, webbpm.db.execution_time_threshold) ミシミクミサミサミクムミオミコムσスミエ + +- `webbpm.db.query_timeout`. ミ榧ウムミーミスミクムミオミスミクミオ ミスミー ミイムミオミシム ミイム巾ソミセミサミスミオミスミクム ミキミーミソムミセムミー. ミ湲ミク ミソムミオミイム錦威オミスミクミク ミキミーミソムミセム ミアムσエミオム ミセムひコミサミセミスミオミス. ミ頒オミケムムひイムσオム ミエミサム ミキミーミソムミセムミセミイ, ムミセミキミエミーミスミスム錦 ミイ jOOQ ミイ dev ムミオミカミクミシミオ. ミ渙セ ムσシミセミサムミーミスミクム 120 ムミオミコムσスミエ. + +ミ湲ミクミシミオム: + +```xml + + + + + + + + +``` + +## ミ頒セミアミーミイミサミオミスミクミオ ミイミオムムミクミク ミソムミクミサミセミカミオミスミクム ミイ URL ミソムミク ミキミーミソムミセムミーム ミコ backend-ム + +ミ湲ミク ムミアミセムミコミオ ミソムミクミサミセミカミオミスミクム ム ミソムミセムミクミサミオミシ enable-version-in-url ミイ URL ミアムσエミオム ミエミセミアミーミイミサム肖び袴ム ミイミオムムミクム ミソムミクミサミセミカミオミスミクム, ムσコミーミキミーミスミスミーム ミイ pom.xml. +ミィミーミアミサミセミス URL: + +``` +//:/backend/ +``` + +## ミ漬コミサム紗ミオミスミクミオ ムミオミウミクムムびミームミクミク ミソミセミサム糊キミセミイミームひオミサム + +1. ミ」ミコミーミカミクムひオ ミコミセミスムミクミウムτミームミクム ミソミセムムひセミイミセミウミセ ムミオムミイミオムミー ミエミサム ミセムひソムミーミイミコミク ミソミクムミオミシ ム ミソミセミエムひイミオムミカミエミオミスミクミオミシ ムミオミウミクムムびミームミクミク. +ミ頒サム ム采ひセミウミセ ミイ ムミーミケミサミオ ミソムミセミオミコムひー *jndi-resources.xml* ミエミセミアミーミイム袴ひオ ムミオムムτム SmtpConfiguration. +ミィミーミアミサミセミス: +``` +{"host":"host","port":1234,"login":"user","password":"password","from":"email_from","senderName":"sender_name","isSecured":true} +``` +ミ渙セムムひセミイム巾ケ ムミオムミイミオム - ミキミームミオミウミクムムびミクムミセミイミーミスミスム巾ケ ミーミコムびσーミサム糊スム巾ケ ミソミセムムひセミイム巾ケ ミーミエムミオム. ミ ミソミセミサミオ password ミスムσカミスミセ ムσコミーミキム巾イミームび ミスミオ ミソミームミセミサム ミエミサム ミイムミセミエミー ミイ ミソミセムムび, ミー ムミセミキミエミームび ミソミームミセミサム ミエミサム ミソムミクミサミセミカミオミスミクミケ ミイ ムτミオムひコミオ ミソミセムムび ミク ムσコミーミキミームび ミオミウミセ. +2. ミ頒サム ミイミコミサム紗ミオミスミクム ムミオミウミクムムびミームミクミク ミエミセミアミーミイム袴ひオ ミイ *standalone.xml* ムミイミセミケムムひイミセ +``` + +``` +3. ミ「ミーミコミカミオ ミイ *standalone.xml* ムσコミーミカミクムひオ ムミオムムτム ミエミサム ミセムひソムミーミイミコミク ミソミクムミオミシ ミエミサム ミソミセミエムひイミオムミカミエミオミスミクム ムミオミウミクムムびミームミクミク (ミクミキ ミソ.1) +``` + +``` +4. ミ湲ミク ミスミオミセミアムミセミエミクミシミセムムひク, ミセムびミオミエミーミコムひクムムσケムひオ ム威ーミアミサミセミス ミソミクムム糊シミー ミエミサム ミソミセミエムひイミオムミカミエミオミスミクム ムミオミウミクムムびミームミクミク +(resources/src/main/resources/mail/confirmation.html) + +5. ミ湲ミク ミスミオミセミアムミセミエミクミシミセムムひク, ミセムびミオミエミーミコムひクムムσケムひオ ム威ーミアミサミセミス ミソミクムム糊シミー ミエミサム ミイミセムムムひーミスミセミイミサミオミスミクム ミソミームミセミサム +(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/) . ミ湲ミクミサミセミカミオミスミクミオ ミエミセミサミカミスミセ ミセムひコムム錦び袴ム ミアミオミキ ミキミーミソムミセムミー ミサミセミウミクミスミー/ミソミームミセミサム + +## ミ漬セムムムひーミスミセミイミサミオミスミクミオ ムムびムσコムびτム ミ岱 + +ミ斷ー ミセムミスミセミイミオ ミ岱 ミソムミセミオミコムひー ム ミソミセミシミセム禾袴 jOOQ ミウミオミスミオムミクムムτ紗びム Java ミコミサミームムム ミエミサム ミコミーミカミエミセミウミセ ミセミアム諌オミコムひー ミ岱. ミュムひセ ミソムミセミクムムミセミエミクム ミソミセ ミスミーミカミームひクム ミコミスミセミソミコミク ミ榧アミスミセミイミクムび ミスミー ミソミーミスミオミサミク ミ岱 ミイ ムムびσエミクミク. ミ湲ミク ミスミオミセミアムミセミエミクミシミセムムひク ミシミセミカミスミセ ムムミセムミシミクムミセミイミームび DDL ミスミー ミセムミスミセミイミオ ミエミーミスミスム錦 ミコミサミームムミセミイ. ミ湲ミクミシミオム ミコミサミームムミー ミエミサム ミウミオミスミオムミームミクミク DDL + +``` +package ru.cg.webbpm.test_project.db_beans; + +import org.jooq.*; +import org.jooq.impl.*; + +public class Main { + public static void main (String args []) { + DefaultConfiguration defaultConfiguration = new DefaultConfiguration(); + defaultConfiguration.setSQLDialect(SQLDialect.POSTGRES); + Queries ddl = DSL.using(defaultConfiguration).ddl(DefaultCatalog.DEFAULT_CATALOG); + + for (Query query : ddl.queries()) { + System.out.println(query); + } + } +} +``` + +** ミ漬斷侑慴籍斷侑: ** + +- ム采ひクミシ ムミソミセムミセミアミセミシ ミスミオミサム糊キム ミイミセムムムひーミスミセミイミクムび ムムσスミコムミクミク/ミソムミセムミオミエムτム ミ岱 + +ムミシ. ムひーミコミカミオ [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.async_backup_count` +- `webbpm.cache.hazelcast.public_address` +- `webbpm.cache.hazelcast.interfaces` + +ミ湲ミクミシミオム ミコミセミスムミクミウムτミームミクミク: + +```xml + + ` +``` + +## ミ渙セミエミコミサム紗ミオミスミクミオ ミコミセミシミソミセミスミオミスムび ミーミエムミオムミー ミイ ムミオミカミクミシミオ ミ寅籍 (ミ寅セムムσエミームムムひイミオミスミスム巾ケ ミーミエムミオムミスム巾ケ ムミオミオムムび) + +ミ斷オミセミアムミセミエミクミシミセ ミキミーミエミームび ミソミームミーミシミオムびム: + +- `gar.enable` - ムミサミーミウ, ミコミセムひセムム巾ケ ミイミコミサム紗ミーミオム/ミセムひコミサム紗ミーミオム ムミオムミイミクム ミエミサム ムミーミアミセムび ム ミ寅籍. ミ頒セミサミカミオミス ミアム錦び ミキミーミエミーミス ミエミサム ムミーミアミセムび ミコミセミシミソミセミスミオミスムび ミイ ムミオミカミクミシミオ ミ寅籍. ミ渙セ ムσシミセミサムミーミスミクム true, ミエミサム ミセムひコミサム紗ミオミスミクム ミキミーミエミームび false. +- `gar.elastic.url.host` - ムミセムム ミスミー ミコミセムひセムミセミシ ムミーミキミイミオムミスムτ elasticsearch. +- `gar.elastic.password` - ミソミームミセミサム ミエミサム ミームτひオミスムひクムミクミコミームミクミク elasticsearch. + +ミ頒セミソミセミサミスミクムひオミサム糊スム巾オ ミソミームミーミシミオムびム: + +- `gar.elastic.url.port` - ミソミセムム ミスミー ミコミセムひセムミセミシ ムミーミキミイミオムミスムτ elasticsearch. +- `gar.elastic.username` - ミサミセミウミクミス ミエミサム ミームτひオミスムひクムミクミコミームミクミク elasticsearch. + +ミ湲ミクミシミオム ミコミセミスムミクミウムτミームミクミク: + +```xml + + + +``` + +## ミ慴オムびミクミコミク + +ミ樮びミオム + +ミ樮びミオム ムミセミアミクムミーミオムびム ムミーミキ ミイ 30 ムミオミコムσスミエ ミソミセ ミエミオムミセミサムび, ミシミオミスム紹オムびム ミソミームミーミシミオムびミセミシ `webbpm.metrics.report_period_ms`. +ミ柘ミオ ミシミオムびミクミコミク ミクミエムτ ミキミー ミセムびミオムひスム巾ケ ミソミオムミクミセミエ, ミソミセムミサミオ ムミアミセムミー ミセムびミオムひー ミセミスミク ムミアムミームム巾イミーム紗びム. + +ミ渙セミサムτミクムび json ムミセ ミイムミオミシミク ミシミオムびミクミコミーミシミク ミシミセミカミスミセ ミソミセ ムτミサム `backend/metrics/v1/all` - ミシミオムびミクミコミク ミアムσエムτ ム ミソミセムミサミオミエミスミオミウミセ ムミセミアムミーミスミスミセミウミセ ミセムびミオムひー, ミキミーミソムミセム ミスミオ ムびミクミウミウミオムミクム ムミアミセム ミセムびミオムひー - ム采ひセ ミスミオミキミーミイミクムミクミシム巾オ ミセミソミオムミームミクミク. ミ樮びミオム ムミセミエミオムミカミクム ムひセミサム糊コミセ ミシミオムびミクミコミク ミソミセ ミコミセムひセムム巾シ ミアム巾サ ムミセミイミオムム威オミス ムミセムび ミアム ミセミエミクミス ミイム巾キミセミイ ミイ ミセムびミオムひスム巾ケ ミソミオムミクミセミエ. ミ「ミセ ミオムムび, ミオムミサミク ミコミーミコミーム-ムひセ ミセミソミオムミームミクム ミスミオ ミアム巾サミー ムミセミイミオムム威オミスミー ミイ ミセムびミオムひスム巾ケ ミソミオムミクミセミエ, ムひセ ムミセミセムひイミオムびムひイムτ紗禍ーム ミオミケ ミシミオムびミクミコミー ミスミオ ミソミセミソミーミエミオム ミイ ミセムびミオム - ミオミオ ミスミオ ミアムσエミオム ミイ json. + +### ミ厘スミームミオミスミクム ミシミオムびミクミコ + +ミ柘ミオ ミシミオムびミクミコミク ミクミエムτ ミキミー ミセムびミオムひスム巾ケ ミソミオムミクミセミエ, ミソミセムミサミオ ムミアミセムミー ミセムびミオムひー ミセミスミク ムミアムミームム巾イミーム紗びム. +ミ斷ーム ミイ ミセムミスミセミイミスミセミシ ミクミスムひオムミオムムτ紗 `callsCountSum`, `latencyMin`, `latencyAvg`, `latencyMax` + +- `callsCountSum` - ミコミセミサミクムミオムムひイミセ ミキミーミイミオムム威オミスミスム錦 ミイム巾キミセミイミセミイ +- `latencyMin` - ミシミクミスミクミシミーミサム糊スミセミオ ミイムミオミシム ミイム巾ソミセミサミスミオミスミクム +- `latencyAvg` - ムムミオミエミスミオミオ ミイムミオミシム ミイム巾ソミセミサミスミオミスミクム +- `latencyMax` - ミシミーミコムミクミシミーミサム糊スミセミオ ミイムミオミシム ミイム巾ソミセミサミスミオミスミクム +- `activeCallsCountMax` - ミコミセミサミクムミオムムひイミセ ミスミームミームび錦, ミスミセ ミオム禍オ ミスミオ ミキミーミイミオムム威オミスミスム錦 ミイム巾キミセミイミセミイ. +- `activeCallsLatencyMax` - ミエミサミクムひオミサム糊スミセムムび ムミーミシミセミウミセ ミエミセミサミウミセミウミセ ミオム禍オ ミスミオ ミキミーミイミオムム威オミスミスミセミウミセ ミイム巾キミセミイミー + +### ミ「ミオミコムτ禍クミオ ミシミオムびミクミコミク ミソムミクミサミセミカミオミスミクム + +- ミ渙セミサムτミオミスミクミオ ミコミセミスミスミオミコムひー ミクミキ ミソムσサミー + + - `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.db.query.success.execution_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.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. ミ篇ミサミク ミセムミオムミオミエム ミアムσエミオム ムミクミサム糊スミセ ミコミセミソミクムび袴ム, ムひセ ムσイミオミサミクムミクムび. + +## ミ斷ームムびミセミケミコミー ミサミセミウミセミイ + +ミ柘ミオ ミスミームムびミセミケミコミク ミエミオミサミーム紗びム ミイ ムミーミケミサミオ `standalone.xml`, ミオムミサミク ミスミオ ムσコミーミキミーミスミセ ミクミスミームミオ. + +### ミ榧アム禍クミオ ミスミームムびミセミケミコミク + +ミ渙サミームびミセムミシミー Web-bpm ミクムミソミセミサム糊キムσオム ミコミセムミスミオミイムτ ミコミームひオミウミセムミクム ミサミセミウミクムミセミイミーミスミクム `ru.cg.webbpm`, ムミオミコミセミシミオミスミエムσオムびム ミイム錦ムひーミイミサム肖び ミオミオ ミイ ムτミセミイミオミスム `info`. todo check prod config + +```xml + + + +``` + +ミ湲ミク ム采ひセミシ ミコミセミシミソミセミスミオミスムび ミクムミソミセミサム糊キムσオミシム巾オ ミイ ミソムミセミオミコムひオ ミシミセミウムτ ミクムミソミセミサム糊キミセミイミームび ミエムムσウミクミオ ミコミームひオミウミセムミクミク. + +### ミ渙ームミーミシミオムびム ミコミセミスムミクミウムτミームミクミク + +**ミミオミコミセミシミオミスミエミセミイミーミスミスミセミオ ミクムミソミセミサム糊キミセミイミーミスミクミオ:** ミイムミオミウミエミー ミイ `info`. + +ミ柘ミオ ミソミームミーミシミオムびム ミコミセミスムミクミウムτミームミクミク ミキミーミウムムσカミーミオミシム巾オ ミソミサミームびミセムミシミセミケ web-bpm ミク ミソミセミサム糊キミセミイミームひオミサム袴ミコミクミシ ミソムミクミサミセミカミオミスミクミオミシ ムミオムミオミキ api webbpm ミサミセミウミクムムτ紗びム ミコミームひオミウミセムミクミオミケ `ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty`. ミ榧スミー ミイムミオミウミエミー ミエミセミサミカミスミー ミアム錦び ミイム錦ムひーミイミサミオミスミー ミイ `info`. + +ミ湲ミクミシミオム ミイム巾イミセミエミー: + +``` +2017-12-04 16:02:19,074 INFO [ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty] (EclipseGeminiBlueprintExtenderThread-1) System property [webbpm.active_users_counter.enabled] not set. Using default value [false] +2017-12-04 16:02:19,074 INFO [ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty] (EclipseGeminiBlueprintExtenderThread-1) System property [webbpm.active_users_counter.hazelcast.hosts] set to [127.0.0.1] +``` + +### ミ岱 ミソムミセミオミコムひー + +#### ミ嶢セミウミクムミセミイミーミスミクミオ ミキミーミソムミセムミセミイ ミイ ミアミエ security ミク ミアミエ ミソムミセミオミコムひー + +**ミミオミコミセミシミオミスミエミセミイミーミスミスミセミオ ミクムミソミセミサム糊キミセミイミーミスミクミオ:** ムひセミサム糊コミセ ミソムミク ムミーミキムミーミアミセムひコミオ. + +ミ佯ミソミセミサム糊キミセミイミームび ムひセミサム糊コミセ ミソムミク ムミーミキムミーミアミセムひコミオ. ミ墟ームひオミウミセムミクム `org.jooq.tools.LoggerListener` ミイ `debug` ムτミセミイミオミスム. + +```xml + + + +``` + +ミ湲ミクミシミオム ミイム巾イミセミエミー: + +``` +2017-12-04 18:21:10,391 DEBUG [org.jooq.tools.LoggerListener] (default task-19) Executing query : select "department"."department_name", "department"."department_id", "department"."parent_department_id", "department"."parent_department_id", "department"."department_id", (select (count(*) <> ?) from "public"."department" as "$$child" where "$$child"."parent_department_id" = "department"."department_id") as "$$hasChildren" from "public"."department" as "department" limit ? +2017-12-04 18:21:10,395 DEBUG [org.jooq.tools.LoggerListener] (default task-19) -> with bind values : select "department"."department_name", "department"."department_id", "department"."parent_department_id", "department"."parent_department_id", "department"."department_id", (select (count(*) <> 0) from "public"."department" as "$$child" where "$$child"."parent_department_id" = "department"."department_id") as "$$hasChildren" from "public"."department" as "department" limit 2147483647 +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) Fetched result : +-----------------+-------------+--------------------+--------------------+-------------+-------------+ +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : |department_name |department_id|parent_department_id|parent_department_id|department_id|$$hasChildren| +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : +-----------------+-------------+--------------------+--------------------+-------------+-------------+ +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : |ミ寅セミサミセミイミスミセミケ ミセムミクム 1 | 8| {null}| {null}| 8|true | +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : |ミ寅セミサミセミイミスミセミケ ミセムミクム 2 | 9| {null}| {null}| 9|true | +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : |ミ寅セミサミセミイミスミセミケ ミセムミクム 3 | 10| {null}| {null}| 10|true | +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : |ミ渙セミエムミーミキミエミオミサミオミスミクミオ 1.1| 11| 8| 8| 11|true | +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : |ミ渙セミエムミーミキミエミオミサミオミスミクミオ 1.2| 12| 8| 8| 12|true | +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : +-----------------+-------------+--------------------+--------------------+-------------+-------------+ +2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) : |...55 record(s) truncated... +``` + +#### ミ嶢セミウミクムミセミイミーミスミクミオ ミアミセミサム袴威クム ミキミーミソムミセムミセミイ + +**ミミオミコミセミシミオミスミエミセミイミーミスミスミセミオ ミクムミソミセミサム糊キミセミイミーミスミクミオ:** ミイムミオミウミエミー ミイ `info`, ム ミソミセミエミセミアムミーミスミスム巾シミク ミエミサム ミソムミセミオミコムひー ミキミスミームミオミスミクム紹シミク. ミ ミソムミセミエミオ ミキミスミームミオミスミクム ミエミセミサミカミスム ミアム錦び ミソムミセミイミオムミオミスム ムムひセ ミセミスミク ミスミオ ミイム巾キム巾イミーム紗 ミクミキミサミクム威スミオミオ ミサミセミウミクムミセミイミーミスミクミオ. + +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`. + + ```xml + + + + ``` + +### JBPM + +#### ミ樮ミスミセミイミスム巾オ ミスミームムびミセミケミコミク + +JBPM ミクムミソミセミサム糊キムσオム 3 ミコミセムミスミオミイム錦 ミコミームひオミウミセムミクミク ミサミセミウミクムミセミイミーミスミクム 窶 `org.jbpm`, `org.drools`, `org.kie`. ミ柘ミオ ミセミスミク ミエミセミサミカミスム ミアム錦び ミイム錦ムひーミイミサミオミスム ミイ `warn`. + +```xml + + + + + + + + + +``` + +#### ミ嶢セミウミクムミセミイミーミスミクミオ ミキミーミソムミセムミセミイ ミイ ミ岱 + +**ミミオミコミセミシミオミスミエミセミイミーミスミスミセミオ ミクムミソミセミサム糊キミセミイミーミスミクミオ:** ムひセミサム糊コミセ ミソムミク ムミーミキムミーミアミセムひコミオ. + +ミ頒サム ミサミセミウミクムミセミイミーミスミクム sql ミキミーミソムミセムミセミイ ミスムσカミスミセ ミイミコミサム紗ミクムび ミコミームひオミウミセムミクム `org.hibernate.SQL` ミイ `debug`: + +```xml + + + +``` + +ミァムひセミアム ミイム巾イミオムムひク ミソミームミーミシミオムびム ミキミーミソムミセムミセミイ ミク ムミオミキムσサム袴ひーム ミイム巾ソミセミサミスミオミスミクム 窶 ミコミームひオミウミセムミクム `org.hibernate.type.descriptor.sql` ミイ `trace`: + +```xml + + + +``` + +ミ湲ミクミシミオム ミイム巾イミセミエミー: + +``` +18:21:06,938 DEBUG [org.hibernate.SQL] (default task-47) select names0_.Task_Names_Id as Task_Nam7_16_0_, names0_.id as id1_16_0_, names0_.id as id1_16_1_, names0_.language as language2_16_1_, names0_.shortText as shortTex3_16_1_, names0_.text as text4_16_1_ from I18NText names0_ where names0_.Task_Names_Id=? +18:21:06,939 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] (default task-47) binding parameter [1] as [BIGINT] - [180] +18:21:06,940 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([id1_16_1_] : [BIGINT]) - [539] +18:21:06,940 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([language2_16_1_] : [VARCHAR]) - [en-UK] +18:21:06,940 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([shortTex3_16_1_] : [VARCHAR]) - [ミ。ミソミクムミセミコ ミキミーミソミクムミオミケ] +18:21:06,941 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([text4_16_1_] : [CLOB]) - [ミ。ミソミクムミセミコ ミキミーミソミクムミオミケ] +18:21:06,941 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([Task_Nam7_16_0_] : [BIGINT]) - [180] +18:21:06,942 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([id1_16_0_] : [BIGINT]) - [539] +``` + +#### ミ頒セミソミセミサミスミクムひオミサム糊スム巾オ ミサミセミウミク hibernate + +**ミミオミコミセミシミオミスミエミセミイミーミスミスミセミオ ミクムミソミセミサム糊キミセミイミーミスミクミオ:** ムひセミサム糊コミセ ミソムミク ムミーミキムミーミアミセムひコミオ ミイ ムミサムτミーミオ ミスミオミセミアムミセミエミクミシミセムムひク. + +1. ミ柘ミオミシム ミイム巾ソミセミサミスミオミスミクム ミキミーミソムミセムミー ミク ミコミセミサミクムミオムムひイミセ ムミオミキムσサム袴ひームひセミイ. + + ミ漬コミサム紗ミーム紗びム ミコミームひオミウミセムミクミオミケ `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 ミエミセミサミカミオミス ミアム錦び ミイミコミサム紗ミオミス ムミアミセム ムムひームひクムムひクミコミク. ミ「ムτ ミシミセミカミオム ミアム錦び ミクミスムひオムミオムミスミセ ミコミセミサミクムミオムムひイミセ ミキミーミソムミセムミセミイ, ムミサミーム威オミケ ミク ミセミアム禍オミオ ミイムミオミシム ミスミー ミイムミオ ミキミーミソムミセムム ムミオムムミクミオミケ. + + ミ湲ミクミシミオム ミイム巾イミセミエミー: + + ``` + 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; + 521509 nanoseconds spent releasing 17 JDBC connections; + 65732621 nanoseconds spent preparing 17 JDBC statements; + 31471897 nanoseconds spent executing 17 JDBC statements; + 0 nanoseconds spent executing 0 JDBC batches; + 0 nanoseconds spent performing 0 L2C puts; + 0 nanoseconds spent performing 0 L2C hits; + 0 nanoseconds spent performing 0 L2C misses; + 297556 nanoseconds spent executing 1 flushes (flushing a total of 16 entities and 0 collections); + 430168 nanoseconds spent executing 1 partial-flushes (flushing a total of 16 entities and 16 collections) + } + ``` + +#### ミ嶢セミウミクムミセミイミーミスミクミオ hbm2ddl + +**ミミオミコミセミシミオミスミエミセミイミーミスミスミセミオ ミクムミソミセミサム糊キミセミイミーミスミクミオ:** ミイムミオミウミエミー ミイ `trace`. + +ミ頒セミサミカミスミセ ミアム錦び ミイミコミサム紗ミオミスミセ ミイムミオミウミエミー. ミ渙セミキミイミセミサム紹オム ムσアミオミエミクムび袴ム ムムひセ hibernate ミスミオ ミスミーミコミームび巾イミーミサ ミスミクミコミーミコミクミオ ミシミクミウムミームミクミク ミスミー ミアミーミキム. ミュムひセム ムムσスミコムミクミセミスミーミサ ミセムひコミサム紗ミオミス ム ミスミーム ミイ ミコミセミエミオ. + +```xml + + + +``` + +# ミ榧ソミクムミーミスミクミオ ミソミームミーミシミオムびミセミイ ミコミセミスムミクミウムτミームミクミク ミコミサミクミオミスムびミコミセミケ ムミームムひク + +ミ。ミイミセミケムムひイミー ミキミーミエミーム紗びム ミイ ムミーミケミサミオ frontend/src/resources/app-config.json ミクミサミク frontend.war/src/resources/app-config.json + +## ミ榧アム禍クミオ + +- `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 ミキミーミソムミセムミセミイ(ムムひームミーム ムミオミーミサミクミキミームミクム). + +## ミ柘巾イミセミエ ムミセミセミアム禍オミスミクミケ + +- `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.tsp_address` - ミーミエムミオム ムミオムミイミオムミー ムミサムσカミアム ム尉ひーミシミソミセミイ ミイムミオミシミオミスミク + +ミ湲ミクミシミオム: + +```text +"electronic_sign.esmart_extension_url": "http://dsig.ibsdemo.ru/ibs_dsig/ibs_dSig.asmx" +``` + +## ミ。ミソミセムミセミア ミームτひオミスムひクムミクミコミームミクミク + +- `auth_method` - ムミソミセムミセミア ミームτひオミスムひクムミクミコミームミクミク. ミ慴セミカミオム ミソムミクミスミクミシミームび ミセミエミスミセ ミキミスミームミオミスミクミオ ミクミキ ムミソミクムミコミー: form, kerberos, cert_over_db, cert_over_ldap + +## ミ「ミーミケミシミオム ミセムミクムムひコミク ミキミーミコミオム威クムミセミイミーミスミスム錦 ミキミスミームミオミスミクミケ ムミクミサム袴びミセミイ + +- `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. ミ篇ミサミク ムミアミセムミコミー ミソムミセミクミキミイミオミエミオミスミー +- `"app.version": "%project.version%"` - ミイミオムムミクム ミソムミクミサミセミカミオミスミクム. + ム ミソムミセムミクミサミオミシ `enable-version-in-url`, ムひセ ミキミスミームミオミスミクミオ ミアムσエミオム true. + +## ミ頒セミアミーミイミサミオミスミクミオ Jivo ムミーム ミイ ミソムミセミオミコム + +ミ。ミイミセミケムムひイミー ミキミーミエミーム紗びム ミイ ムミーミケミサミオ 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. + +ミ湲ミクミシミオム: + +```json + "jivo_chat_widget_api_url": "https://code.jivo.ru/widget/{WIDGET_ID}", + "jivo_chat_widget_enabled": false +``` + +# ミ湲ミセムミオミオ + +## ミ。ミシミオミスミー ムσエミーミサム岱スミスミセミウミセ ムミオミソミセミキミクムひセムミクム + +1. ミ。ミシミオミスミクムひオ ミーミエムミオム NPM registry ミイ ムミーミケミサミオ frontend.npmrc. ミ湲ミクミシミオム - registry=https://repo.example.com/repository/npm-all/ +2. ミ渙セミシミオミスム紹ケムひオ ムムム巾サミコミク ミイ ミアミサミセミコミオ , ムミーミケミサミー pom.xml diff --git a/config/.gitignore b/config/.gitignore new file mode 100644 index 0000000..ba9a786 --- /dev/null +++ b/config/.gitignore @@ -0,0 +1,2 @@ +/*.ear +/*.jar diff --git a/config/Dockerfile b/config/Dockerfile new file mode 100644 index 0000000..6b77815 --- /dev/null +++ b/config/Dockerfile @@ -0,0 +1,44 @@ +FROM quay.io/wildfly/wildfly:26.1.3.Final-jdk17 +USER root +ARG POSTGRES_DRIVER_VERSION=42.7.3 +RUN yum-config-manager --disable base --disable extras --disable updates \ + && yum-config-manager --enable C7.8.2003-base --enable C7.8.2003-extras --enable C7.8.2003-updates \ + && yum -y --disableplugin=fastestmirror install sudo \ + && chown -R jboss: /opt/jboss/ + +USER jboss +WORKDIR $JBOSS_HOME +ENV JAVA_ARGS=-Xmx3g +RUN echo 'JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=*:8787,server=y,suspend=n"' >> bin/standalone.conf && \ + echo 'JAVA_OPTS="$JAVA_OPTS -XX:MaxMetaspaceSize=1g"' >> bin/standalone.conf && \ + echo 'JAVA_OPTS="$JAVA_OPTS -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent"' >> bin/standalone.conf && \ + echo 'JAVA_OPTS="$JAVA_OPTS -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1"' >> bin/standalone.conf && \ + echo 'JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"' >> bin/standalone.conf && \ + echo 'JAVA_OPTS="$JAVA_OPTS -XX:-OmitStackTraceInFastThrow"' >> bin/standalone.conf && \ + echo 'JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.logmanager.nocolor=true"' >> bin/standalone.conf && \ + echo 'JAVA_OPTS="$JAVA_OPTS $JAVA_ARGS"' >> bin/standalone.conf + +### Locale support ru_RU ### +USER root +RUN localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 +RUN echo "LANG=\"ru_RU.UTF-8\"" > /etc/locale.conf +USER jboss +ENV LANG ru_RU.UTF-8 +ENV LANGUAGE ru_RU.UTF-8 +ENV LC_ALL ru_RU.UTF-8 +### Locale Support END ### + +COPY --chown=jboss entrypoint.sh . +COPY --chown=jboss patches patches +RUN (cd patches && wget https://repo.micord.ru/repository/libs-releases-local/org/jboss/ironjacamar/ironjacamar-core-impl/1.5.3.Final/ironjacamar-core-impl-1.5.3.Final.jar) +RUN (cd patches/system && wget https://repo1.maven.org/maven2/org/postgresql/postgresql/$POSTGRES_DRIVER_VERSION/postgresql-$POSTGRES_DRIVER_VERSION.jar -O postgresql-driver.jar) + +RUN chmod -R +x patches && \ + chmod +x entrypoint.sh && \ + ./entrypoint.sh && \ + rm -rf patches + +ENV SERVER_START=true +COPY --chown=jboss *.ear $JBOSS_HOME/standalone/deployments/ + +HEALTHCHECK --timeout=3s --start-period=3600s CMD curl --fail 127.0.0.1:8080/dashboard/version || exit 1 diff --git a/config/Dockerfile.build b/config/Dockerfile.build new file mode 100644 index 0000000..00cefb8 --- /dev/null +++ b/config/Dockerfile.build @@ -0,0 +1,10 @@ +FROM maven:3-jdk-11-slim +RUN apt update \ + && apt upgrade -y \ + && curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \ + && apt install -y git nodejs \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app +COPY ../ . +RUN mvn clean -T4C && mvn package -T4C diff --git a/config/Dockerfile.secdb b/config/Dockerfile.secdb new file mode 100644 index 0000000..f9eeaac --- /dev/null +++ b/config/Dockerfile.secdb @@ -0,0 +1,5 @@ +FROM postgres:11-alpine + +COPY secdb.sql . + +CMD psql "postgresql://${DB_SEC_USERNAME:-security}:${DB_SEC_PASSWORD:-secpassword}@${DB_SEC_HOST:-db}/${DB_SEC_NAME:-security}" < secdb.sql diff --git a/config/JDK_version b/config/JDK_version new file mode 100644 index 0000000..98d9bcb --- /dev/null +++ b/config/JDK_version @@ -0,0 +1 @@ +17 diff --git a/config/browsers.json b/config/browsers.json new file mode 100644 index 0000000..68edc1e --- /dev/null +++ b/config/browsers.json @@ -0,0 +1,31 @@ +{ + "firefox": { + "default": "112.0", + "versions": { + "112.0": { + "image": "selenoid/firefox:112.0", + "port": "4444", + "path": "/wd/hub", + "tmpfs": { + "/tmp": "size=512m" + }, + "env" : ["LANG=ru_RU.UTF-8", "LANGUAGE=ru:en", "LC_ALL=ru_RU.UTF-8"], + "shmSize": 1073741824 + } + } + }, + "chrome": { + "default": "121.0", + "versions": { + "121.0": { + "image": "selenoid/chrome:121.0", + "port": "4444", + "tmpfs": { + "/tmp": "size=512m" + }, + "env" : ["LANG=ru_RU.UTF-8", "LANGUAGE=ru:en", "LC_ALL=ru_RU.UTF-8"], + "shmSize": 1073741824 + } + } + } +} \ No newline at end of file diff --git a/config/create-databases.sh b/config/create-databases.sh new file mode 100644 index 0000000..7550486 --- /dev/null +++ b/config/create-databases.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +IFS=',' +for databases in $WILDFLY_DATABASES + do + IFS=':' read name user password <<< $databases + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER $user WITH PASSWORD '$password'; + CREATE DATABASE $name WITH OWNER $user; +EOSQL +done diff --git a/config/docker-compose.secdb.yaml b/config/docker-compose.secdb.yaml new file mode 100644 index 0000000..2f6671b --- /dev/null +++ b/config/docker-compose.secdb.yaml @@ -0,0 +1,12 @@ +version: "3" +services: + secdb: + build: + context: . + dockerfile: Dockerfile.secdb + depends_on: + - db + env_file: + - testing.env + labels: + - "tmp=true" diff --git a/config/docker-compose.selenoid.yaml b/config/docker-compose.selenoid.yaml new file mode 100644 index 0000000..f284e11 --- /dev/null +++ b/config/docker-compose.selenoid.yaml @@ -0,0 +1,28 @@ +version: "3" + services: + selenoid: + network_mode: bridge + image: aerokube/selenoid:latest-release + container_name: "selenoid" + environment: + - OVERRIDE_VIDEO_OUTPUT_DIR=$PWD/video + volumes: + - ".:/etc/selenoid/:ro" + - "/var/run/docker.sock:/var/run/docker.sock" + - "./logs:/opt/selenoid/logs/" + - "./video/:/opt/selenoid/video/" + command: -session-attempt-timeout 1m -retry-count 3 -limit ${LIMIT:-4} -save-all-logs -log-output-dir /opt/selenoid/logs -video-output-dir /opt/selenoid/video + ports: + - "4444:4444" + +selenoid-ui: +image: aerokube/selenoid-ui +container_name: "selenoid-ui" +network_mode: bridge +depends_on: + - selenoid +links: + - "selenoid:selenoid" +ports: + - "8080:8080" +command: --selenoid-uri http://selenoid:4444` \ No newline at end of file diff --git a/config/docker-compose.tests.yaml b/config/docker-compose.tests.yaml new file mode 100644 index 0000000..bd0a2ed --- /dev/null +++ b/config/docker-compose.tests.yaml @@ -0,0 +1,41 @@ +version: "3" +services: + db: + ports: + - 5432:5432 + environment: + - WILDFLY_DATABASES=app:app_user:apppassword,security:security_user:secpassword,jbpm:jbpm:jbpmpassword + + webbpm-app: + env_file: + - testing.env + + selenoid: + network_mode: bridge + image: aerokube/selenoid:latest-release + container_name: "selenoid" + environment: + - OVERRIDE_VIDEO_OUTPUT_DIR=$PWD/video + volumes: + - "$PWD:/etc/selenoid/:ro" + - "/var/run/docker.sock:/var/run/docker.sock" + - "$PWD/logs:/opt/selenoid/logs/" + - "$PWD/video/:/opt/selenoid/video/" + command: -session-attempt-timeout 1m -retry-count 3 -limit ${LIMIT:-4} -save-all-logs -log-output-dir /opt/selenoid/logs -video-output-dir /opt/selenoid/video + ports: + - "4444:4444" + depends_on: + - webbpm-app + + selenoid-ui: + image: aerokube/selenoid-ui + container_name: "selenoid-ui" + network_mode: bridge + depends_on: + - selenoid + links: + - "selenoid:selenoid" + ports: + - "8080:8080" + command: --selenoid-uri http://selenoid:4444 + diff --git a/config/docker-compose.tomcat.yaml b/config/docker-compose.tomcat.yaml new file mode 100644 index 0000000..538a488 --- /dev/null +++ b/config/docker-compose.tomcat.yaml @@ -0,0 +1,31 @@ +version: "3" +services: + db: + image: postgres:15-bullseye + volumes: + - ./config/create-databases.sh:/docker-entrypoint-initdb.d/create-databases.sh + command: + - "--max_prepared_transactions=100" + ports: + - 5432 + environment: + - WILDFLY_DATABASES=security:security_user:secpassword,jbpm:jbpm:jbpmpassword + - POSTGRES_PASSWORD=supersecretpassword + labels: + - "tmp=true" + + webbpm-app: + build: + context: ./.. + dockerfile: Dockerfile + depends_on: + - db + ports: + - 9990 + - 8080 + - 8787 + - 12345 + env_file: + - testing.env + labels: + - "tmp=true" diff --git a/config/docker-compose.yaml b/config/docker-compose.yaml new file mode 100644 index 0000000..68ae62e --- /dev/null +++ b/config/docker-compose.yaml @@ -0,0 +1,31 @@ +version: "3" +services: + db: + image: postgres:15-bullseye + volumes: + - ./create-databases.sh:/docker-entrypoint-initdb.d/create-databases.sh + command: + - "--max_prepared_transactions=100" + ports: + - 5432 + environment: + - WILDFLY_DATABASES=security:security_user:secpassword,jbpm:jbpm:jbpmpassword + - POSTGRES_PASSWORD=supersecretpassword + labels: + - "tmp=true" + + webbpm-app: + build: + context: . + dockerfile: Dockerfile + depends_on: + - db + ports: + - 9990 + - 8080 + - 8787 + - 12345 + env_file: + - testing.env + labels: + - "tmp=true" diff --git a/config/entrypoint.sh b/config/entrypoint.sh new file mode 100644 index 0000000..7178804 --- /dev/null +++ b/config/entrypoint.sh @@ -0,0 +1,48 @@ +#! /bin/bash +set -e + +function wait_for_server() { + until `$JBOSS_HOME/bin/jboss-cli.sh -c ":read-attribute(name=server-state)" 2> /dev/null | grep -q running`; do + echo "Retry ..." + done +} + +echo "dump environment variables to env.properties file" +printenv > env.properties + +echo "starting JBoss" +nohup $JBOSS_HOME/bin/standalone.sh --admin-only 1>&2 2>/dev/null & + +# running system patches +wait_for_server +$JBOSS_HOME/bin/jboss-cli.sh --connect --file="./patches/system/init.cli" --properties=env.properties +$JBOSS_HOME/bin/jboss-cli.sh --connect --file="./patches/system/add-postgresql-driver.cli" --properties=env.properties +bash "./patches/system/add-demo-user.sh" + +# running project patches +find ./patches/ -type f -name '*.cli' -not -path './patches/system/*' -print0 | +while IFS= read -r -d '' f; do + wait_for_server + echo "running $f" + $JBOSS_HOME/bin/jboss-cli.sh --connect --file="$f" --properties=env.properties +done; + +find ./patches/ -type f -name '*.sh' -not -path './patches/system/*' -print0 | +while IFS= read -r -d '' f; do + wait_for_server + echo "running $f" + bash "$f" +done + +echo "stopping JBoss" +wait_for_server +$JBOSS_HOME/bin/jboss-cli.sh --connect --command=:shutdown + +if ! [[ -z $SERVER_START ]]; then + echo "starting JBoss in standalone" + sleep 10 # without this occurs error "address already in use" + /opt/jboss/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 -bmanagement 0.0.0.0 +else + echo "cleaning up JBoss logs" + rm -rf $JBOSS_HOME/standalone/log +fi diff --git a/config/patches/add-logger-database.cli b/config/patches/add-logger-database.cli new file mode 100644 index 0000000..83ee893 --- /dev/null +++ b/config/patches/add-logger-database.cli @@ -0,0 +1,3 @@ +/subsystem=logging/logger=org.jooq.tools:add() +/subsystem=logging/logger=org.jooq.tools:write-attribute(name=level, value=DEBUG) +/subsystem=logging/logger=org.jooq.tools:add-handler(name=CONSOLE) \ No newline at end of file diff --git a/config/patches/default.cli b/config/patches/default.cli new file mode 100644 index 0000000..53fec6c --- /dev/null +++ b/config/patches/default.cli @@ -0,0 +1,30 @@ +xa-data-source add \ + --name=AppDS \ + --enabled=true \ + --driver-name=postgresql \ + --jndi-name=java:/webbpm/AppDS \ + --user-name=${env.DB_APP_USERNAME:app_user} \ + --password=${env.DB_APP_PASSWORD:apppassword} \ + --use-ccm=true \ + --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker \ + --validate-on-match=false \ + --background-validation=true \ + --background-validation-millis=5000 \ + --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter \ + --statistics-enabled=true \ + --max-pool-size=50 \ + --query-timeout=300 \ + --xa-datasource-properties=ServerName=${env.DB_APP_HOST:db},PortNumber=${env.DB_APP_PORT:5432},DatabaseName=${env.DB_APP_NAME:app} + +/system-property=ldap.mapping.login.param:add(value=${env.WEBBPM_LDAP_LOGIN_ATTR:uid}) +/system-property=ldap.mapping.org.code.param:add(value=${env.WEBBPM_LDAP_ORGANIZATION_ATTR:ou}) +/system-property=jboss.as.management.blocking.timeout:add(value=900) +/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=record-request-start-time,value=true) +/subsystem=undertow/server=default-server/host=default-host/setting=access-log:add(pattern=%h %t "%r" %s %b %D) +/system-property=webbpm.cache.hazelcast.hosts:add(value="127.0.0.1") +/system-property=webbpm.cache.hazelcast.outbound_port_definitions:add(value="5801-5820") +/system-property=webbpm.security.session.active.count:add(value="20") +/system-property=gar.enable:add(value=false) +/system-property=security.password.regex:add(value="^((?=(.*\\d){1,})(?=.*[a-zミー-ム肖曽)(?=.*[A-Zミ-ミッミ‐).{8,})$") +/system-property=fias.enable:add(value=false) +/system-property=bpmn.enable:add(value=false) diff --git a/config/patches/system/add-demo-user.sh b/config/patches/system/add-demo-user.sh new file mode 100644 index 0000000..32b2986 --- /dev/null +++ b/config/patches/system/add-demo-user.sh @@ -0,0 +1 @@ +$JBOSS_HOME/bin/add-user.sh demo@example.com demo diff --git a/config/patches/system/add-postgresql-driver.cli b/config/patches/system/add-postgresql-driver.cli new file mode 100644 index 0000000..66566bf --- /dev/null +++ b/config/patches/system/add-postgresql-driver.cli @@ -0,0 +1,5 @@ +/subsystem=datasources/jdbc-driver=postgresql:add( \ + driver-name="postgresql", \ + driver-module-name="org.postgresql", \ + driver-xa-datasource-class-name="org.postgresql.xa.PGXADataSource" \ +) diff --git a/config/patches/system/init.cli b/config/patches/system/init.cli new file mode 100644 index 0000000..100c4d3 --- /dev/null +++ b/config/patches/system/init.cli @@ -0,0 +1,14 @@ +/system-property=webbpm.mode:add(value=production) +/system-property=authentication.method:add(value=form) +/subsystem=undertow/configuration=filter/gzip=gzipFilter:add() +/subsystem=undertow/server=default-server/host=default-host/\ + filter-ref=gzipFilter:add(predicate="exists('%{o,Content-Type}') and regex(pattern='(?:application/javascript|text/css|text/html|text/xml|application/json)(;.*)?', value=%{o,Content-Type}, full-match=true)") +/subsystem=undertow/configuration=filter/response-header=vary-header:add(header-name="Vary", header-value="Accept-Encoding") +/subsystem=undertow/server=default-server/host=default-host/filter-ref=vary-header:add() +/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=max-post-size,value=${env.MAX_POST_SIZE:104857600}) +data-source remove --name=ExampleDS +/subsystem=ee/service=default-bindings:remove +/system-property=jboss.bind.address.management:add(value=0.0.0.0) +/system-property=jboss.bind.address:add(value=0.0.0.0) +module add --name=org.postgresql --resources=./patches/system/postgresql-driver.jar --dependencies=javax.api,javax.transaction.api +shutdown --restart diff --git a/config/secdb.sql b/config/secdb.sql new file mode 100644 index 0000000..46856aa --- /dev/null +++ b/config/secdb.sql @@ -0,0 +1,25 @@ +INSERT INTO security.user_group(user_group_id, name, created, updated, access_level_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), 'Example', '2019-07-04 11:12:01.263+03', '2019-08-26 16:40:11.953+03', (SELECT access_level_id FROM security.access_level where level = 0)) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_group_user_role(link_user_group_user_role_id, user_group_id, user_role_id) SELECT uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_group_id FROM security.user_group where name = 'Example'), user_role_id FROM security.user_role WHERE name = 'Example' ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_group_user_role(link_user_group_user_role_id, user_group_id, user_role_id) SELECT uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_group_id FROM security.user_group where name = 'Demo'), user_role_id FROM security.user_role WHERE name = 'Example' ON CONFLICT DO NOTHING; + +INSERT INTO security.user_group(user_group_id, name, created, updated, access_level_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), 'Example', '2019-07-04 11:12:01.263+03', '2019-08-26 16:40:11.953+03', (SELECT access_level_id FROM security.access_level where level = 0)) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_group_user_role(link_user_group_user_role_id, user_group_id, user_role_id) SELECT uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_group_id FROM security.user_group where name = 'Example'), user_role_id FROM security.user_role WHERE name = 'Example' ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_group_user_role(link_user_group_user_role_id, user_group_id, user_role_id) SELECT uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_group_id FROM security.user_group where name = 'Demo'), user_role_id FROM security.user_role WHERE name = 'Example' ON CONFLICT DO NOTHING; + +INSERT INTO security.user_account(user_account_id, email, first_name, last_name, middle_name, created, updated, locked, org_unit_id, username) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), 'qa_test@micord.ru', 'ミ渙セミサム糊キミセミイミームひオミサム', 'ミ樮ミスミセミイミスミセミケ-ミ「ミオムムひセミイム巾ケ', NULL, '2020-01-20 08:41:25.526+03', '2020-01-20 09:57:07.25+03', false, (SELECT id from security.org_unit where code = 'DEFAULT'), 'qa_test') ON CONFLICT DO NOTHING; +INSERT INTO security.simple_credentials( user_account_id, password, password_expires, password_updated) VALUES ((SELECT user_account_id from security.user_account where username = 'qa_test'), '$2a$11$uTzaeewDp2NehwjmfRe/euxP.cy.4ecl5nYA.E5TV9AGjjDKdJwI2', NULL, '2020-01-20 05:41:25.746') ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_test'), (SELECT user_group_id FROM security.user_group where name = 'Security Admin')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_test'), (SELECT user_group_id FROM security.user_group where name = 'BPMN Superuser')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_test'), (SELECT user_group_id FROM security.user_group where name = 'BPMN Admin')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_test'), (SELECT user_group_id FROM security.user_group where name = 'Example')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_test'), (SELECT user_group_id FROM security.user_group where name = 'BPMN User')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_test'), (SELECT user_group_id FROM security.user_group where name = 'Demo')) ON CONFLICT DO NOTHING; + +INSERT INTO security.user_account(user_account_id, email, first_name, last_name, middle_name, created, updated, locked, org_unit_id, username) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), 'qa_admin@micord.ru', 'qa_admin', 'qa_admin', NULL, '2020-01-20 08:41:25.526+03', '2020-01-20 09:57:07.25+03', false, (SELECT id from security.org_unit where code = 'DEFAULT'), 'qa_admin') ON CONFLICT DO NOTHING; +INSERT INTO security.simple_credentials( user_account_id, password, password_expires, password_updated) VALUES ((SELECT user_account_id from security.user_account where username = 'qa_admin'), '$2a$11$Zzmuga/xw1c1UnUe9nP9c.aqJ2O.OAI/AbmphOm2jurxMI0S6VAcy', NULL, '2020-01-20 05:41:25.746') ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_admin'), (SELECT user_group_id FROM security.user_group where name = 'Security Admin')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_admin'), (SELECT user_group_id FROM security.user_group where name = 'BPMN Superuser')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_admin'), (SELECT user_group_id FROM security.user_group where name = 'BPMN Admin')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_admin'), (SELECT user_group_id FROM security.user_group where name = 'Example')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_admin'), (SELECT user_group_id FROM security.user_group where name = 'BPMN User')) ON CONFLICT DO NOTHING; +INSERT INTO security.link_user_account_user_group(link_user_account_user_group_id, user_account_id, user_group_id) VALUES (uuid_in(md5(random()::text || now()::text)::cstring), (SELECT user_account_id from security.user_account where username = 'qa_admin'), (SELECT user_group_id FROM security.user_group where name = 'Demo')) ON CONFLICT DO NOTHING; diff --git a/config/standalone/dev/standalone.xml b/config/standalone/dev/standalone.xml new file mode 100644 index 0000000..c7fac64 --- /dev/null +++ b/config/standalone/dev/standalone.xml @@ -0,0 +1,561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jdbc:h2:mem:jbpm;DB_CLOSE_DELAY=-1 + h2 + + ${env.DB_JBPM_USERNAME:sa} + ${env.DB_JBPM_PASSWORD:sa} + + + 300 + + + + 10.10.31.119 + 5432 + ervu-dashboard + postgresql-driver + + ervu-dashboard-sec + ervu-dashboard-sec + + + + false + true + 5000 + + + + + + org.h2.jdbcx.JdbcDataSource + + + org.postgresql.xa.PGXADataSource + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jboss.bind.address:127.0.0.1} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/config/testing.env b/config/testing.env new file mode 100644 index 0000000..1e36952 --- /dev/null +++ b/config/testing.env @@ -0,0 +1,37 @@ +# Security datasource +DB_SEC_USERNAME=ervu-dashboard-sec +DB_SEC_PASSWORD=ervu-dashboard-sec +DB_SEC_HOST=10.10.31.119 +DB_SEC_PORT=5432 +DB_SEC_NAME=ervu-dashboard +# 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 +# jBPM datasorce +DB_JBPM_USERNAME=jbpm-ervu-dashboard +DB_JBPM_PASSWORD=jbpm-ervu-dashboard +DB_JBPM_HOST=10.10.31.119 +DB_JBPM_PORT=5432 +DB_JBPM_NAME=jbpm-ervu-dashboard +# Elasticsearch +WEBBPM_ELASTIC_HOST= +WEBBPM_ELASTIC_USER_PASSWORD= +# LDAP +WEBBPM_LDAP_URL= +WEBBPM_LDAP_BASE= +WEBBPM_LDAP_USER= +WEBBPM_LDAP_PASSWORD= +WEBBPM_LDAP_SYNC_ENABLED=false +WEBBPM_LDAP_SYNC_CRON=0 0 * * * * +WEBBPM_LDAP_LOGIN_ATTR=uid +WEBBPM_LDAP_ORGANIZATION_ATTR=ou +# JIRA +WEBBPM_JIRA_URL=https:/jira.com +WEBBPM_JIRA_USER=jiraUser +WEBBPM_JIRA_PASSWORD=jiraPass +TZ=Europe/Moscow +WEBBPM_TELEGRAM_BOT_TOKEN= +WEBBPM_TELEGRAM_BOT_NAME= \ No newline at end of file diff --git a/config/tomcat/tomee/bin/setenv.sh b/config/tomcat/tomee/bin/setenv.sh new file mode 100644 index 0000000..67d6c63 --- /dev/null +++ b/config/tomcat/tomee/bin/setenv.sh @@ -0,0 +1,17 @@ +#!/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/conf/context.xml b/config/tomcat/tomee/conf/context.xml new file mode 100644 index 0000000..92d999c --- /dev/null +++ b/config/tomcat/tomee/conf/context.xml @@ -0,0 +1,36 @@ + + + + + + + + WEB-INF/web.xml + WEB-INF/tomcat-web.xml + ${catalina.base}/conf/web.xml + + + + + + diff --git a/config/tomcat/tomee/conf/tomcat-users.xml b/config/tomcat/tomee/conf/tomcat-users.xml new file mode 100644 index 0000000..4a9631c --- /dev/null +++ b/config/tomcat/tomee/conf/tomcat-users.xml @@ -0,0 +1,39 @@ + + + + + + diff --git a/config/tomcat/tomee/conf/webbpm.properties b/config/tomcat/tomee/conf/webbpm.properties new file mode 100644 index 0000000..0fe1d60 --- /dev/null +++ b/config/tomcat/tomee/conf/webbpm.properties @@ -0,0 +1,15 @@ +# WebBPM properties + +authentication.method=form + +bpmn.enable=false +fias.enable=false +gar.enable=false + +reset_password.mail.template.path=mail/reset_password.html +security.password.regex=^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$ + +webbpm.mode=production +webbpm.jbpm.hibernate_statistics.enabled=false +webbpm.cache.hazelcast.hosts=127.0.0.1 +webbpm.cache.hazelcast.outbound_port_definitions=5801-5820 diff --git a/config/tomcat/tomee/webapps/manager/META-INF/context.xml b/config/tomcat/tomee/webapps/manager/META-INF/context.xml new file mode 100644 index 0000000..82a93f3 --- /dev/null +++ b/config/tomcat/tomee/webapps/manager/META-INF/context.xml @@ -0,0 +1,26 @@ + + + + + + + diff --git a/distribution/pom.xml b/distribution/pom.xml new file mode 100644 index 0000000..997e23c --- /dev/null +++ b/distribution/pom.xml @@ -0,0 +1,66 @@ + + + 4.0.0 + + ru.micord.ervu + dashboard + 1.0.0-SNAPSHOT + + + ru.micord.ervu.dashboard + distribution + ear + + + /dashboard + + + + + ru.micord.ervu.dashboard + backend + war + + + ru.micord.ervu.dashboard + frontend + war + + + + + + + org.apache.maven.plugins + maven-ear-plugin + 3.2.0 + + + + ru.micord.ervu.dashboard + frontend + / + frontend.war + + + ru.micord.ervu.dashboard + backend + ${backendContext} + dashboard.war + + + + + + ${project.parent.artifactId} + + + + + enable-version-in-url + + /dashboard-${project.version} + + + + diff --git a/frontend/.npmrc b/frontend/.npmrc new file mode 100644 index 0000000..8ed054b --- /dev/null +++ b/frontend/.npmrc @@ -0,0 +1 @@ +registry=https://repo.micord.ru/repository/npm-all/ diff --git a/frontend/angular.json b/frontend/angular.json new file mode 100644 index 0000000..965697d --- /dev/null +++ b/frontend/angular.json @@ -0,0 +1,71 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "webbpm-frontend": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "main": "src/ts/main.ts", + "tsConfig": "src/tsconfig.json", + "polyfills": "src/ts/polyfills.ts", + "assets": [ + "src/resources" + ], + "styles": [ + ], + "scripts": [ + "node_modules/jquery/dist/jquery.min.js", + "node_modules/moment/min/moment-with-locales.js", + "node_modules/moment-timezone/builds/moment-timezone-with-data.min.js", + "node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js", + "node_modules/selectize/dist/js/standalone/selectize.min.js", + "node_modules/downloadjs/download.min.js" + ] + }, + "configurations": { + "production": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "webbpm-frontend:build" + }, + "configurations": {} + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "webbpm-frontend:build" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [], + "exclude": [] + } + } + } + } + }, + "defaultProject": "webbpm-frontend" +} diff --git a/frontend/bs-config.json b/frontend/bs-config.json new file mode 100644 index 0000000..448da14 --- /dev/null +++ b/frontend/bs-config.json @@ -0,0 +1,10 @@ +{ + "port": 8000, + "open": false, + "files": [ + "./**/*.{html,htm,css,js}" + ], + "server": { + "baseDir": "./" + } +} \ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..d81cc68 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,24 @@ + + + + ervu_dashboard + + + + + + + + + + + + + +
+ + diff --git a/frontend/index.webpack.html b/frontend/index.webpack.html new file mode 100644 index 0000000..d295110 --- /dev/null +++ b/frontend/index.webpack.html @@ -0,0 +1,12 @@ + + + + ervu_dashboard + + + + + +
+ + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..a50097f --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,10689 @@ +{ + "name": "webbpm-frontend", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.13.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular-devkit/architect/-/architect-0.13.9.tgz", + "integrity": "sha512-EAFtCs9dsGhpMRC45PoYsrkiExpWz9Ax15qXfzwdDRacz5DmdOVt+QpkLW1beUOwiyj/bhFyj23eaONK2RTn/w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.13.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular-devkit/build-optimizer/-/build-optimizer-0.13.9.tgz", + "integrity": "sha512-GQtCntthQHSBv5l1ZY5p00JOECb/WcE1qUBo5kFjp84z0fszDkhOy52M1kcWCX4PFzJaY4DKk58hbUE/2UN0jw==", + "dev": true, + "requires": { + "loader-utils": "1.2.3", + "source-map": "0.5.6", + "typescript": "3.2.4", + "webpack-sources": "1.3.0" + } + }, + "@angular-devkit/core": { + "version": "7.3.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular-devkit/core/-/core-7.3.9.tgz", + "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "7.3.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular-devkit/schematics/-/schematics-7.3.9.tgz", + "integrity": "sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular/animations": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/animations/-/animations-7.2.15.tgz", + "integrity": "sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/cli": { + "version": "7.3.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/cli/-/cli-7.3.9.tgz", + "integrity": "sha512-7oJj7CKDlFUbQav1x1CV4xKKcbt0pnxY4unKcm7Q1tVXhu8bU2bc3cDA0aJnbofcYb6TJcd/C2qHgCt78q7edA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.13.9", + "@angular-devkit/core": "7.3.9", + "@angular-devkit/schematics": "7.3.9", + "@schematics/angular": "7.3.9", + "@schematics/update": "0.13.9", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "inquirer": "6.2.1", + "npm-package-arg": "6.1.0", + "open": "6.0.0", + "pacote": "9.4.0", + "semver": "5.6.0", + "symbol-observable": "1.2.0" + } + }, + "@angular/common": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/common/-/common-7.2.15.tgz", + "integrity": "sha512-2b5JY2HWVHCf3D1GZjmde7jdAXSTXkYtmjLtA9tQkjOOTr80eHpNSujQqnzb97dk9VT9OjfjqTQd7K3pxZz8jw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/compiler/-/compiler-7.2.15.tgz", + "integrity": "sha512-5yb4NcLk8GuXkYf7Dcor4XkGueYp4dgihzDmMjYDUrV0NPhubKlr+SwGtLOtzgRBWJ1I2bO0S3zwa0q0OgIPOw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler-cli": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/compiler-cli/-/compiler-cli-7.2.15.tgz", + "integrity": "sha512-+AsfyKawmj/sa+m4Pz8VSRFbCfx/3IOjAuuEjhopbyr154YpPDSu8NTbcwzq3yfbVcPwK4/4exmbQzpsndaCTg==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^2.1.1", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "shelljs": "^0.8.1", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "9.0.1" + }, + "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, + "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" + } + }, + "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 + }, + "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 + } + } + }, + "@angular/core": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/core/-/core-7.2.15.tgz", + "integrity": "sha512-XsuYm0jEU/mOqwDOk2utThv8J9kESkAerfuCHClE9rB2TtHUOGCfekF7lJWqjjypu6/J9ygoPFo7hdAE058ZGg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/forms": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/forms/-/forms-7.2.15.tgz", + "integrity": "sha512-p0kcIQLtBBC1qeTA6M3nOuXf/k91E80FKquVM9zEsO2kDjI0oZJVfFYL2UMov5samlJOPN+t6lRHEIUa7ApPsw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/http": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/http/-/http-7.2.15.tgz", + "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/platform-browser/-/platform-browser-7.2.15.tgz", + "integrity": "sha512-aYgmPsbC9Tvp9vmKWD8voeAp4crwCay7/D6lM3ClEe2EeK934LuEXq3/uczMrFVbnIX7BBIo8fh03Tl7wbiGPw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.15.tgz", + "integrity": "sha512-UL2PqhzXMD769NQ6Lh6pxlBDKvN9Qol3XLRFil80lwJ1GRW16ITeYbCamcafIH2GOyd88IhmYcbMfUQ/6q4MMQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-server": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/platform-server/-/platform-server-7.2.15.tgz", + "integrity": "sha512-a7XhYlbmQ7pN6liFq8WqdX4GNoxCIXhlZqotZkfwJDsDy2E2yyvVx6BYCEOnSRvO9xXwfyBXiLfZ4Y2A7xeCoQ==", + "dev": true, + "requires": { + "domino": "^2.1.0", + "tslib": "^1.9.0", + "xhr2": "^0.1.4" + } + }, + "@angular/router": { + "version": "7.2.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular/router/-/router-7.2.15.tgz", + "integrity": "sha512-qAubRJRQanguUqJQ76J9GSZ4JFtoyhJKRmX5P23ANZJXpB6YLzF2fJmOGi+E6cV8F0tKBMEq1pjxFTisx0MXwQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@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==", + "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==", + "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", + "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" + }, + "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==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + }, + "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 + } + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "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==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "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-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", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@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==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@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==", + "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-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@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==", + "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==", + "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-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==", + "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-simple-access": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@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==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "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==", + "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==", + "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/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==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/highlight": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "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 + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@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", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^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", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@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", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@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", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@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==", + "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", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + } + }, + "@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==", + "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/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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@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==", + "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/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + } + }, + "@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", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@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==", + "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/preset-modules": { + "version": "0.1.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "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==", + "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==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@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==", + "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", + "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==", + "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 + } + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@mattlewis92/dom-autoscroller": { + "version": "2.4.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@mattlewis92/dom-autoscroller/-/dom-autoscroller-2.4.2.tgz", + "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==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@scarf/scarf": { + "version": "1.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@scarf/scarf/-/scarf-1.3.0.tgz", + "integrity": "sha512-lHKK8M5CTcpFj2hZDB3wIjb0KAbEOgDmiJGDv1WBRfQgRm/a8/XMEkG/N1iM01xgbUDsPQwi42D+dFo1XPAKew==" + }, + "@schematics/angular": { + "version": "7.3.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@schematics/angular/-/angular-7.3.9.tgz", + "integrity": "sha512-B3lytFtFeYNLfWdlrIzvy3ulFRccD2/zkoL0734J+DAGfUz7vbysJ50RwYL46sQUcKdZdvb48ktfu1S8yooP6Q==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "@angular-devkit/schematics": "7.3.9", + "typescript": "3.2.4" + } + }, + "@schematics/update": { + "version": "0.13.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@schematics/update/-/update-0.13.9.tgz", + "integrity": "sha512-4MQcaKFxhMzZyE//+DknDh3h3duy3avg2oxSHxdwXlCZ8Q92+4lpegjJcSRiqlEwO4qeJ5XnrjrvzfIiaIZOmA==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "@angular-devkit/schematics": "7.3.9", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.4.0", + "rxjs": "6.3.3", + "semver": "5.6.0", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true + }, + "@types/bootstrap": { + "version": "3.3.39", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/bootstrap/-/bootstrap-3.3.39.tgz", + "integrity": "sha512-UGvzSQFkv0Oh2vjj30AfZructi7XvY0aRa1Y/vrgFq+tfrTMxtqQ9+s5liCYLJnrISc9LinEtOY5N8Ibrhj2Tg==", + "dev": true, + "requires": { + "@types/jquery": "*" + } + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.17", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@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==", + "dev": true + }, + "@types/jquery": { + "version": "2.0.49", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/jquery/-/jquery-2.0.49.tgz", + "integrity": "sha512-/9xLnYmohN/vD2gDnLS4cym8TUmrJu7DvZa/LELKzZjdPsvWVJiedsdu2SXNtb/DA7FGimqL2g0IoyhbNKLl8g==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/node": { + "version": "7.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/node/-/node-7.0.5.tgz", + "integrity": "sha512-+tQTT+Dg4kkIeLNN3dlHf6x8VxYO2krCMCl0jDeAf/sjUtn3L17/bmigXXLd633gIS0nTKUm6M1t7a2H0/xnrQ==", + "dev": true + }, + "@types/selectize": { + "version": "0.12.33", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/selectize/-/selectize-0.12.33.tgz", + "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==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@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==", + "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==", + "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==", + "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==", + "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/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==", + "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==", + "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/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==", + "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==", + "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==", + "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==", + "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/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==", + "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/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==", + "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/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==", + "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/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==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@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==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://repo.micord.ru/repository/npm-all/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://repo.micord.ru/repository/npm-all/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "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==", + "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==", + "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 + }, + "ag-grid-angular": { + "version": "29.0.0-micord.4", + "resolved": "https://repo.micord.ru/repository/npm-all/ag-grid-angular/-/ag-grid-angular-29.0.0-micord.4.tgz", + "integrity": "sha512-hQ8kotqX/2UA4RS6J0/aygO0bMIDaH9qVpLeDOxagSKBTSJmDFhuejJkWgxfJzEgxC6h7oTOtx+rgvPc9xxjsA==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.6.3", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + } + } + }, + "ag-grid-community": { + "version": "29.0.0-micord.4", + "resolved": "https://repo.micord.ru/repository/npm-all/ag-grid-community/-/ag-grid-community-29.0.0-micord.4.tgz", + "integrity": "sha512-4Rl/JkNSog6krXJl+gxgmqTqvHVNDcZ5eHyx2NaLFL/MTE5ZUNuEXmanZRvNsWhdzZ85Ck9wdgP2kX/aqcqesg==" + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.3", + "resolved": "https://repo.micord.ru/repository/npm-all/agentkeepalive/-/agentkeepalive-3.5.3.tgz", + "integrity": "sha512-yqXL+k5rr8+ZRpOAntkaaRgWgE5o8ESAj5DyRmVTCSoZxXmqemb9Dd7T4i5UzwuERdLAJUy6XzR9zFVuf0kzkw==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "angular-calendar": { + "version": "0.28.28", + "resolved": "https://repo.micord.ru/repository/npm-all/angular-calendar/-/angular-calendar-0.28.28.tgz", + "integrity": "sha512-q6FIye6zkwFeMZfHBgFByHpZdHbWu02EQAJ67XjyZmwiDAvjo7LVoTlaug93CjggJ4DL0YEAWDG4rokLBBgq2w==", + "requires": { + "@scarf/scarf": "^1.1.1", + "angular-draggable-droppable": "^4.6.0", + "angular-resizable-element": "^3.4.0", + "calendar-utils": "^0.8.5", + "positioning": "^2.0.1", + "tslib": "^1.14.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "angular-draggable-droppable": { + "version": "4.6.0", + "resolved": "https://repo.micord.ru/repository/npm-all/angular-draggable-droppable/-/angular-draggable-droppable-4.6.0.tgz", + "integrity": "sha512-+8JhTDMKkc/NuFFqb8/H/QHpB+v4Z7YNrgvEbV+PQxXry19rkr89ofZgjNIXhZexTvJNb03BYlSQoknzXE9b3g==", + "requires": { + "@mattlewis92/dom-autoscroller": "^2.4.2", + "tslib": "^1.9.0" + } + }, + "angular-resizable-element": { + "version": "3.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/angular-resizable-element/-/angular-resizable-element-3.4.0.tgz", + "integrity": "sha512-xL5a8FmghzrZmHPy7uwWz98m91gRXgAcdeCRYcK/nD7psXMTYNk5EPmHA0qZTDCIYljhT4h0OKWLvx56NQGfDA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "angular-router-loader": { + "version": "0.8.5", + "resolved": "https://repo.micord.ru/repository/npm-all/angular-router-loader/-/angular-router-loader-0.8.5.tgz", + "integrity": "sha512-8wggCTKGgzB1o8co3Wvj+p9pKN7T7q3C477lEz3NLjvPVzUti8rv9i45Di+4aO/k+HvzGh3s8QdNlXU2Bl4avQ==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2" + } + }, + "angular2-template-loader": { + "version": "0.6.2", + "resolved": "https://repo.micord.ru/repository/npm-all/angular2-template-loader/-/angular2-template-loader-0.6.2.tgz", + "integrity": "sha512-jBSrm2yDsTA48GG0H57upn8rmTfJS3/R7EhUeAL/3ryWS8deT9You8UQKWpW4eVSEY7uMJ52iFwpOYXc8QEtGg==", + "dev": true, + "requires": { + "loader-utils": "^0.2.15" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://repo.micord.ru/repository/npm-all/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "app-root-path": { + "version": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/app-root-path/-/app-root-path-2.2.1.tgz", + "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://repo.micord.ru/repository/npm-all/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + } + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha512-majUxHgLehQTeSA+hClx+DY09OVUqG3GtezWkF1krgLGNdlDu9l9V8DaqNMWbq4Eddc8wsyDA0hpDUtnYxQEXw==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/arr-union/-/arr-union-3.1.0.tgz", + "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", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://repo.micord.ru/repository/npm-all/array-unique/-/array-unique-0.3.2.tgz", + "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", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://repo.micord.ru/repository/npm-all/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://repo.micord.ru/repository/npm-all/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://repo.micord.ru/repository/npm-all/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/async-each-series/-/async-each-series-0.1.1.tgz", + "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", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autonumeric": { + "version": "4.5.10-cg", + "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", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "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==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "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==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "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==", + "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" + }, + "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==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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 + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://repo.micord.ru/repository/npm-all/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "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", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://repo.micord.ru/repository/npm-all/batch/-/batch-0.6.1.tgz", + "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", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://repo.micord.ru/repository/npm-all/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://repo.micord.ru/repository/npm-all/bluebird/-/bluebird-3.7.2.tgz", + "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", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "bootstrap": { + "version": "4.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/bootstrap/-/bootstrap-4.3.1.tgz", + "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==" + }, + "bootstrap-icons": { + "version": "1.10.3", + "resolved": "https://repo.micord.ru/repository/npm-all/bootstrap-icons/-/bootstrap-icons-1.10.3.tgz", + "integrity": "sha512-7Qvj0j0idEm/DdX9Q0CpxAnJYqBCFCiUI6qzSPYfERMcokVuV9Mdm/AJiVZI8+Gawe4h/l6zFcOzvV7oXCZArw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://repo.micord.ru/repository/npm-all/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://repo.micord.ru/repository/npm-all/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "dev": true, + "requires": { + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", + "bs-recipes": "1.3.4", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-regex": { + "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 + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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" + } + }, + "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 + }, + "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, + "requires": { + "fill-range": "^7.1.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "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" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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, + "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 + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": 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, + "requires": { + "is-glob": "^4.0.1" + } + }, + "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 + }, + "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, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "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 + }, + "micromatch": { + "version": "4.0.7", + "resolved": "https://repo.micord.ru/repository/npm-all/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.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 + }, + "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, + "requires": { + "picomatch": "^2.2.1" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "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": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://repo.micord.ru/repository/npm-all/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://repo.micord.ru/repository/npm-all/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "browser-sync-client": { + "version": "2.29.3", + "resolved": "https://repo.micord.ru/repository/npm-all/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "dev": true, + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + } + }, + "browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://repo.micord.ru/repository/npm-all/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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": "7.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://repo.micord.ru/repository/npm-all/bs-recipes/-/bs-recipes-1.3.4.tgz", + "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", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cadesplugin_api": { + "version": "2.0.4-micord.1", + "resolved": "https://repo.micord.ru/repository/npm-all/cadesplugin_api/-/cadesplugin_api-2.0.4-micord.1.tgz", + "integrity": "sha512-FyGVi1VWIyJOW1zOOQN0IkTH/Z/8g7pNWH7A71nf0h21FCX9SacUfgRwID+gl+NlpYiT3m+yZGdlEJsiDeV8JA==" + }, + "calendar-utils": { + "version": "0.8.5", + "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", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + }, + "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 + } + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001636", + "resolved": "https://repo.micord.ru/repository/npm-all/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", + "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "cardinal": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/cardinal/-/cardinal-1.0.0.tgz", + "integrity": "sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg==", + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~1.0.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://repo.micord.ru/repository/npm-all/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chart.js": { + "version": "3.8.0-cg.1", + "resolved": "https://repo.micord.ru/repository/npm-all/chart.js/-/chart.js-3.8.0-cg.1.tgz", + "integrity": "sha512-OKZBIhQCLzE4NVoZEG9+/lKWEPa4jUdpOmf0Wjb01PHckkVFo2Z+zu2TRv5+wcfXv1e9hj7rNOchvDO/0pFLZg==" + }, + "chartjs-adapter-moment": { + "version": "1.0.0", + "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", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "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", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "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 + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "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==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "ansi-regex": "^2.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", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true + }, + "codelyzer": { + "version": "5.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/codelyzer/-/codelyzer-5.2.1.tgz", + "integrity": "sha512-awBZXFcJUyC5HMYXiHzjr3D24tww2l1D1OqtfA9vUhEtYr32a65A+Gblm/OvsO+HuKLYzn8EDMw1inSM3VbxWA==", + "dev": true, + "requires": { + "app-root-path": "^2.2.1", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://repo.micord.ru/repository/npm-all/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://repo.micord.ru/repository/npm-all/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://repo.micord.ru/repository/npm-all/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://repo.micord.ru/repository/npm-all/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "connect-logger": { + "version": "0.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/connect-logger/-/connect-logger-0.0.1.tgz", + "integrity": "sha512-kC5FPWpcfgpW5HtICnXbdOAFa4uNilU4ZPmsH6RlXaDVfXLupyUjgI1otpj3kOcsoPpDxknxmcoM0wk0ApsjYQ==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://repo.micord.ru/repository/npm-all/cookie/-/cookie-0.4.2.tgz", + "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", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/copy-webpack-plugin/-/copy-webpack-plugin-5.0.3.tgz", + "integrity": "sha512-PlZRs9CUMnAVylZq+vg2Juew662jWtwOXOqH4lbQD9ZFhRG9R7tVStOgHt21CBGVq7k5yIJaz8TXDLSjV+Lj8Q==", + "dev": true, + "requires": { + "cacache": "^11.3.2", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "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 + }, + "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-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 + }, + "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" + } + } + } + }, + "core-js": { + "version": "2.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/core-js/-/core-js-2.4.1.tgz", + "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==", + "dev": true, + "requires": { + "browserslist": "^4.23.0" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://repo.micord.ru/repository/npm-all/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "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", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5" + }, + "dependencies": { + "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==", + "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" + } + } + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://repo.micord.ru/repository/npm-all/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "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==", + "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" + }, + "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" + } + } + } + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://repo.micord.ru/repository/npm-all/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha512-Ht70DcFBh+/ekjVrYS2PlDMdSQEl3OFNmjK6lcn49HptBgilXf/Zwg4uFh9Xn0pX3Q8YOkSjIFOfK2osvdqpBw==", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csv-parse": { + "version": "4.16.3", + "resolved": "https://repo.micord.ru/repository/npm-all/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==" + }, + "cyclist": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://repo.micord.ru/repository/npm-all/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "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==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "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", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/del/-/del-2.2.2.tgz", + "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "globby": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/globby/-/globby-5.0.0.tgz", + "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://repo.micord.ru/repository/npm-all/dependency-graph/-/dependency-graph-0.7.2.tgz", + "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", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/diff/-/diff-3.5.0.tgz", + "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", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "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", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domino": { + "version": "2.1.6", + "resolved": "https://repo.micord.ru/repository/npm-all/domino/-/domino-2.1.6.tgz", + "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==", + "dev": true + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://repo.micord.ru/repository/npm-all/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "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 + } + } + }, + "downloadjs": { + "version": "1.4.8", + "resolved": "https://repo.micord.ru/repository/npm-all/downloadjs/-/downloadjs-1.4.8.tgz", + "integrity": "sha512-XryLt/u8q0cF+L6/WdwcitDNdbtvTSv4OyehIww3DZxOcltvgzRNsj2wzk1Xu/qvBFhwlaqP1gpnch0618FL3Q==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://repo.micord.ru/repository/npm-all/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://repo.micord.ru/repository/npm-all/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "4.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "requires": { + "chalk": "4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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": "7.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ee-first/-/ee-first-1.1.1.tgz", + "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", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://repo.micord.ru/repository/npm-all/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://repo.micord.ru/repository/npm-all/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "6.5.5", + "resolved": "https://repo.micord.ru/repository/npm-all/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "dependencies": { + "@types/node": { + "version": "20.14.8", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/node/-/node-20.14.8.tgz", + "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "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==", + "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 + } + } + }, + "engine.io-client": { + "version": "6.5.4", + "resolved": "https://repo.micord.ru/repository/npm-all/engine.io-client/-/engine.io-client-6.5.4.tgz", + "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1", + "xmlhttprequest-ssl": "~2.0.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==", + "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 + } + } + }, + "engine.io-parser": { + "version": "5.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "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 + }, + "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", + "integrity": "sha512-zrlmECV38liU3NbpX9INRQjFQ1z6DkLQugxsMaQREA88DVjfOpMQ3GXEB+cDPJZaDx2QbKy+CngZyKv9WLyqWQ==", + "requires": { + "bootstrap": "^3.3", + "jquery": "^1.8.3 || ^2.0 || ^3.0", + "moment": "^2.10", + "moment-timezone": "^0.4.0" + }, + "dependencies": { + "bootstrap": { + "version": "3.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/bootstrap/-/bootstrap-3.4.1.tgz", + "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==" + }, + "moment-timezone": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/moment-timezone/-/moment-timezone-0.4.1.tgz", + "integrity": "sha512-5cNPVUwaVJDCe9JM8m/qz17f9SkaI8rpnRUyDJi2K5HAd6EwhuQ3n5nLclZkNC/qJnomKgQH2TIu70Gy2dxFKA==", + "requires": { + "moment": ">= 2.6.0" + } + } + } + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/err-code/-/err-code-1.1.2.tgz", + "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", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "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==", + "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", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "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==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esmarttokenjs": { + "version": "2.2.1-cg", + "resolved": "https://repo.micord.ru/repository/npm-all/esmarttokenjs/-/esmarttokenjs-2.2.1-cg.tgz", + "integrity": "sha512-H48OuXYP8v/CAdxD5QWgfmg/6IXmnPG4uaS3Lmx6FR64NJjK46fLK4zDd3VF/52l/5WRxnIqNPGb5krLPviPuQ==" + }, + "esprima": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/esprima/-/esprima-3.0.0.tgz", + "integrity": "sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==" + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://repo.micord.ru/repository/npm-all/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://repo.micord.ru/repository/npm-all/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/events/-/events-3.3.0.tgz", + "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", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "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" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha512-eIgZvM9C3P05kg0qxfqaVU6Tma4QedCPIByQOcemV0vju8ot3cS2DpHi4m2G2JvbSMI152rjfLX0p1pkSdyPlQ==", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://repo.micord.ru/repository/npm-all/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "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==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "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" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "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", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "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" + } + } + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://repo.micord.ru/repository/npm-all/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true + }, + "font-awesome": { + "version": "4.7.0", + "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", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://repo.micord.ru/repository/npm-all/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://repo.micord.ru/repository/npm-all/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://repo.micord.ru/repository/npm-all/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://repo.micord.ru/repository/npm-all/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/function-bind/-/function-bind-1.1.2.tgz", + "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", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://repo.micord.ru/repository/npm-all/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/get-caller-file/-/get-caller-file-1.0.3.tgz", + "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", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "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" + } + } + } + }, + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://repo.micord.ru/repository/npm-all/globals/-/globals-11.12.0.tgz", + "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", + "integrity": "sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "google-libphonenumber": { + "version": "3.0.9", + "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", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "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==", + "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 + } + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "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==", + "dev": true + } + } + }, + "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", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/he/-/he-1.2.0.tgz", + "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-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==", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "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==", + "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==", + "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" + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://repo.micord.ru/repository/npm-all/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "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 + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://repo.micord.ru/repository/npm-all/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "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", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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 + } + } + }, + "humanize": { + "version": "0.0.9", + "resolved": "https://repo.micord.ru/repository/npm-all/humanize/-/humanize-0.0.9.tgz", + "integrity": "sha512-bvZZ7vXpr1RKoImjuQ45hJb5OvE2oJafHysiD/AL3nkqTZH2hFCjQ3YZfCd63FefDitbJze/ispUPP0gfDsT2Q==" + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://repo.micord.ru/repository/npm-all/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "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==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://repo.micord.ru/repository/npm-all/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://repo.micord.ru/repository/npm-all/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://repo.micord.ru/repository/npm-all/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "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==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://repo.micord.ru/repository/npm-all/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://repo.micord.ru/repository/npm-all/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inputmask": { + "version": "5.0.5-cg.2", + "resolved": "https://repo.micord.ru/repository/npm-all/inputmask/-/inputmask-5.0.5-cg.2.tgz", + "integrity": "sha512-gd2NTwPedZNdZ97Gxcsm3xjpJnuo0blPczOdvi9p/OyKisx2byMultQrWvi9bF3pmRH0a8uC/5tt5wxPjXyTDw==" + }, + "inquirer": { + "version": "6.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/inquirer/-/inquirer-6.2.1.tgz", + "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "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", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://repo.micord.ru/repository/npm-all/ip/-/ip-1.1.5.tgz", + "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", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "dev": true, + "requires": { + "hasown": "^2.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://repo.micord.ru/repository/npm-all/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "jquery": { + "version": "3.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://repo.micord.ru/repository/npm-all/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "js-year-calendar": { + "version": "1.0.0-cg.2", + "resolved": "https://repo.micord.ru/repository/npm-all/js-year-calendar/-/js-year-calendar-1.0.0-cg.2.tgz", + "integrity": "sha512-7ciaNehZAHVxJrcn2t4jsU4i+nVsk25lKaFmv1hTNrERy9XPoT6ElyPRUkIpLYkIG3vQrf78uZbRqE5BcUPMfA==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://repo.micord.ru/repository/npm-all/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "jsgantt-improved": { + "version": "2.0.10-cg", + "resolved": "https://repo.micord.ru/repository/npm-all/jsgantt-improved/-/jsgantt-improved-2.0.10-cg.tgz", + "integrity": "sha1-apCGdd6vnqyZ3KdOgn3wEZkqGcQ=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "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", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "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 + } + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "lite-server": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/lite-server/-/lite-server-2.3.0.tgz", + "integrity": "sha512-EAx+mEn0Vus38VoXxAvQOtQfedTM8onF0fnLZak90XZ3q+1hsqTQX0vnRtfHMZ+9D1OYYUy3VKeUMEMk23N61Q==", + "dev": true, + "requires": { + "browser-sync": "^2.18.5", + "connect-history-api-fallback": "^1.2.0", + "connect-logger": "0.0.1", + "lodash": "^4.11.1", + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw==", + "dev": true + } + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "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==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "localtunnel": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "requires": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "dependencies": { + "ansi-regex": { + "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 + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.3.2", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "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 + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "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": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://repo.micord.ru/repository/npm-all/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://repo.micord.ru/repository/npm-all/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://repo.micord.ru/repository/npm-all/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://repo.micord.ru/repository/npm-all/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://repo.micord.ru/repository/npm-all/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://repo.micord.ru/repository/npm-all/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "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", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + }, + "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 + } + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://repo.micord.ru/repository/npm-all/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "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 + } + } + }, + "make-fetch-happen": { + "version": "4.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", + "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.3.3", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "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", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", + "dev": true, + "requires": { + "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==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://repo.micord.ru/repository/npm-all/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "microplugin": { + "version": "0.0.3", + "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", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://repo.micord.ru/repository/npm-all/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://repo.micord.ru/repository/npm-all/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "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==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "^2.0.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.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" + } + } + } + }, + "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", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://repo.micord.ru/repository/npm-all/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://repo.micord.ru/repository/npm-all/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mitt": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://repo.micord.ru/repository/npm-all/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://repo.micord.ru/repository/npm-all/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://repo.micord.ru/repository/npm-all/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "dev": true + } + } + }, + "moment": { + "version": "2.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/moment/-/moment-2.17.1.tgz", + "integrity": "sha512-FmIqcMMT72OcLqks+4iWx30Tv8gwIZBJvimtnGjT/9c0GeTe28xNxNRrzJQ4xxp/2aD43b8FgImx3ATko9s/qw==" + }, + "moment-timezone": { + "version": "0.5.11", + "resolved": "https://repo.micord.ru/repository/npm-all/moment-timezone/-/moment-timezone-0.5.11.tgz", + "integrity": "sha512-lQS0O0Iv2DZ/W/4jVe/lBgAJF1tsYcJVVWzQusR3te1XFCG1olmA9yNFg4KH5bYssS9i1ncGaQTZfme1ekb2FA==", + "requires": { + "moment": ">= 2.6.0" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://repo.micord.ru/repository/npm-all/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "nan": { + "version": "2.20.0", + "resolved": "https://repo.micord.ru/repository/npm-all/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://repo.micord.ru/repository/npm-all/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://repo.micord.ru/repository/npm-all/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://repo.micord.ru/repository/npm-all/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "ngx-cookie": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ngx-cookie/-/ngx-cookie-3.0.1.tgz", + "integrity": "sha512-TR/4lDHYUenVkXkwS28FgTTrvVNRTt9DvT2Sa3t1CluHXtY41j4DPsLZGHmTyiKcUv0uYVU/usdTUsIzSwK7Og==" + }, + "ngx-international-phone-number": { + "version": "1.0.6", + "resolved": "https://repo.micord.ru/repository/npm-all/ngx-international-phone-number/-/ngx-international-phone-number-1.0.6.tgz", + "integrity": "sha512-2wffmviAjkwDo9TuA/acll+EtWjturFAg7VE/ki3UBbX4CODuoC4FblvatZ3Bnnq7WQ2nSeOH4FjJmd0HE0Tog==" + }, + "ngx-toastr": { + "version": "10.2.0-cg", + "resolved": "https://repo.micord.ru/repository/npm-all/ngx-toastr/-/ngx-toastr-10.2.0-cg.tgz", + "integrity": "sha512-p6abaeYWi8Ayc+cmr/FLQ18/TrXxpcflvbZe+kVNu6x0MtanJUejBRbOBpVhM5HgmCZavx81lFoZA80q4hac6w==", + "requires": { + "tslib": "^1.9.0" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + }, + "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 + } + } + }, + "node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "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", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://repo.micord.ru/repository/npm-all/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-registry-fetch": { + "version": "3.9.1", + "resolved": "https://repo.micord.ru/repository/npm-all/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", + "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.2", + "npm-package-arg": "^6.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/open/-/open-6.0.0.tgz", + "integrity": "sha512-/yb5mVZBz7mHLySMiSj2DcLtMBbFPJk5JBKEkHVZFxZAPzeg3L026O0T+lbdz1B2nyDnkClRSwRQJdeVUIF7zw==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://repo.micord.ru/repository/npm-all/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://repo.micord.ru/repository/npm-all/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", + "requires": { + "minimist": "~0.0.1", + "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", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://repo.micord.ru/repository/npm-all/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "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", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "pacote": { + "version": "9.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pacote/-/pacote-9.4.0.tgz", + "integrity": "sha512-WQ1KL/phGMkedYEQx9ODsjj7xvwLSpdFJJdEXrLyw5SILMxcTNt5DTxT2Z93fXuLFYJBlZJdnwdalrQdB/rX5w==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^11.3.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.8", + "unique-filename": "^1.1.1", + "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", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "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==", + "dev": true + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "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 + } + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/pascalcase/-/pascalcase-0.1.1.tgz", + "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", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://repo.micord.ru/repository/npm-all/path-parse/-/path-parse-1.0.7.tgz", + "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", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "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" + } + }, + "locate-path": { + "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" + } + }, + "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 + } + } + }, + "popper.js": { + "version": "1.14.7", + "resolved": "https://repo.micord.ru/repository/npm-all/popper.js/-/popper.js-1.14.7.tgz", + "integrity": "sha512-4q1hNvoUre/8srWsH7hnoSJ5xVmIL4qgz+s4qf2TnJIMyZFUFMGH+9vE7mXynAlHSZ/NdTmmow86muD0myUkVQ==" + }, + "portscanner": { + "version": "2.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + } + }, + "positioning": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/positioning/-/positioning-2.0.1.tgz", + "integrity": "sha512-DsAgM42kV/ObuwlRpAzDTjH9E8fGKkMDJHWFX+kfNXSxh7UCCQxEmdjv/Ws5Ft1XDnt3JT8fIDYeKNSE2TbttA==" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "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==", + "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 + } + } + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0", + "postcss-value-parser": "^3.3.1" + } + }, + "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==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^7.0.6" + } + }, + "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==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "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==", + "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==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "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", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha512-StEy2osPr28o17bIW776GtwO6+Q+M9zPiZkYfosciUUMYqjhU/ffwRAH0zN2+uvGyUsn8/YICIHRzLbPacpZGw==", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://repo.micord.ru/repository/npm-all/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/punycode/-/punycode-2.3.1.tgz", + "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", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://repo.micord.ru/repository/npm-all/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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==", + "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" + } + } + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://repo.micord.ru/repository/npm-all/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://repo.micord.ru/repository/npm-all/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redeyed": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/redeyed/-/redeyed-1.0.1.tgz", + "integrity": "sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==", + "requires": { + "esprima": "~3.0.0" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://repo.micord.ru/repository/npm-all/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://repo.micord.ru/repository/npm-all/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://repo.micord.ru/repository/npm-all/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://repo.micord.ru/repository/npm-all/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "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", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://repo.micord.ru/repository/npm-all/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://repo.micord.ru/repository/npm-all/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://repo.micord.ru/repository/npm-all/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "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" + }, + "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==", + "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==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://repo.micord.ru/repository/npm-all/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "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", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://repo.micord.ru/repository/npm-all/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "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==", + "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": { + "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==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://repo.micord.ru/repository/npm-all/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.10.1", + "resolved": "https://repo.micord.ru/repository/npm-all/retry/-/retry-0.10.1.tgz", + "integrity": "sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://repo.micord.ru/repository/npm-all/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "rxjs-compat": { + "version": "6.4.0", + "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", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "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==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "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==", + "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": { + "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 + } + } + }, + "selectize": { + "version": "0.12.4-cg.10", + "resolved": "https://repo.micord.ru/repository/npm-all/selectize/-/selectize-0.12.4-cg.10.tgz", + "integrity": "sha512-hv6kGmsFfXzG40fOinr1hRmqXsSNQyir0U7VRLHUMUdOxegY9G6vMRGemvXpN2e72jelKdwhARwQIJ7BQhXZkQ==", + "requires": { + "microplugin": "0.0.3", + "sifter": "^0.5.1" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://repo.micord.ru/repository/npm-all/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://repo.micord.ru/repository/npm-all/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "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 + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://repo.micord.ru/repository/npm-all/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://repo.micord.ru/repository/npm-all/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://repo.micord.ru/repository/npm-all/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "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 + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://repo.micord.ru/repository/npm-all/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/set-blocking/-/set-blocking-2.0.0.tgz", + "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", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://repo.micord.ru/repository/npm-all/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "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", + "integrity": "sha512-t2yxTi/MM/ESup7XH5oMu8PUcttlekt269RqxARgnvS+7D/oP6RyA1x3M/5w8dG9OgkOyQ8hNRWelQ8Rj4TAQQ==", + "requires": { + "async": "^2.6.0", + "cardinal": "^1.0.0", + "csv-parse": "^4.6.5", + "humanize": "^0.0.9", + "optimist": "^0.6.1" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://repo.micord.ru/repository/npm-all/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://repo.micord.ru/repository/npm-all/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "4.7.5", + "resolved": "https://repo.micord.ru/repository/npm-all/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "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==", + "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 + } + } + }, + "socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://repo.micord.ru/repository/npm-all/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "dev": true, + "requires": { + "debug": "~4.3.4", + "ws": "~8.17.1" + }, + "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==", + "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 + } + } + }, + "socket.io-client": { + "version": "4.7.5", + "resolved": "https://repo.micord.ru/repository/npm-all/socket.io-client/-/socket.io-client-4.7.5.tgz", + "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "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==", + "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 + } + } + }, + "socket.io-parser": { + "version": "4.2.4", + "resolved": "https://repo.micord.ru/repository/npm-all/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "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==", + "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 + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "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", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://repo.micord.ru/repository/npm-all/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "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", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://repo.micord.ru/repository/npm-all/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "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-url": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://repo.micord.ru/repository/npm-all/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://repo.micord.ru/repository/npm-all/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://repo.micord.ru/repository/npm-all/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/statuses/-/statuses-1.3.1.tgz", + "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", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "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", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "requires": { + "commander": "^2.2.0", + "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", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "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" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "systemjs": { + "version": "0.21.4", + "resolved": "https://repo.micord.ru/repository/npm-all/systemjs/-/systemjs-0.21.4.tgz", + "integrity": "sha512-l1O8boHjAIY5UG74Xk4B63LK9QbFxv/FkQa//GGGWaTeQoMhTsWnFrYwPWBScSF4xQFMO/+v9QB4i633h8Oytw==" + }, + "systemjs-plugin-babel": { + "version": "0.0.25", + "resolved": "https://repo.micord.ru/repository/npm-all/systemjs-plugin-babel/-/systemjs-plugin-babel-0.0.25.tgz", + "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==", + "dev": true + }, + "tar": { + "version": "4.4.19", + "resolved": "https://repo.micord.ru/repository/npm-all/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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 + } + } + }, + "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==", + "dev": true, + "requires": { + "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 + } + } + }, + "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==", + "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" + }, + "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" + } + }, + "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 + }, + "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==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + } + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://repo.micord.ru/repository/npm-all/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.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", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/toidentifier/-/toidentifier-1.0.1.tgz", + "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==", + "dev": true + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "tslint": { + "version": "5.13.1", + "resolved": "https://repo.micord.ru/repository/npm-all/tslint/-/tslint-5.13.1.tgz", + "integrity": "sha512-fplQqb2miLbcPhyHoMV4FU9PtNRbgmm/zI5d3SZwwmJQM6V0eodju+hplpyfhLWpmwrDNfNYU57uYRb8s0zZoQ==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "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", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "typescript": { + "version": "3.2.4", + "resolved": "https://repo.micord.ru/repository/npm-all/typescript/-/typescript-3.2.4.tgz", + "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", + "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=", + "dev": true, + "requires": { + "lodash": "^4.17.10", + "lodash-es": "^4.17.10", + "tslib": "^1.9.3", + "typescript": "3.2.4" + } + }, + "ua-parser-js": { + "version": "1.0.38", + "resolved": "https://repo.micord.ru/repository/npm-all/ua-parser-js/-/ua-parser-js-1.0.38.tgz", + "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", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://repo.micord.ru/repository/npm-all/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/urix/-/urix-0.1.0.tgz", + "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", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/uuid/-/uuid-3.4.0.tgz", + "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", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/vary/-/vary-1.1.2.tgz", + "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==", + "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 + } + } + }, + "webpack": { + "version": "4.32.2", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack/-/webpack-4.32.2.tgz", + "integrity": "sha512-F+H2Aa1TprTQrpodRAWUMJn7A8MgDx82yQiNvYMaj3d1nv3HetKU0oqEulL9huj8enirKi8KvEXQ3QtuHF89Zg==", + "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" + }, + "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" + } + } + } + }, + "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==", + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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==", + "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" + }, + "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==", + "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==", + "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" + } + }, + "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==", + "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" + } + }, + "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": { + "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==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "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==", + "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==", + "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" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "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 + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "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" + } + }, + "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", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.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==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "8.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true + }, + "xhr2": { + "version": "0.1.4", + "resolved": "https://repo.micord.ru/repository/npm-all/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha512-3QGhDryRzTbIDj+waTRvMBe8SyPhW79kz3YnNb+HQt/6LPYQT3zT3Jt0Y8pBofZqQX26x8Ecfv0FXR72uH5VpA==", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.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", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "y18n": { + "version": "3.2.2", + "resolved": "https://repo.micord.ru/repository/npm-all/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + }, + "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==" + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..c3ac1ab --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,101 @@ +{ + "name": "webbpm-frontend", + "version": "1.0.0", + "scripts": { + "lite": "node ./node_modules/lite-server/bin/lite-server", + "cleanup": "npm run cleanup-ngc && node ./node_modules/rimraf/bin ./build ./dist", + "cleanup-ngc": "node ./node_modules/rimraf/bin ./src/ts/**/*.js ./src/ts/**/*.json ./src/ts/page.routing.ts", + "cleanup-and-ngc": "npm run cleanup && npm run ngc", + "ngc": "node --max-old-space-size=14336 ./node_modules/@angular/compiler-cli/src/main -p tsconfig.aot.json", + "build-webpack": "node --max-old-space-size=14336 ./node_modules/webpack/bin/webpack --config webpack.aot.config.js --progress --profile", + "save-ts-metadata": "node save.ts.metadata.js", + "tsc": "node ./node_modules/typescript/bin/tsc", + "tsc-watch": "node ./node_modules/typescript/bin/tsc --watch", + "ts-watch": "node node_modules/cross-env/dist/bin/cross-env.js TSC_NONPOLLING_WATCHER=true npm run tsc-watch", + "ts": "npm install && npm run tsc", + "compile": "npm run ts-watch", + "install-compile": "npm install && npm run ts-watch" + }, + "dependencies": { + "@angular/animations": "7.2.15", + "@angular/common": "7.2.15", + "@angular/compiler": "7.2.15", + "@angular/core": "7.2.15", + "@angular/forms": "7.2.15", + "@angular/http": "7.2.15", + "@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", + "ag-grid-angular": "29.0.0-micord.4", + "ag-grid-community": "29.0.0-micord.4", + "angular-calendar": "0.28.28", + "autonumeric": "4.5.10-cg", + "bootstrap": "4.3.1", + "bootstrap-icons": "1.10.3", + "cadesplugin_api": "2.0.4-micord.1", + "chart.js": "3.8.0-cg.1", + "chartjs-adapter-moment": "1.0.0", + "core-js": "2.4.1", + "date-fns": "2.29.3", + "downloadjs": "1.4.8", + "eonasdan-bootstrap-datetimepicker": "4.17.47-micord.4", + "esmarttokenjs": "2.2.1-cg", + "font-awesome": "4.7.0", + "google-libphonenumber": "3.0.9", + "inputmask": "5.0.5-cg.2", + "jquery": "3.3.1", + "js-year-calendar": "1.0.0-cg.2", + "jsgantt-improved": "2.0.10-cg", + "moment": "2.17.1", + "moment-timezone": "0.5.11", + "ngx-cookie": "3.0.1", + "ngx-international-phone-number": "1.0.6", + "ngx-toastr": "10.2.0-cg", + "popper.js": "1.14.7", + "reflect-metadata": "0.1.13", + "rxjs": "6.4.0", + "rxjs-compat": "6.4.0", + "selectize": "0.12.4-cg.10", + "systemjs": "0.21.4", + "systemjs-plugin-babel": "0.0.25", + "tslib": "1.9.3", + "zone.js": "0.8.29" + }, + "devDependencies": { + "@angular-devkit/build-optimizer": "0.13.9", + "@angular-devkit/core": "7.3.9", + "@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", + "@types/bootstrap": "3.3.39", + "@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", + "codelyzer": "5.2.1", + "copy-webpack-plugin": "5.0.3", + "cross-env": "5.2.1", + "css-loader": "2.1.0", + "del": "2.2.2", + "file-loader": "3.0.1", + "html-webpack-plugin": "4.5.2", + "lite-server": "2.3.0", + "mini-css-extract-plugin": "0.6.0", + "mkdirp": "0.5.1", + "raw-loader": "1.0.0", + "style-loader": "0.23.1", + "terser-webpack-plugin": "1.2.4", + "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" + } +} diff --git a/frontend/pom.xml b/frontend/pom.xml new file mode 100644 index 0000000..e805c67 --- /dev/null +++ b/frontend/pom.xml @@ -0,0 +1,113 @@ + + + 4.0.0 + + ru.micord.ervu + dashboard + 1.0.0-SNAPSHOT + + + ru.micord.ervu.dashboard + frontend + war + + + + + com.google.code.maven-replacer-plugin + replacer + 1.5.3 + + + replace-version-in-url + process-resources + + replace + + + + + + ${basedir}/src/resources/app-config.json + ${basedir}/dist/src/resources/app-config.json + ${basedir}/src/resources/app.version + ${basedir}/dist/src/resources/app.version + + + + %project.version% + ${project.version} + + + %enable.version.in.url% + ${enable.version.in.url} + + + + + + + + + + dev + + true + + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + ${basedir} + + src/resources/**/* + build_dev/**/* + node_modules/**/* + index.html + systemjs.config.js + + + + + + + + + + compile-ts + + false + + + + prod + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + ${basedir}/dist + + + + + + + + + enable-version-in-url + + true + + + + diff --git a/frontend/preview.html b/frontend/preview.html new file mode 100644 index 0000000..4bd5c4b --- /dev/null +++ b/frontend/preview.html @@ -0,0 +1,24 @@ + + + + Web BPM + + + + + + + + + + + + + +
+ + diff --git a/frontend/save.ts.metadata.js b/frontend/save.ts.metadata.js new file mode 100644 index 0000000..3e193d0 --- /dev/null +++ b/frontend/save.ts.metadata.js @@ -0,0 +1,72 @@ +#!/usr/bin/env node +var tsp = require("typescript-parser"); +var fs = require('fs'); +var path = require('path'); +var ts = require("typescript"); + +var parser = new tsp.TypescriptParser(); +var excludedDirs = [ + 'generated-sources' +]; + +var walkFileTree = function (dir, action) { + if (typeof action !== "function") { + return; + } + + fs.readdirSync(dir).forEach(function (file) { + var path = dir + "/" + file; + var stat = fs.statSync(path); + var extension = ".ts"; + if (stat && stat.isDirectory() && excludedDirs.indexOf(file) === -1) { + walkFileTree(path, action); + } + else if (path.indexOf(extension, path.length - extension.length) !== -1) { + action(null, path); + } + }); +}; + +var dateInLong = Date.now(); +var arr = []; + +var basePath = path.resolve(__dirname, "src/ts/"); +walkFileTree(basePath, function (err, file) { + var content = fs.readFileSync(file).toString(); + var jsonStructure = parser.parseTypescript(ts.createSourceFile( + file, + content, + ts.ScriptTarget.Latest, + true, + ts.ScriptKind.TS + ), + '/'); + jsonStructure['packageName'] = path.relative(path.resolve(__dirname, "src/ts/"),jsonStructure['filePath']); + jsonStructure['imports'].forEach( function (val) { + if (val.libraryName.startsWith(".")) { + val['libraryName'] = path.resolve(path.dirname(jsonStructure['filePath']), val['libraryName']); + val['libraryName'] = path.relative(path.resolve(__dirname, "src/ts/"), val['libraryName']); + val['libraryName'] = path.dirname(val['libraryName']).split(path.sep).join("."); + } + }); + delete jsonStructure['filePath']; + jsonStructure['packageName'] = path.dirname(jsonStructure['packageName']).split(path.sep).join( "."); + arr.push(jsonStructure); +}); +var cache = []; + +fs.writeFileSync("./../.studio/typescript.metadata.json", + JSON.stringify(arr, function (key, value) { + if (typeof value === 'object' && value !== null) { + if (cache.indexOf(value) !== -1) { + // Circular reference found, discard key + return; + } + // Store value in our collection + cache.push(value); + } + return value; + })); + +cache = null; +console.log("typescript parse time = " + (Date.now() - dateInLong)); \ No newline at end of file diff --git a/frontend/src/resources/app-config.json b/frontend/src/resources/app-config.json new file mode 100644 index 0000000..8e55c6d --- /dev/null +++ b/frontend/src/resources/app-config.json @@ -0,0 +1,20 @@ +{ + "electronic_sign.esmart_extension_url": "", + "electronic_sign.tsp_address": "", + "filter_cleanup_interval_hours": 720, + "filter_cleanup_check_period_minutes": 30, + "auth_method": "form", + "enable.version.in.url": "false", + "backend.context": "dashboard", + "guard.confirm_exit": false, + "message_service_error_timeout": "", + "message_service_warning_timeout": "", + "message_service_success_timeout": "", + "message_service_info_timeout": "", + "jivo_chat_widget_api_url": "https://code.jivo.ru/widget/{ID}", + "jivo_chat_widget_enabled": false, + "password_pattern": "^((?=(.*\\d){1,})(?=.*[a-zミー-ム肖曽)(?=.*[A-Zミ-ミッミ‐).{8,})$", + "password_pattern_error": "ミ渙ームミセミサム ミエミセミサミカミオミス ムミセミエミオムミカミームび ミキミーミウミサミーミイミスム巾オ ミクミサミク ミソムミセミソミクムミスム巾オ ミアムσコミイム ミク ミコミーミコ ミシミクミスミクミシムσシ 1 ムミクムムム", + "show.client.errors": false, + "available_task.single_fetch": true +} diff --git a/frontend/src/resources/app.version b/frontend/src/resources/app.version new file mode 100644 index 0000000..5deada8 --- /dev/null +++ b/frontend/src/resources/app.version @@ -0,0 +1 @@ +1.0.0-SNAPSHOT \ No newline at end of file diff --git a/frontend/src/resources/css/components-app.css b/frontend/src/resources/css/components-app.css new file mode 100644 index 0000000..a5815c2 --- /dev/null +++ b/frontend/src/resources/css/components-app.css @@ -0,0 +1,1584 @@ +@charset "utf-8"; + +.webbpm div[id="page"], +.webbpm div[id="page"] > div, +.webbpm div[id="page"] > div > div { + display: flex; + flex-direction: column; + height: 100%; +} + +.webbpm [id="page"] > div > div > [page-object]:first-child { + padding-top: 15px; +} + +.webbpm [id="page"] > div > div > [page-object] { + display: inherit; + margin-bottom: 10px; + padding: 0 40px; +} + +.webbpm #dashboard { + padding: 15px 40px 0 40px; +} + +.webbpm .title { + font-size: 24px; + font-family: 'SegoeSB'; + padding: 10px 0 0 0; +} + +.webbpm .sub-header { + color: var(--white); + font-weight: normal; + padding: 0 20px; + margin-top: 10px; + border-radius: 20px; + background: var(--bg-secondary); + + & > .form-group { + padding: 10px 0; + margin-bottom: 0; + } + + & > div > div:last-of-type { + font-size: 18px; + padding: 0; + } +} + +.webbpm .form-signup input.ng-invalid.ng-touched, +.webbpm .form-signup input.ng-invalid.ng-touched ~ .input-group-append > .input-group-text, +.webbpm .form-signup input.ng-invalid.ng-dirty, +.webbpm .form-signup input.ng-invalid.ng-dirty ~ .input-group-append > .input-group-text { + border-color: var(--color-link) !important; +} + +.webbpm .form-signup .msg-alert { + color: var(--color-link); +} + +.webbpm input[type="text"], +.webbpm input[type="date"], +.webbpm input[type="email"], +.webbpm input[type="password"], +.webbpm input[type="number"], +.webbpm input.form-control, +.webbpm textarea, +.webbpm select, +.webbpm .selectize-control.single .selectize-input, +.webbpm .multi.plugin-remove_button .selectize-input { + color: var(--color-text-primary); + font-size: var(--size-text-primary); + min-height: 38px; + padding: 6px 8px; + border: 1px solid var(--border-light); + border-radius: 8px; + background-color: var(--white); + background-image: none; + box-shadow: none; +} + +.webbpm .wb-touched.wb-invalid .form-control, +.webbpm .wb-touched.wb-invalid .form-control:focus, +.webbpm .wb-touched.wb-invalid input.form-control, +.webbpm .wb-touched.wb-invalid input.form-control:focus, +.webbpm .wb-touched.wb-invalid .input-group-addon, +.webbpm .wb-touched.wb-invalid .input-group-addon:focus, +.webbpm .wb-touched.wb-invalid .selectize-input, +.webbpm .wb-touched.wb-invalid .selectize-input:focus { + border-color: var(--color-link) !important; + box-shadow: none !important; +} + +.webbpm select option:checked { + color: var(--color-link); +} + +.webbpm .input-group input[name="password"], +.webbpm .input-group input[name="confirmPassword"], +.webbpm .date input[type="text"] { + border-right: 0 ; + border-top-right-radius: 0; + border-bottom-right-radius: 0 ; +} + +.webbpm .input-group input[name="password"] ~ .input-group-append > .input-group-text, +.webbpm .input-group input[name="confirmPassword"] ~ .input-group-append > .input-group-text, +.webbpm .date input ~ .input-group-addon { + color: var(--color-text-primary); + border-color: var(--border-light); + border-radius: 8px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + background-color: transparent; +} + +.webbpm .input-group input[name="password"] ~ .input-group-append > .input-group-text, +.webbpm .input-group input[name="confirmPassword"] ~ .input-group-append > .input-group-text, +.webbpm .date input ~ .input-group-addon { + color: var(--color-text-primary); + border-color: var(--border-light); + border-radius: 8px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + background-color: transparent; +} + +.webbpm international-phone-number .input-group-addon.flagInput { + border: 0; + background-color: transparent; + + .btn { + border: 1px solid var(--border-light); + border-right: 0; + border-radius: 10px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + & ~ input { + border-right: 1px solid var(--border-light); + border-radius: 10px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } +} + +.webbpm .selectize-dropdown { + box-shadow: none; +} + +.webbpm .selectize-dropdown-content { + border: 1px solid var(--border-light); + border-radius: 10px; + background-color: var(--white); + box-shadow: 0 8px 12px rgb(77 72 91 / 5%), 0 6px 10px rgb(77 72 91 / 0%); +} + +.webbpm .selectize-dropdown .active { + color: var(--color-link); + background-color: transparent; +} + +.webbpm .form-group > label, +.webbpm .form-group > div { + display: inline-block; + vertical-align: top; +} +.webbpm .width-full .form-group > label, +.webbpm .width-full .form-group > div { + display: table-cell; +} + +.webbpm .form-control { + background-color: inherit; +} + +.webbpm .form-control[disabled], +.webbpm .form-control[readonly], +.webbpm .date .form-control[disabled] ~ .input-group-addon, +.webbpm .date .form-control[readonly] ~ .input-group-addon, +.webbpm fieldset[disabled] .form-control, +.webbpm .selectize-control .selectize-input.disabled { + background-color: var(--bg-light); +} + +.webbpm .selectize-control.form-control { + min-height: 38px; +} + +.webbpm .selectize-control.single .selectize-input > .item { + line-height: normal; +} + +.webbpm .selectize-control.single .selectize-input input { + line-height: normal !important; + border-radius: 0; +} + +.webbpm drop-down-button .dropdown-menu.show { + border: 1px solid var(--border-light); + border-radius: 10px; + background-color: var(--white); + box-shadow: 0 8px 12px rgb(77 72 91 / 5%), 0 6px 10px rgb(77 72 91 / 0%); +} + +.webbpm drop-down-button .dropdown-menu.show .btn { + padding-top: 4px; + padding-bottom: 4px; + border: 0; + box-shadow: none; +} + +.webbpm .selectize-dropdown-content { + font-size: var(--size-text-primary); +} + +.webbpm .selectize-dropdown .more_values { + color: var(--color-text-primary); + background-color: #f0f7fd; +} + +/*----------------- Button ---------------- */ +.webbpm .btn { + font-size: var(--size-text-primary); + font-family: 'SegoeSB'; + padding: 6px 14px; + margin-bottom: 0; + border-radius: 20px; +} + +.webbpm .btn:focus, +.webbpm .btn:active:focus { + box-shadow: none !important; +} + +.webbpm .btn-main { + border-color: transparent !important; + background: transparent !important; +} + +.webbpm .btn-main > * > .btn, +.webbpm .btn-primary { + color: var(--white) !important; + border-color: var(--color-link); + background: var(--color-link); + box-shadow: 0px 0px 6px 2px rgb(77 72 91 / 6%); +} +.webbpm .btn-main > * > .btn:not(:disabled):not(.disabled):hover, +.webbpm .btn-main > * > .btn:not(:disabled):not(.disabled):active, +.webbpm .btn-primary:hover, +.webbpm .btn-primary:active { + border-color: #1b84d2; + background: #1b84d2; +} +.webbpm .btn-main > * > .btn:not(:disabled):not(.disabled):focus, +.webbpm .btn-primary:focus { + border-color: #1b84d2; + background: #1b84d2; + box-shadow: none; +} + +.webbpm .btn-secondary, +.webbpm .btn-default { + color: var(--color-text-primary); + border: 1px solid var(--border-light); + background: var(--white); + box-shadow: 0px 0px 6px 2px rgb(77 72 91 / 6%); +} +.webbpm .btn-secondary:not(:disabled):not(.disabled):hover, +.webbpm .btn-secondary:not(:disabled):not(.disabled):active, +.webbpm .btn-default:not(:disabled):not(.disabled):hover, +.webbpm .btn-default:not(:disabled):not(.disabled):active { + color: var(--color-link); + border-color: var(--border-light); + background-color: var(--white); +} +.webbpm .btn-secondary:not(:disabled):not(.disabled):focus, +.webbpm .btn-default:not(:disabled):not(.disabled):focus { + border-color: var(--border-light); + background-color: var(--white); + box-shadow: none; +} + +.webbpm .btn.disabled, +.webbpm .btn:disabled { + color: #666; + border-color: #f3f3f3; + background-color: #f3f3f3; + box-shadow: none; +} + +.webbpm .btn.btn-primary.disabled, +.webbpm .btn.btn-primary:disabled, +.webbpm .btn-main .btn.disabled, +.webbpm .btn-main .btn:disabled { + color: rgba(255, 255, 255, 0.8) !important; + border-color: var(--color-link); + background-color: var(--color-link); + box-shadow: none; +} + +.webbpm ag-grid-angular .state-btn-edit, +.webbpm ag-grid-angular .state-btn-delete { + color: var(--color-link) !important; + border: 0; + background: transparent; + box-shadow: none; +} + +.webbpm button.close { + outline: none; +} +/*---------------- end - Button -------------- */ + +/*----------------- Bread-crumb -------------- */ +.webbpm bread-crumb { + display: flex; + flex-direction: column; + max-width: 800px; + margin-top: 20px; + + .status_bar { + position: relative; + display: flex; + flex-direction: row; + justify-content: stretch; + + .crumb-element { + color: var(--white); + font-size: var(--size-text-secondary); + padding: 4px 15px; + background-color: var(--bg-secondary); + border-radius: 20px; + z-index: 1; + } + + & > div + div { + position: relative; + display: flex; + justify-content: end; + flex: 1; + + &::before { + content: ""; + position: absolute; + left: 0; + right: 0; + top: 50%; + height: 2px; + background-color: var(--bg-secondary); + } + } + + & > div.active ~ div::before { + background-color: var(--border-light); + } + + & > div.active .crumb-element { + background-color: var(--color-link); + } + + & > div.active ~ div .crumb-element { + color: #989fa8; + background-color: var(--border-light); + } + } +} +/*--------------- end Bread-crumb ------------ */ + +.webbpm grid-v2-with-project-defined-sidebar, +.webbpm in-memory-route-param-filter-grid { + display: flex; + flex-direction: column; + flex: 1 1 auto; +} + +.webbpm .container-inside > div > div > grid, +.webbpm .container-inside > div > div > grid-v2-with-project-defined-sidebar{ + height: auto !important; + flex: 1 1 auto; + overflow: hidden; +} + +.webbpm ag-grid-angular .ag-body-viewport, +.webbpm ag-grid-angular .ag-row-odd, +.webbpm ag-grid-angular .ag-row-even { + background-color: transparent; +} + +.webbpm ag-grid-angular .ag-side-bar { + border: 0; + background-color: transparent; +} + +.webbpm ag-grid-angular .ag-header-cell { + line-height: 40px; + padding: 0 10px; + border: 0; +} +.webbpm ag-grid-angular .ag-header-cell::after, +.webbpm ag-grid-angular .ag-header-group-cell::after { + border-color: transparent; +} + +.webbpm ag-grid-angular { + font-family: 'Segoe'; + font-weight: normal; +} + +.webbpm ag-grid-angular .ag-header { + border: 0; + border-radius: 12px; + background: var(--bg-light); +} + +.webbpm ag-grid-angular .ag-header-row { + color: var(--color-text-primary); + font-family: 'SegoeSB'; + font-size: var(--size-text-secondary); + font-weight: normal; +} + +.webbpm ag-grid-angular .grid-filter-hide .ag-floating-filter-body, +.webbpm ag-grid-angular .grid-filter-hide .ag-floating-filter-button { + display: none; +} + +.webbpm ag-grid-angular .ag-header-group-cell { + font-family: 'SegoeB'; + font-size: var(--size-text-primary); +} + +.webbpm ag-grid-angular .ag-header-cell>.ag-cell-label-container>.ag-header-cell-label>.ag-header-cell-text { + white-space: nowrap; +} + +.webbpm ag-grid-angular .ag-header .ag-floating-filter-body input { + font-family: 'Segoe'; + font-size: var(--size-text-secondary); + min-height: 20px; + padding: 2px; + border: 1px solid var(--border-light); + border-radius: 4px; + background: transparent; +} + +.webbpm ag-grid-angular :is(.ag-root, .ag-header-row) { + border: 0; +} + +.webbpm ag-grid-angular .ag-root { + position: static; +} + +.webbpm ag-grid-angular .ag-row { + border-color: var(--border-light); +} +.webbpm ag-grid-angular .ag-row::before { + display: none; +} + +.webbpm ag-grid-angular .ag-row:not(.ag-row-first) { + border-width: 1px 0 0; + border-style: solid; +} +.webbpm ag-grid-angular .ag-row-last:not(.ag-row-first) { + border-width: 1px 0; +} + +.webbpm ag-grid-angular :is(.ag-row.ag-row-odd, .ag-row.ag-row-selected) { + background-color: inherit !important; +} + +.webbpm ag-grid-angular .ag-row.ag-row-selected .ag-cell { + color: var(--color-link); +} + +.webbpm ag-grid-angular .ag-body-viewport .ag-row.ag-row-hover { + border-radius: 10px; +} +.webbpm ag-grid-angular .ag-body-viewport .ag-row.ag-row-hover, +.webbpm ag-grid-angular .ag-body-viewport .ag-row.ag-row-hover .ag-cell { + background-color: #f9f9f9 !important; +} + +.webbpm ag-grid-angular .ag-body-viewport .ag-row.ag-row-hover:not(.ag-full-width-row)::before, +.webbpm ag-grid-angular .ag-body-viewport .ag-row.ag-row-hover.ag-full-width-row.ag-row-group::before { + background-color: transparent; +} + +.webbpm ag-grid-angular .ag-row.ag-row-hover, +.webbpm ag-grid-angular .ag-row.ag-row-hover + .ag-row { + border-color: transparent; +} + +.webbpm ag-grid-angular .ag-row .ag-cell { + display: inline-flex; + color: var(--color-text-primary); + font-size: var(--size-text-primary); + padding: 0 10px; + border: 1px solid transparent; +} + +.webbpm ag-grid-angular .ag-row .ag-cell.webbpm-checkbox-grid-column { + justify-content: center; +} + +.webbpm ag-grid-angular .ag-row .ag-cell .ag-cell-wrapper { + flex: 1 1 auto; + overflow: hidden; +} + +.webbpm ag-grid-angular .ag-row .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) { + border-right: 0; +} + +.webbpm ag-grid-angular .ag-pinned-left-floating-bottom:not(.ag-hidden) .ag-row, +.webbpm ag-grid-angular .ag-pinned-left-floating-bottom:not(.ag-hidden) ~ .ag-floating-bottom-viewport { + border: 0; + border-radius: 12px; + background: #f0f7fd; + overflow-y: auto !important; +} + +.webbpm ag-grid-angular .ag-pinned-left-floating-bottom:not(.ag-hidden) .ag-row { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.webbpm ag-grid-angular .ag-pinned-left-floating-bottom:not(.ag-hidden) ~ .ag-floating-bottom-viewport { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.webbpm ag-grid-angular .ag-floating-bottom-container .ag-row { + border: 0; + border-radius: 12px; + background: #f0f7fd; + overflow-y: auto !important; +} + +.webbpm ag-grid-angular .ag-cell.ag-cell-focus.ag-cell-inline-editing { + height: 100%; +} + +.webbpm ag-grid-angular .ag-cell.ag-cell-focus.ag-cell-inline-editing input { + font-size: var(--size-text-primary); + padding: 0; + border: 0; + background: transparent; + box-shadow: none; +} + +.webbpm ag-grid-angular .ag-paging-panel { + color: var(--color-text-primary); + font-size: var(--size-text-secondary); + border: 0; + border-radius: 12px; + background: var(--bg-light); + + .ag-paging-button { + display: flex; + width: 32px; + height: 32px; + border: 1px solid var(--border-light); + border-radius: 16px; + box-shadow: 0px 0px 6px 2px rgb(77 72 91 / 6%); + + &:not(:disabled) { + opacity: 1; + } + + & > span { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + } + + & + .ag-paging-button { + margin-left: 8px; + } + + &[ref="btPrevious"] { + margin-right: 16px; + } + &[ref="btNext"]{ + margin-left: 16px; + } + } +} + +.webbpm ag-grid-angular .ag-floating-bottom { + border-top: 0; + overflow-y: auto !important; +} + +.webbpm ag-grid-angular .ag-floating-bottom-container .ag-cell { + display: flex; + align-items: center; +} + +.webbpm ag-grid-angular .ag-floating-bottom-container input { + color: var(--color-text-primary); + font-family: 'SegoeSB'; + font-size: var(--size-text-primary); + height: 20px; + padding: 0; + border: 0; + background: transparent; + box-shadow: none; +} + +.webbpm ag-grid-angular .ag-header-cell-menu-button .ag-icon-menu { + height: 25px; +} + +.webbpm .grid-setting-icon { + width: 16px; + height: 25px; + right: 12px; + padding: 0; + background-position: center; +} + +.webbpm .grid-mtm { + width: 46%; + & + .many-to-many-move-buttons { + width: 8%; + & button.btn { + width: 100%; + } + } +} + +.webbpm ag-grid-angular .ag-overlay-loading-center { + border: 1px solid var(--border-light); + box-shadow: 0px 0px 6px 2px rgb(77 72 91 / 6%); +} + +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) > .ag-row.ag-row-selected, +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) > .ag-row.ag-row-hover { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) + .ag-center-cols-clipper > div > div > .ag-row.ag-row-selected, +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) + .ag-center-cols-clipper > div > div > .ag-row.ag-row-hover { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) > .ag-row.ag-row-first, +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) + .ag-center-cols-clipper > div > div > .ag-row.ag-row-first { + border-width: 1px 0 0 0; +} + + +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) > .ag-row:not(.ag-row-first), +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) + .ag-center-cols-clipper > div > div > .ag-row:not(.ag-row-first) { + border-width: 1px 0 0 0; +} + +.webbpm editable-grid ag-grid-angular .ag-floating-bottom .ag-row, +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) > .ag-row-hover, +.webbpm editable-grid ag-grid-angular .ag-pinned-left-cols-container:not(.ag-hidden) + .ag-center-cols-clipper > div > div > .ag-row-hover { + border-color: transparent; +} + +.webbpm editable-grid ag-grid-angular .ag-floating-bottom { + margin-top: 2px; + border: 0; + border-radius: 10px; + background-color: #f0f7fd; +} + +.webbpm editable-grid ag-grid-angular .ag-cell-wrapper { + height: 100%; +} + +.webbpm editable-grid ag-grid-angular .ag-row.ag-row-first { + border-style: solid; + border-width: 0; + border-color: transparent; +} + +.webbpm editable-grid ag-grid-angular .ag-cell input { + padding: 0; + border-color: transparent !important; + background-color: transparent; + box-shadow: none; +} +.webbpm editable-grid ag-grid-angular .ag-cell input:focus { + border-color: transparent !important; + box-shadow: none !important; +} +.webbpm editable-grid ag-grid-angular .ag-cell.ag-cell-value.wb-invalid { + border-color: transparent; +} + +.webbpm editable-grid ag-grid-angular .ag-cell-inline-editing { + background-color: transparent; +} + +.webbpm editable-grid ag-grid-angular check-box-grid-editor .form-group { + margin-bottom: 0; +} + +.webbpm editable-grid ag-grid-angular check-box-grid-editor .form-group > label { + display: flex; + align-items: center; + padding-top: 0; +} + +.webbpm editable-grid ag-grid-angular .ag-body-viewport .ag-row .ag-cell.ag-cell-inline-editing { + border: 0 !important; + background-color: #f0f7fd !important; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor { + padding: 0 !important; + border: 0 !important; + border-radius: 0 !important; + background-color: transparent; + box-shadow: none !important; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor .form-group, +.webbpm editable-grid ag-grid-angular number-field-grid-editor .form-group, +.webbpm editable-grid ag-grid-angular text-field-grid-editor .form-group { + margin-bottom: 0; +} + +.webbpm editable-grid ag-grid-angular text-area-grid-editor .form-control { + font-size: var(--size-text-primary); + min-height: 100px; + border: 0; + background-color: #f0f7fd; +} +.webbpm editable-grid ag-grid-angular text-area-grid-editor .form-control:focus { + box-shadow: none; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-many-grid-editor > div, +.webbpm editable-grid ag-grid-angular .ag-popup-editor auto-complete-grid-editor > div, +.webbpm editable-grid ag-grid-angular .ag-popup-editor combo-box-grid-editor > div, +.webbpm editable-grid ag-grid-angular .ag-popup-editor static-combo-box-grid-editor > div { + align-items: center; + margin-top: -1px; +} + +.webbpm editable-grid ag-grid-angular .ag-header .alarm, +.webbpm editable-grid ag-grid-angular .ag-overlay-loading-center, +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor label, +.webbpm editable-grid ag-grid-angular number-field-grid-editor label { + display: none; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor { + flex: 1; + height: 100%; + padding: 0; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor .form-group { + display: flex; + height: 100%; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor .component-float { + flex: 1; + width: auto; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor .selectize-control, +.webbpm editable-grid ag-grid-angular .ag-popup-editor auto-complete-grid-editor .selectize-control, +.webbpm editable-grid ag-grid-angular .ag-popup-editor combo-box-grid-editor .selectize-control, +.webbpm editable-grid ag-grid-angular .ag-popup-editor static-combo-box-grid-editor .selectize-control, +.webbpm editable-grid ag-grid-angular .ag-popup-editor .date > div, +.webbpm editable-grid ag-grid-angular .ag-popup-editor .date .input-group { + height: 100%; + min-height: auto; + width: 100%; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor .selectize-control.single .selectize-input, +.webbpm editable-grid ag-grid-angular .ag-popup-editor auto-complete-grid-editor .selectize-control.single .selectize-input, +.webbpm editable-grid ag-grid-angular .ag-popup-editor combo-box-grid-editor .selectize-control.single .selectize-input, +.webbpm editable-grid ag-grid-angular .ag-popup-editor static-combo-box-grid-editor .selectize-control.single .selectize-input, +.webbpm editable-grid ag-grid-angular .ag-popup-editor .date input, +.webbpm editable-grid ag-grid-angular .ag-popup-editor .date .input-group-addon { + display: inline-flex; + align-items: center; + height: 100%; + min-height: auto; + padding: 0 10px 1px 11px; + border: 0; + border-radius: 0; + background: #f0f7fd; + box-shadow: none; +} +.webbpm editable-grid ag-grid-angular .ag-popup-editor .date input { + padding-right: 0; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor .selectize-control.single .selectize-input.dropdown-active { + padding-right: 3px; +} +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor .selectize-control.single .selectize-input.dropdown-active::before, +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor .selectize-control.single .selectize-input::after { + display: none; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor input { + padding-left: 5px !important; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor + button-component { + height: 100%; + background: #f0f7fd; +} + +.webbpm editable-grid ag-grid-angular .ag-popup-editor one-to-may-auto-complete-grid-editor + button-component .btn { + color: var(--color-text-primary) !important; + white-space: nowrap; + padding: 0; + background-color: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +/*---------------- Table Header Menu --------------- */ +.webbpm ag-grid-angular .ag-menu { + padding: 6px; + border: 1px solid #f5f5f5; + border-radius: 12px; + background-color: var(--white); + box-shadow: 0px 100px 80px rgb(0 0 0 / 7%), 0px 40px 30px rgb(0 0 0 / 5%), 0px 22px 18px rgb(0 0 0 / 4%), 0px 12.5px 10px rgb(0 0 0 / 4%), 0px 6.5px 5px rgb(0 0 0 / 3%), 0px 2.5px 2px rgb(0 0 0 / 2%); +} + +.webbpm ag-grid-angular .ag-tab-header { + border: 0; + background-color: var(--white); +} + +.webbpm ag-grid-angular .ag-tab-header .ag-tab { + margin: 0 6px 6px 0; +} + +.webbpm ag-grid-angular .ag-tab-header .ag-tab.ag-tab-selected { + border-color: transparent; + border-radius: 6px; + background-color: #f2f2f2; +} + +.webbpm ag-grid-angular .ag-pinned-left-header { + border-right: 0; +} + +.webbpm ag-grid-angular .ag-header-checkbox-container .ag-icon-checkbox-checked, +.webbpm ag-grid-angular .ag-header-checkbox-container .ag-icon-checkbox-unchecked { + margin-top: 5px; +} + +.webbpm ag-grid-angular .ag-tab-body { + color: var(--color-text-primary); + font-size: var(--size-text-secondary); + padding: 0; +} + +.webbpm ag-grid-angular .ag-menu > .ag-menu-list { + margin: 0px; +} + +.webbpm ag-grid-angular .ag-menu .ag-menu-option { + color: var(--color-text-primary); + font-size: var(--size-text-secondary); +} + +.webbpm ag-grid-angular .ag-menu .ag-menu-option-active { + background-color: #f5f5f5; +} +.webbpm ag-grid-angular .ag-menu .ag-menu-option-active > *:first-child { + border-top-left-radius: 8px; + border-bottom-left-radius: 8px; +} +.webbpm ag-grid-angular .ag-menu .ag-menu-option-active > *:last-child { + border-top-right-radius: 8px; + border-bottom-right-radius: 8px; +} + +.webbpm ag-grid-angular .ag-menu .ag-menu-separator > span { + height: 9px; + background-image: url("data:image/svg+xml;utf8,"); +} + +/*---------------- Side-bar --------------- */ +.webbpm ag-grid-angular .ag-status-bar, +.webbpm ag-grid-angular .ag-side-bar, +.webbpm ag-grid-angular .ag-side-bar .ag-side-buttons, +.webbpm ag-grid-angular .ag-tool-panel-wrapper .ag-column-select-panel { + border: 0; +} +.webbpm ag-grid-angular .ag-side-bar { + background: transparent; +} + +.webbpm ag-grid-angular .ag-side-bar .ag-tool-panel-wrapper { + width: 300px; + border: 1px solid #efefef; + border-radius: 12px 0 0 12px; + background: var(--white); + box-shadow: -2px 0px 12px -6px rgb(0 0 0 / 20%); +} + +.webbpm ag-grid-angular .ag-side-bar .ag-tool-panel-wrapper, +.webbpm ag-grid-angular .ag-side-bar .ag-tool-panel-wrapper .ag-filter-toolpanel-header { + color: var(--color-text-primary); + font-size: var(--size-text-primary); + font-weight: normal; + background: transparent; +} + +.webbpm ag-grid-angular .ag-side-bar .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-air { + padding: 0; + border: 0; +} + +.webbpm ag-grid-angular .ag-side-bar .ag-side-buttons { + width: 30px; + padding-top: 0; +} + +.webbpm ag-grid-angular .ag-side-bar .ag-side-buttons .ag-side-button { + padding-left: 4px; + +} + +.webbpm ag-grid-angular .ag-side-bar .ag-side-buttons .ag-side-button button { + color: var(--color-text-primary); + font-family: 'Segoe'; + font-size: var(--size-text-secondary); + border: 0; + border-radius: 10px; +} +.webbpm ag-grid-angular .ag-side-bar .ag-side-buttons .ag-side-button button:hover { + color: #eb5757; +} + +.webbpm ag-grid-angular .ag-side-bar .ag-side-buttons .ag-side-button.ag-selected button { + color: #eb5757; + background: #f2f2f2; +} + +.webbpm ag-grid-angular .ag-primary-cols-header-panel, +.webbpm ag-grid-angular .ag-filter-toolpanel-search { + align-items: center; + height: 50px; + padding-top: 0; + border-bottom: 1px solid #efefef; +} + +.webbpm ag-grid-angular .ag-tool-panel-wrapper .ag-column-panel-column-select { + border: 0; +} + +.webbpm ag-grid-angular .ag-tool-panel-wrapper .ag-column-select-panel .ag-column-tool-panel-column-group, +.webbpm ag-grid-angular .ag-tool-panel-wrapper .ag-column-select-panel .ag-column-tool-panel-column { + height: 30px; + line-height: 30px; + margin-left: 6px; + margin-right: 6px; + border-radius: 8px; +} +.webbpm ag-grid-angular .ag-tool-panel-wrapper .ag-column-select-panel .ag-column-tool-panel-column-group:hover, +.webbpm ag-grid-angular .ag-tool-panel-wrapper .ag-column-select-panel .ag-column-tool-panel-column:hover { + background: #f5f5f5; + cursor: pointer; +} + +.webbpm ag-grid-angular .ag-tool-panel-wrapper .ag-column-select-panel .ag-column-tool-panel-column-group { + font-family: 'SegoeSB'; +} + +.webbpm ag-grid-angular .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent { + padding-left: 44px; +} + +.webbpm ag-grid-angular .ag-icon-settings { + height: 10px; + width: 10px; + background: url('../img/icons/settings-sm.svg') center no-repeat; + opacity: 0.7; +} + +.webbpm ag-grid-angular .ag-side-bar .card { + border: 0; +} + +.webbpm ag-grid-angular .ag-side-bar .card-header { + text-align: left; + padding: 6px; + border: 0; + background: transparent; +} + +.webbpm ag-grid-angular .ag-side-bar .card-header i { + float: none; + font-size: var(--size-text-secondary); + text-align: center; + width: 16px; + margin: 0; +} +.webbpm ag-grid-angular .ag-side-bar .card-header i.fa-chevron-right::before { + content: "\f105"; +} +.webbpm ag-grid-angular .ag-side-bar .card-header i.fa-chevron-down::before { + content: "\f107"; +} + +.webbpm ag-grid-angular .ag-side-bar .card-block, +.webbpm ag-grid-angular.ag-side-bar .ag-filter-toolpanel-body { + margin: 0px 6px; +} + +.webbpm ag-grid-angular .ag-side-bar .card-block button { + color: var(--color-text-primary); + min-height: 35px; + margin-bottom: 6px; + border: 1px solid var(--border-light); + border-radius: 8px; + background: var(--white); + box-shadow: 0px 2px 3px -2px rgb(0 0 0 / 20%); +} + +.webbpm ag-grid-angular .ag-side-bar .ag-filter-body-wrapper > *, +.webbpm ag-grid-angular .ag-filter .ag-filter-body-wrapper > * { + margin-bottom: 6px; +} + +.webbpm ag-grid-angular .ag-side-bar .ag-filter-toolpanel .ag-group, +.webbpm ag-grid-angular .ag-side-bar .ag-filter-toolpanel .ag-group .ag-filter-toolpanel-instance-filter { + margin: 0; + border: 0; +} + +.webbpm ag-grid-angular .ag-column-drop-horizontal.ag-column-drop { + padding: 0; + border: 0; + background-color: transparent; +} + +.webbpm ag-grid-angular .ag-column-drop-horizontal.ag-column-drop > div:not(.ag-column-drop-list) { + display: none; +} + +.webbpm ag-grid-angular .ag-popup .ag-select-list-item { + font-size: var(--size-text-primary); + background: transparent; +} +.webbpm ag-grid-angular .ag-popup .ag-select-list-item.ag-active-item { + color: var(--color-link); +} + +.webbpm ag-grid-angular .ag-popup .ag-popup-child:not(.ag-tooltip-custom) { + padding: 6px 4px; + border: 0; + border-radius: 10px; + background-color: var(--white); + box-shadow: 0px 0px 6px 2px rgb(77 72 91 / 12%); +} + +.webbpm ag-grid-angular .ag-column-drag { + margin: 0 0 0 6px; + background: url('../img/icons/dots-six-vertical.svg') 0 0 no-repeat; +} + +.webbpm sales-grid .grid { + display: flex; + flex-direction: column; +} + +.webbpm sales-grid .grid > ag-grid-angular { + flex: 1; + overflow: hidden; +} + +.webbpm sales-grid .grid .ag-paging-panel { + display: flex; + flex-direction: row; +} + +.webbpm sales-grid .grid .table-panel-legend { + display: flex; + flex: 1; + justify-content: right; + margin: 0 80px 0 0; +} + +.webbpm sales-grid .grid .table-panel-legend > span { + position: relative; + margin-left: 48px; +} +.webbpm sales-grid .grid .table-panel-legend > span::before { + content: ""; + position: absolute; + width: 16px; + height: 16px; + left: -24px; + top: 0; + border: 1px solid var(--white); + border-radius: 8px; + box-shadow: 0px 1px 2px -1px rgb(0 0 0 / 45%); +} +.webbpm sales-grid .grid .table-panel-legend > .order-reject::before { + background: #feffee; +} +.webbpm sales-grid .grid .table-panel-legend > .order-return::before { + background: #fff1f1; +} +.webbpm sales-grid .grid .table-panel-legend > .order-self-redemption::before { + background: #edfcf8; +} + +.webbpm ag-grid-angular .ag-overlay-loading-center { + color: var(--color-text-primary); + font-size: var(--size-text-secondary); + padding: 20px; + border: 1px solid #f5f5f5; + border-radius: 12px; + background: var(--white); + box-shadow: 0px 100px 80px rgb(0 0 0 / 7%), 0px 40px 30px rgb(0 0 0 / 5%), 0px 22px 18px rgb(0 0 0 / 4%), 0px 12.5px 10px rgb(0 0 0 / 4%), 0px 6.5px 5px rgb(0 0 0 / 3%), 0px 2.5px 2px rgb(0 0 0 / 2%); +} + +.webbpm ag-grid-angular .ag-filter .ag-filter-header-container { + height: 32px; +} + +.webbpm ag-grid-angular .ag-filter .ag-filter-header-container:nth-child(2) { + margin-top: 8px; + border-bottom: 1px solid #e2e2e2; +} + +.webbpm ag-grid-angular .ag-virtual-list-item:hover { + border-radius: 8px; + background: #f5f5f5; +} + +.webbpm ag-grid-angular .ag-virtual-list-item:hover > label { + cursor: pointer; +} + +.webbpm ag-grid-angular .ag-filter label { + font-size: var(--size-text-primary); + width: auto; + margin: 0; +} + +.webbpm ag-grid-angular .ag-filter .ag-filter-checkbox { + margin-right: 6px; +} + +.webbpm .modal-content { + border: 0; + border-radius: 15px; + box-shadow: 0px 0px 30px 2px rgb(77 72 91 / 12%); + background-color: var(--white); +} + +.webbpm .modal-header { + border-bottom: 1px solid var(--border-light); +} + +/*-------------- Containers --------------- */ +.webbpm .block-content { + margin: 0; + border: 0; +} + +.webbpm .block-content, +.webbpm .block-content > div { + display: flex; + flex-direction: column; + height: 100%; +} + +.webbpm .nav-tabs { + width: max-content; + margin-bottom: 30px; + border: 0; + border-radius: 20px; + background-color: var(--border-light); +} + +.webbpm .nav-tabs .nav-item { + margin-bottom: 0; +} + +.webbpm .nav-tabs .nav-link { + color: var(--color-text-primary); + padding: 6px 14px; + border: 0; + background-color: transparent; +} + +.webbpm .nav-tabs .nav-link:hover, +.webbpm .nav-tabs .nav-link:focus, +.webbpm .nav-tabs .nav-link:active { + background-color: transparent; +} + +.webbpm .nav-tabs .active .nav-link { + color: var(--white); + border: 0; + border-radius: 20px; + background-color: var(--color-link); + box-shadow: 0px 0px 6px 2px rgb(77 72 91 / 24%); +} + +.webbpm tab-container .nav-tabs ~ .tab-active > .active { + flex-direction: column; + display: flex; + padding: 0; + border: 0; +} +/*------------- end Containers ------------ */ + +/*----------------- Filters ---------------- */ +.webbpm collapsible-panel:not(.grid-setting-panel):not(.column-states-panel):not(.filter-states-panel) .card, +.webbpm .fieldset { + border: 0; + border-radius: 8px; + background-color: var(--bg-light); +} + +.webbpm collapsible-panel:not(.grid-setting-panel):not(.column-states-panel):not(.filter-states-panel) .card-header, +.webbpm .fieldset > legend { + font-family: 'SegoeSB'; + font-size: 18px; + padding: 15px 20px; + border: 0; + background: transparent; +} + +.webbpm collapsible-panel:not(.grid-setting-panel):not(.column-states-panel):not(.filter-states-panel) .card-header .font-bold { + margin-top: 10px; +} + +.webbpm collapsible-panel:not(.grid-setting-panel):not(.column-states-panel):not(.filter-states-panel) .card-block { + padding: 0 20px 15px 20px; +} + +.webbpm .fieldset > .legend + div { + padding: 55px 20px 15px 20px; +} + +.webbpm collapsible-panel:not(.grid-setting-panel):not(.column-states-panel):not(.filter-states-panel) .card i { + float: none; + font-size: var(--size-text-secondary); + margin-right: 6px; + margin-left: 0; +} +/*-------------- end Filters -------------- */ + +/*-------------- Admin-pages -------------- */ +.webbpm [page-processinstance], +.webbpm #process-instance, +.webbpm #process-instance > vbox, +.webbpm #process-instance > vbox > div { + height: 100%; +} + +.webbpm [page-processinstance] #process-instance tab-container > div, +.webbpm [page-processinstance] #process-instance tab-container .tab-active { + display: flex !important; +} + +.webbpm [id^="user-management-"], +.webbpm #process-instance-list, +.webbpm #process-instance { + padding: 0 40px; +} + +.webbpm [id^="user-management-"] > vbox > div > *:not(.title), +.webbpm #process-instance-list > vbox > div > *:not(.title) { + margin-bottom: 20px; +} + +.webbpm [id^="user-management-"] .card label, +.webbpm #process-instance-list .card label { + display: inline-flex; +} + +.webbpm [id^="user-management-"] .card .width-full>div > label, +.webbpm #process-instance-list .card .width-full>div > label { + display: table-cell; + padding-top: 5px; +} + +.webbpm #user-management-authorities { + margin-top: 40px; +} + +.webbpm #process-instance-list static-column-grid { + margin-top: 20px; +} + +.webbpm #process-instance-list .radio-block .radio-content { + display: flex; + flex-direction: row; + align-items: flex-start; +} + +.webbpm #process-instance-list .radio-block .radio-content label.control-label { + padding-top: 0; +} + +.webbpm #process-instance bpmn-back-button { + margin: 20px 0; +} +/*----------- end Admin-pages ------------- */ + +/*---------------- Calendar --------------- */ +.webbpm .calendar .months-container { + display: flex !important; + flex-wrap: wrap; + width: 100%; +} + +.webbpm .calendar .month-container { + float: none; + height: max-content; + margin-bottom: 20px; +} + +.webbpm .calendar .month .day { + font-size: var(--size-text-secondary); +} + +.webbpm .calendar .month .day.day-start { + color: var(--white); + border-radius: 4px; + background-color: var(--color-link) !important; +} +.webbpm .calendar .month .day.day-start .day-content:hover { + color: var(--white); +} + +.webbpm .calendar .month .day .day-content:hover { + color: var(--color-link); + background-color: transparent; +} + +.webbpm .date .bootstrap-datetimepicker-widget { + color: var(--color-text-primary); + width: min-content; + padding: 10px; + margin: 0; + border: 1px solid var(--border-light); + + border-radius: 10px; + background-color: var(--white); + box-shadow: 0 8px 12px rgb(77 72 91 / 5%), 0 6px 10px rgb(77 72 91 / 0%); +} +.webbpm .date .bootstrap-datetimepicker-widget.dropdown-menu.bottom:before, +.webbpm .date .bootstrap-datetimepicker-widget.dropdown-menu.bottom:after, +.webbpm .date .bootstrap-datetimepicker-widget table td.today:before { + display: none; +} + +.webbpm .date .bootstrap-datetimepicker-widget table thead tr:first-child th:hover { + color: var(--color-link); + background-color: transparent; +} + +.webbpm .bootstrap-datetimepicker-widget table td.day:hover, +.webbpm .bootstrap-datetimepicker-widget table td.hour:hover, +.webbpm .bootstrap-datetimepicker-widget table td.minute:hover, +.webbpm .bootstrap-datetimepicker-widget table td.second:hover { + color: var(--color-link); + background-color: transparent; +} + +.webbpm .date .bootstrap-datetimepicker-widget table td.today, +.webbpm .date .bootstrap-datetimepicker-widget table td.today:hover { + color: var(--white) !important; + background-color: var(--color-link); +} + +.webbpm .date .bootstrap-datetimepicker-widget table td.active { + color: var(--color-text-primary) !important; + text-shadow: none; + background-color: #f9f9f9; +} + +.webbpm .btn-group-viewdate.btn-group .btn { + width: 38px; + height: 38px; + border-radius: 19px; + cursor: pointer; +} + +.webbpm .btn-group-viewperiod.btn-group .btn { + border-radius: 20px; + cursor: pointer; +} + +.webbpm .btn-group-viewperiod.btn-group .btn.active { + color: var(--white) !important; + border-color: var(--color-link) !important; + background: var(--color-link) !important; + box-shadow: 0px 0px 6px 2px rgb(77 72 91 / 6%); +} +.webbpm .btn-group-viewperiod.btn-group .btn.active:hover, +.webbpm .btn-group-viewperiod.btn-group .btn.active:active { + border-color: #1b84d2 !important; + background: #1b84d2 !important; +} +.webbpm .btn-group-viewperiod.btn-group .btn.active:focus { + border-color: #1b84d2 !important; + background: #1b84d2 !important; + box-shadow: none; +} + +.webbpm .btn-group-viewdate.btn-group .btn + .btn, +.webbpm .btn-group-viewperiod.btn-group .btn + .btn { + margin-left: 10px; +} + +.webbpm .cal-week-view .cal-header.cal-weekend span { + color: var(--color-link); + opacity: 0.7; +} + +.webbpm .cal-month-view .cal-day-badge { + height: 20px; + background-color: var(--color-link); +} + +.webbpm .cal-month-view .cal-open-day-events { + color: var(--color-text-primary); + background-color: #e6ebee; + box-shadow: none; +} + +.webbpm .cal-week-view .cal-event { + color: var(--color-link); +} +/*------------- Calendar - end ------------ */ + +/*---------- Block-dialog - end ----------- */ +.webbpm .block-dialog { + position: relative; + max-width: 800px; + padding: 60px 60px 50px 110px !important; + margin: 30px auto; + border: 0; + border-radius: 15px; + background-color: var(--white); + box-shadow: 0px 0px 30px 2px rgb(77 72 91 / 12%); + + &::before { + content: "\f332"; + position: absolute; + color: var(--color-link); + font-family: bootstrap-icons !important; + font-size: 30px; + top: 60px; + left: 60px; + } + + .title, + .title > div > div:last-of-type{ + padding: 0; + } +} +/*---------- Block-dialog - end ----------- */ + +/*------------------ ミ嶢オミイミセミオ ミシミオミスム -------------------*/ +/* +.webbpm .task-container { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: 0 !important; + padding: 0 !important; + overflow: hidden; +} + +.webbpm .task-left-menu { + float: none; + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 240px; + padding: 0; + margin: 0; + background: #eef2f4; + z-index: 1; + overflow: auto; +} + +.webbpm .task-right-content { + float: none; + position: absolute; + top: 0; + bottom: 0; + left: 240px; + right: 0; + padding: 0; + margin: 0; + overflow: auto; +} + +.webbpm .task-left-menu > div { + padding: 15px 10px 15px 15px; +} + +.webbpm .task-left-menu auto-complete .component-float { + width: 100%; +} + +.webbpm .task-right-content > div { + padding: 0 15px 15px; +} + +.webbpm .menu-group-title { + font-weight: normal; +} + +.webbpm .menu-element > li > div:first-child { + font-size: 15px; + width: 100%; +} + +.webbpm .menu-element > li > div:last-child { + padding: 2px 6px; + border-radius: 6px; +} + +.webbpm .menu-group-title + menu { + padding-left: 0; +} + +.webbpm .menu-group .menu-group { + padding-left: 15px; +} +*/ +/*----------------- end - ミ嶢オミイミセミオ ミシミオミスム -----------------*/ + +/*-------------------- ミ頒クミーミウムミーミシミシミー ミ寅ーミスムひー --------------------*/ +.webbpm .gmajorheading { + background-color: #e0e5e9; +} +.webbpm .gminorheading { + background-color: #f1f5f7; +} +.webbpm .gminorheadingwkend { + background-color: #cce9f4; +} +.webbpm .gtaskcellwkend { + background-color: #f9fafb; +} + +.webbpm .gitemhighlight td { + background-color: #bcedfc !important; +} +/*----------------- end - ミ頒クミーミウムミーミシミシミー ミ寅ーミスムひー -----------------*/ + +.webbpm .modal-backdrop.show { + filter: alpha(opacity=25); + opacity: 0.25; + background-color: var(--black); +} + +/*------------------ FilePreview ------------------*/ +.webbpm .files-view { + width: auto; +} +/*--------------- end - FilePreview ---------------*/ diff --git a/frontend/src/resources/css/components-dashboard.css b/frontend/src/resources/css/components-dashboard.css new file mode 100644 index 0000000..0bb3f7a --- /dev/null +++ b/frontend/src/resources/css/components-dashboard.css @@ -0,0 +1,1262 @@ +@charset "utf-8"; + +.webbpm .horizontal-container > * { + 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 .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 { + position: relative; + display: grid; + place-items: center; + width: min(1.8vw, 2.25rem); /*36*/ + height: min(1.8vw, 2.25rem); /*36*/ + padding: 0; + margin: 0 calc(var(--indent-xmini)*(-1)) 0 var(--indent-mini); + 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(.title, .subtitle) { + font-size: var(--size-text-title); + font-family: 'GilroyM'; + line-height: 1.1; + padding: 0; + + .form-group { + margin-bottom: 0; + } +} +.webbpm.ervu_dashboard .title { + font-size: var(--size-text-title); + margin-bottom: var(--indent-medium); +} +.webbpm.ervu_dashboard .subtitle { + font-size: var(--size-text-subtitle); + margin-bottom: var(--indent-base); +} + +.webbpm.ervu_dashboard .mute { + color: var(--color-text-mute); + font-family: 'GilroyM'; +} + +.webbpm.ervu_dashboard .success > div > div:last-of-type { + color: var(--color-success); +} +.webbpm.ervu_dashboard .error > div > div:last-of-type { + color: var(--color-error); +} + +.webbpm.ervu_dashboard .pull-bottom { + display: flex; + align-items: flex-end; +} + +.webbpm.ervu_dashboard .lined { + padding-top: var(--indent-xbase); + margin-top: var(--indent-xbase); + 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 [class*="btn-text-"] .btn { + position: relative; + color: var(--black); + font-family: 'GilroyM'; + font-size: var(--size-text-primary); + padding-left: var(--indent-xbase); + padding-right: var(--indent-xlarge); + margin-bottom: 0; + 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 .btn-text-arrow-r .btn::after { + content: "\f285"; +} +.webbpm.ervu_dashboard .btn-text-close .btn::after { + 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 .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 tab-container { + .nav-tabs { + border: 0; + + .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 .brick-group { + color: var(--color-text-secondary); + line-height: 1; + padding: var(--indent-mini) var(--indent-base); + 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 .vertical-container > .brick-group + .brick-group { + margin-top: var(--indent-mini); +} +.webbpm.ervu_dashboard .horizontal-container > .brick-group + .brick-group { + margin-left: var(--indent-mini); +} + +.webbpm.ervu_dashboard .list-group { + padding: var(--indent-small) var(--indent-base); + 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-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-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 .graph-chart .chart-content { + width: min(10vw, 12.5rem); + height: min(7vw, 9rem); +} +.webbpm.ervu_dashboard :is(.graph-donut, .graph-donut-large) { + display: flex; + justify-content: center; +} +.webbpm.ervu_dashboard .graph-donut .chart-content { + width: min(8vw, 11rem); + height: min(8vw, 11rem); +} +.webbpm.ervu_dashboard .graph-donut-medium .chart-content { + width: min(10vw, 13.5rem); + height: min(10vw, 13.5rem); +} +.webbpm.ervu_dashboard .graph-donut-large .chart-content { + 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-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-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-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 .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 .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 .parent-block { + padding: var(--indent-mini); + border-radius: var(--indent-base); + 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 .bg-diamond { + background-image: url(../img/svg/bg-diamond.svg); + background-position: 100% 0; + background-repeat: no-repeat; +} + +.webbpm.ervu_dashboard .child-block { + padding: var(--indent-medium) var(--indent-large); + border-radius: var(--indent-xbase); + border: 1px solid var(--border-light); + background-color: var(--bg-group); + 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 .pers-block { + .child-block { + padding: var(--indent-large); + + &: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; + + label { + color: var(--color-text-secondary); + width: auto; + } + } + .title ~ .title { + margin-top: var(--indent-huge); + } + } +} + +.webbpm.ervu_dashboard grid-v2 { + flex: 1; + height: auto; +} +.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-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 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 ag-grid-angular .ag-paging-panel { + color: var(--color-text-primary); + font-size: var(--size-text-addprimary); + font-family: 'GilroyM'; + 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 .grid-setting-icon, +.webbpm.ervu_dashboard ag-grid-angular .ag-header-cell.ag-header-active .ag-header-cell-menu-button, +.webbpm.ervu_dashboard ag-grid-angular .ag-header-cell .ag-header-icon .ag-icon, +.webbpm.ervu_dashboard ag-grid-angular .ag-header-row-column-filter :is(.ag-header-cell, .ag-header-group-cell)::after, +.webbpm.ervu_dashboard ag-grid-angular .ag-filter .ag-filter-condition, +.webbpm.ervu_dashboard ag-grid-angular .ag-filter .ag-filter-condition ~ * { + display: none !important; +} + +/* 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 #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 #appeals .parent-block > div { + & > vbox:nth-child(1) { + flex: 2; + } + & > vbox:nth-child(2) { + flex: 3; + } + & > vbox:nth-child(3) { + flex: 2; + } +} + +@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 .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 .arrow-btn .btn { + position: relative; + display: grid; + place-items: center; + width: 2.25rem; /*36*/ + height: 2.25rem; /*36*/ + } + + .webbpm.ervu_dashboard .graph-chart .chart-content { + width: 12.5rem; + height: 9rem; + } + .webbpm.ervu_dashboard .graph-donut .chart-content { + width: 11rem; + height: 11rem; + } + .webbpm.ervu_dashboard .graph-donut-medium .chart-content { + width: 13.5rem; + height: 13.5rem; + } + .webbpm.ervu_dashboard .graph-donut-large .chart-content { + width: 18.5rem; + height: 18.5rem; + } +} + +@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 .child-block { + padding: var(--indent-base) var(--indent-xbase); + } + .webbpm.ervu_dashboard .parent-block > .horizontal-container > .child-block + .child-block { + margin-left: 0; + } + + .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 .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 .graph-donut .chart-content, + .webbpm.ervu_dashboard .graph-donut-medium .chart-content { + width: 10rem; + height: 10rem; + } + .webbpm.ervu_dashboard .graph-donut-large .chart-content { + width: 18rem; + height: 18rem; + } + + .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 .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 .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; + } + } + } + } +} \ No newline at end of file diff --git a/frontend/src/resources/css/inbox-app.css b/frontend/src/resources/css/inbox-app.css new file mode 100644 index 0000000..ea6a419 --- /dev/null +++ b/frontend/src/resources/css/inbox-app.css @@ -0,0 +1,342 @@ +@font-face { + font-family: 'Segoe'; + src: url('../fonts/Segoe.ttf'); +} +@font-face { + font-family: 'SegoeSL'; + src: url('../fonts/SegoeSL.ttf'); +} +@font-face { + font-family: 'SegoeSB'; + src: url('../fonts/SegoeSB.ttf'); +} +@font-face { + font-family: 'SegoeB'; + src: url('../fonts/SegoeB.ttf'); +} +@font-face { + font-family: 'SegoeBL'; + src: url('../fonts/SegoeBL.ttf'); +} + +.webbpm a { + color: var(--color-link); + &:hover, + &:focus, + &:active { + color: var(--color-link-hover); + text-decoration: none; + } +} + +body.webbpm { + display: flex; + flex-direction: column; + color: var(--color-text-primary); + font-family: 'Segoe'; + background-color: var(--white); +} + +.webbpm .container { + padding: 70px 0 0; +} + +body.webbpm [id="page"], +.webbpm .container .container-inside { + font-family: 'Segoe'; + font-size: var(--size-text-primary); +} + +.webbpm .logo { + height: auto; + width: auto; +} + +.webbpm .header-logo { + display: flex; + flex-direction: row; + align-items: center; + margin-left: 40px; + + .logo a { + background: url('../../../src/resources/img/logo-full.png') no-repeat 0 50%; + } +} + +.webbpm .header-menu { + display: flex; + flex-direction: row; + margin-left: auto; + margin-right: 40px; + & > * { + margin-right: 20px; + &:last-child { + margin-right: 0; + } + } + .nav-link { + display: flex; + align-items: center; + justify-content: center; + color: var(--white); + font-size: var(--size-text-primary); + width: 30px; + height: 30px; + padding: 0; + border: 0; + border-radius: 15px; + background-color: var(--color-text-primary); + outline: transparent; + + &::after { + display: none; + } + + &:hover, + &:focus, + &:active { + background-color: var(--color-link); + } + } + .logout .user-info { + display: flex; + flex-direction: column; + color: var(--black); + padding: 4px 20px; + background: transparent; + cursor: default; + + & > * { + display: flex; + padding-bottom: 10px; + margin: 0 0 10px 0; + border-bottom: 1px solid #f1f5f9; + &:last-child { + margin-bottom: 0; + } + } + + .user-fio { + padding-bottom: 0; + margin-bottom: 0; + border-bottom: 0; + } + + .user-department { + color: #a0b1bc; + line-height: 1.2; + } + } +} + +.webbpm .header { + display: flex; + font-family: 'Segoe'; + width: 100%; + height: auto; + min-height: 70px; + border-bottom: 1px solid var(--bg-light); + background: var(--white); + box-shadow: 0px 15px 20px 0px rgb(0 0 0 / 4%); + + & > div > * { + position: relative; + display: flex; + align-items: center; + } + + .dropdown-menu.show { + top: 69px !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 .dropdown-menu-inner:hover { + background-color: transparent; +} + +.webbpm .dropdown-item { + padding: 4px 20px; + &:hover, + &:focus, + &:active { + color: var(--color-link); + background-color: transparent; + outline: transparent; + } +} + +.webbpm footer { + color: var(--color-text-primary); + font-size: var(--size-text-secondary); + left: 0; + right: 0; + padding: 15px 40px; + border-top: 1px solid var(--border-light); + a { + color: var(--color-text-primary); + &:hover { + color: var(--color-link); + } + } +} + +/*-------------- Menu tasks -------------- */ +.webbpm .task-list-tree-panel { + padding: 0 40px; + .task-list-filter { + font-family: 'Segoe'; + box-shadow: none; + + li:first-of-type { + font-family: 'SegoeSB'; + font-weight: normal; + padding-left: 0; + } + + li.ontime label div { + background-color: #31c980; + } + + li.overdue label div { + background-color: var(--color-link); + } + } +} + +.webbpm .task-list-workplace { + padding: 20px 40px 0 40px; +} + +.webbpm .task-tbl :is(.tr.task-ontime, .tr.task-overdue) > .td.task::before { + top: 24px; + background-color: #31c980; +} + +.webbpm .task-tbl .tr.task-overdue > .td.task::before { + background-color: var(--color-link); +} + +.webbpm .task-tbl .thead { + display: table-header-group; + border: 0; + background: transparent; +} + +.webbpm .task-tbl .th { + color: var(--color-text-primary); + font-family: 'SegoeSB'; + font-size: var(--size-text-secondary); + font-weight: normal; + padding: 9px 12px; + border: 0; + background: var(--bg-light); +} +.webbpm .task-tbl .th:first-child { + border-top-left-radius: 12px; + border-bottom-left-radius: 12px; +} +.webbpm .task-tbl .th:last-child { + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; +} + +.webbpm .task-tbl .td { + color: var(--color-text-primary); + font-size: var(--size-text-primary); + padding: 16px 12px; + border: 0; +} + +.webbpm .task-tbl .thead ~ .tr { + border-color: var(--border-light); + border-width: 1px 0 0 0; + border-style: solid; +} +.webbpm .task-tbl .thead + .tr { + border-top-color: transparent; +} + +.webbpm .task-tbl .thead ~ .tr:hover { + border-top-color: transparent; + border-bottom-color: transparent; +} +.webbpm .task-tbl .thead ~ .tr:hover +.tr { + border-top-color: transparent; +} + +.webbpm .task-tbl .thead ~ .tr:hover .td { + background-color: #f9f9f9; +} +.webbpm .task-tbl .thead ~ .tr:hover .td:first-child { + border-top-left-radius: 12px; + border-bottom-left-radius: 12px; +} +.webbpm .task-tbl .thead ~ .tr:hover .td:last-child { + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; +} +/*------------- end Menu tasks ----------- */ + +/*----------------- Login ---------------- */ +.webbpm :is(.form-signin, .form-signup, .confirm) { + color: var(--color-text-primary); + width: 560px; + padding: 60px 80px; + margin: 30px auto; + border: 0; + border-radius: 15px; + box-shadow: 0px 0px 30px 2px rgb(77 72 91 / 12%); + background-color: var(--white); +} + +.webbpm :is(.form-signin, .form-signup) .row.title { + position: relative; + padding: 0; +} + +.webbpm .form-signin h1, +.webbpm .form-signin h2, +.webbpm .form-signup h2, +.webbpm .confirm h2 { + font-family: 'SegoeB'; + font-size: 32px; + text-align: left; + margin-bottom: 20px; +} + +.webbpm :is(.form-signin, .form-signup, .confirm) .logo { + position: absolute; + top: -10px; + right: 0; + width: 145px; + height: 40px; + background: none; +} + +.webbpm .form-signin .row.registration > * + *, +.webbpm .form-signin .login-btn-box .password, +.webbpm .form-signin .login-btn-box .btn + .btn { + margin-left: 20px; +} +/*--------------- end Login -------------- */ \ No newline at end of file diff --git a/frontend/src/resources/css/inbox-dashboard.css b/frontend/src/resources/css/inbox-dashboard.css new file mode 100644 index 0000000..820beb3 --- /dev/null +++ b/frontend/src/resources/css/inbox-dashboard.css @@ -0,0 +1,333 @@ +@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; + --color-text-secondary: #b1daea; + --color-text-mute: #6b7e9b; + --color-primary-5: rgba(244, 252, 255, 0.05); + --color-primary-20: rgba(244, 252, 255, 0.2); + + --color-success: #00db5d; + --color-error: #f91e11; + --color-dark: #070e1a; + --color-dark-20: rgba(7, 14, 26, 0.2); + + --btn-border: #00f0ff; + --btn-bg: linear-gradient(40deg, rgba(8, 131, 198, 1) 0%, rgba(32, 181, 219, 1) 100%); + --btn-shadow: 0 20px 40px -20px rgba(11, 175, 218, 0.4); + + --border-light: rgba(8, 131, 198, 0.6); + --border-dark: rgba(1, 83, 111, 1); + --bg-blur-40: blur(20px); + --bg-blur-20: blur(10px); + --bg-shadow: 4px 4px 2px 0 rgba(3, 20, 36, 0.4); + --bg-block: + linear-gradient(180deg, rgba(8, 131, 198, 0) 0%, rgba(8, 131, 198, 0.07) 33%, rgba(8, 131, 198, 0.2) 100%), + linear-gradient(180deg, rgba(19, 46, 55, 0.16) 0%, rgba(19, 46, 55, 0.32) 100%), + radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 80%); + --bg-group: rgba(8, 131, 198, 0.25); + /*conic-gradient(from 90deg at 100% 0%, rgba(0, 240, 255, 0.6) 0%, rgba(0, 191, 255, 0.24) 34%, rgba(0, 191, 255, 1) 100%),*/ + /* + linear-gradient(180deg, rgba(8, 131, 198, 0) 0%, rgba(8, 131, 198, 0.4) 100%), + linear-gradient(0deg, rgba(19, 46, 55, 0.08) 0%, rgba(19, 46, 55, 0.16) 100%), + linear-gradient(204deg, rgba(0, 191, 255, 0.5) 0%, rgba(0, 191, 255, 0) 50%); + */ + --bg-brick: rgba(9, 91, 120, 0.6); + + --size-text-title: min(1.6vw, 2rem); /*32px*/ + --size-text-subtitle: min(1.2vw, 1.5rem); /*24px*/ + --size-text-addprimary: min(1vw, 1.25rem); /*20px*/ + --size-text-primary: min(0.9vw, 1.125rem); /*18px*/ + --size-text-secondary: min(0.7vw, 0.875rem); /*14px*/ + + --size-num-title: min(3vw, 3.75rem); /*60px*/ + --size-num-subtitle: min(2.4vw, 3rem); /*48px*/ + --size-num-addtitle: min(2vw, 2.5rem); /*40px*/ + --size-num-primary: min(1.6vw, 2rem); /*32px*/ + --size-num-secondary: min(1.2vw, 1.5rem); /*24px*/ + + --indent-huge: min(2.4vw, 3rem); /*48*/ + --indent-xlarge: min(2vw, 2.5rem); /*40*/ + --indent-large: min(1.6vw, 2rem); /*32*/ + --indent-medium: min(1.2vw, 1.5rem); /*24*/ + --indent-xbase: min(1vw, 1.25rem); /*20*/ + --indent-base: min(0.8vw, 1rem); /*16*/ + --indent-small: min(0.6vw, 0.75rem); /*12px*/ + --indent-mini: min(0.4vw, 0.5rem); /*8px*/ + --indent-xmini: min(0.2vw, 0.25rem); /*4px*/ + + --h-header: min(3.9vw, 4.875rem); /*78*/ + --w-screen: min(2vw, 2.5rem); /*40*/ +} + +body.webbpm.ervu_dashboard { + display: flex; + flex-direction: column; + color: var(--color-text-primary); + font-family: 'Gilroy'; + background: var(--color-dark) url('../img/bg_image.png') no-repeat center 0 fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; + + .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 .header-logo { + display: flex; + 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-menu { + display: flex; + 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 { + display: flex; + font-family: 'Gilroy'; + font-size: var(--size-text-primary); + width: 100%; + 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 .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); + width: 560px; + padding: 60px 80px; + margin: 30px auto; + border: 0; + border-radius: 20px; + border: 1px solid var(--color-text-secondary); + background-color: var(--color-dark-20); + box-shadow: var(--bg-shadow); + backdrop-filter: var(--bg-blur-40); +} + +.webbpm.ervu_dashboard :is(.form-signin, .form-signup) .row.title { + position: relative; + padding: 0; +} + +.webbpm.ervu_dashboard .form-signin h1, +.webbpm.ervu_dashboard .form-signin h2, +.webbpm.ervu_dashboard .form-signup h2, +.webbpm.ervu_dashboard .confirm h2 { + font-family: 'GilroySB'; + font-size: 32px; + text-align: left; + margin-bottom: 20px; +} + +.webbpm.ervu_dashboard :is(.form-signin, .form-signup, .confirm) .logo { + position: absolute; + top: -10px; + right: 0; + width: 145px; + height: 40px; + background: none; +} + +.webbpm.ervu_dashboard .form-signin .row.registration > * + *, +.webbpm.ervu_dashboard .form-signin .login-btn-box .password, +.webbpm.ervu_dashboard .form-signin .login-btn-box .btn + .btn { + margin-left: 20px; +} +/*--------------- end Login -------------- */ + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-dark) transparent; +} +*::-webkit-scrollbar { + width: 8px; + height: 8px; + background-color: transparent; +} +*::-webkit-scrollbar-thumb { + border-radius: 8px; + background-color: var(--color-dark); +} +*::-webkit-scrollbar-track { + height: 8px; + background-color: transparent; +} + +@media ((max-width: 780px) or (orientation: portrait)) { + .webbpm.ervu_dashboard { + --size-text-title: 2rem; /*32px*/ + --size-text-subtitle: 1.5rem; /*24px*/ + --size-text-addprimary: 1.25rem; /*20px*/ + --size-text-primary: 1.125rem; /*18px*/ + --size-text-secondary: 0.875rem; /*14px*/ + + --size-num-title: 3.75rem; /*60px*/ + --size-num-subtitle: 3rem; /*48px*/ + --size-num-addtitle: 2.5rem; /*40px*/ + --size-num-primary: 2rem; /*32px*/ + --size-num-secondary: 1.5rem; /*24px*/ + + --indent-huge: 3rem; /*48*/ + --indent-xlarge: 2.5rem; /*40*/ + --indent-large: 2rem; /*32*/ + --indent-medium: 1.5rem; /*24*/ + --indent-xbase: 1.25rem; /*20*/ + --indent-base: 1rem; /*16*/ + --indent-small: 0.75rem; /*12px*/ + --indent-mini: 0.5rem; /*8px*/ + --indent-xmini: 0.25rem; /*4px*/ + + --h-header: 4.875rem; /*78*/ + --w-screen: 1rem; /*40*/ + } +} + +@media (max-width: 480px) { + .webbpm.ervu_dashboard { + --size-text-title: 1.75rem; /*28px*/ + --size-text-primary: 1rem; /*16px*/ + + --size-num-title: 3rem; /*48*/ + --size-num-subtitle: 2.5rem; /*40*/ + --size-num-addtitle: 2rem; /*32px*/ + --size-num-primary: 1.75rem; /*28px*/ + } +} \ No newline at end of file diff --git a/frontend/src/resources/css/structure.css b/frontend/src/resources/css/structure.css new file mode 100644 index 0000000..b7dd9ac --- /dev/null +++ b/frontend/src/resources/css/structure.css @@ -0,0 +1,846 @@ +:root { + --white: #ffffff; + --black: #000000; + --color-text-primary: #404954; + --color-link: #1c92ea; + --color-link-hover: #1b84d2; + --bg-light: #f5f7fa; + --bg-secondary: #4c5969; + --border-light: #e3e6ed; + + --size-text-primary: 16px; + --size-text-secondary: 14px; +} + +* { + margin: 0; + padding: 0; +} + +*, *:before, *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body.webbpm .form-signin label { + width: 160px; + margin-right: 0; +} + +.webbpm .progress { + position: absolute; + width: 64px; + height: 64px; + margin-bottom: 0 !important; + background: url("../img/progress.gif") no-repeat 0 0; +} + +.webbpm > .progress { + top: 50%; + left: 50%; + margin-top: -30px; + margin-left: -30px; +} + +.webbpm .search-task-progress-bar { + text-align: center; +} + +.webbpm .modal-body .progress, +.webbpm .search-task-progress-bar .progress { + position: relative; + top: 0; + margin-top: 0; +} + +/*-- common class --*/ +.webbpm .fl-left { + float: left; +} + +.webbpm .fl-right { + float: right; +} + +.webbpm .anchor { + float: none; + clear: both; +} + +.webbpm :is(ul, ol) li { + list-style: none; +} + +.webbpm :is(h1, h2, h3) { + margin: 0; + font-weight: normal; +} +.webbpm h1 { + font-size: 2.33em; +} +.webbpm h2 { + font-size: 2em; +} +.webbpm h3 { + font-size: 1.5em; +} + +.webbpm .table { + display: table; +} + +.webbpm .tr { + display: table-row; +} + +.webbpm .td, .webbpm .th { + display: table-cell; +} + +/*-- layout --*/ +html, body.webbpm { + width: 100%; + height: 100%; + display: block; +} + +body.webbpm { + background-color: #f9f9fa; + font-family: Arial; + font-size: var(--size-text-secondary); + min-height: 0; + padding: 0; +} + +.webbpm .wrapper { + height: 100%; + min-height: 100%; + position: relative; +} + +.webbpm .container { + width: 100%; + max-width: 100%; + height: auto; + margin: 0; + padding: 67px 0 0; + position: absolute; + top: 0px; + left: 0; + right: 0; + bottom: 50px; + border: 0; + overflow: hidden; + + [ng-include="taskPageFile"] { + position: relative; + min-height: 100%; + height: 100%; + overflow: auto; + } + .container-inside { + font-family: Arial; + font-size: var(--size-text-secondary); + position: relative; + height: 100%; + overflow: auto; + } +} + +.webbpm footer { + position: absolute; + color: var(--black); + font-size: 12px; + bottom: 0; + left: 15px; + right: 15px; + height: 50px; + padding: 15px 0; + border-top: 1px solid #c1c1c1; + background: transparent; + + span + span { + padding-left: 20px; + } +} +/*--------- TOP MENU ----------*/ +.webbpm .logo { + display: inline-block; + margin: 0; + float: left; + + a { + width: 200px; + height: 67px; + position: absolute; + background: url("../img/logo.png") no-repeat 0 0; + } +} + +.webbpm .header { + position: absolute; + color: var(--white); + font-family: Corbel; + font-size: var(--size-text-secondary); + top: 0; + left: 0; + right: 0; + height: 67px; + min-height: 67px; + line-height: normal; + border: 0; + padding: 0; + background: #b9c0ca; + z-index: 997; + + .nav .nav-link { + color: var(--white); + float: none; + display: block; + line-height: 60px; + padding: 0 15px 0 60px; + text-shadow: none; + cursor: pointer; + } + + .nav .nav-link:hover { + text-decoration: none; + } +} + +.webbpm .dropdown-menu { + background-color: #eee; +} + +.webbpm .nav .nav-item .dropdown-menu:after { + border-bottom: 6px solid #eee; +} + +.webbpm .inner { + overflow-y: auto; +} + +@media (min-width: 768px) { + .webbpm .navbar .nav > * { + float: left; + } +} + +@media (max-width: 767px) { + .webbpm .dropdown-menu > div > button { + color: #d1dbe5; + } +} + +/*--------- end - TOP MENU ----------*/ +.webbpm .user-department, +.webbpm .user-info { + color: #5a6473; +} + +.webbpm .user-info > * { + display: inline-block; + margin-left: 5px; +} + +.webbpm [log-out] { + max-width: 40%; + margin-right: 15px; +} + +.webbpm .content { + padding: 0 20px; +} + +.webbpm .inner { + min-height: 100%; + height: 100%; + overflow-y : scroll; +} + +/*--------------task-list------------------*/ +.task-list { + font-size: 0; + height: 100%; + min-height: 100%; +} + +.task-list > div { + display: block; + float: left; + height: 100%; + min-height: 100%; + font-size: var(--size-text-secondary); +} + +.task-list-tree-panel { + width: 20%; + background: #e9edf2; + border-right: 1px solid #b9c1ca; +} + +.task-list-tree-panel .task-list-filter { + position: relative; + margin-top: 15px; + z-index: 10; +} + +.task-list-tree-panel .task-list-filter li { + position: relative; + padding: 8px 10px; + margin: 2px 10px; +} + +.task-list-tree-panel .task-list-filter li::before { + content: ""; + position: absolute; + left: 0px; + bottom: 0px; + right: 0; + top: 0; + border: 1px solid rgb(206, 212, 219); + border-radius: 4px; + background-color: var(--white); + opacity: 0.6; +} + +.task-list-tree-panel .task-list-filter li label:hover { + cursor: pointer; +} + +.task-list-tree-panel .task-list-filter li label { + position: relative; + width: 100%; + margin: 0; + z-index: 11; +} + +.task-list-tree-panel .task-list-filter li label input[type="radio"] { + float: left; + margin-top: 2px; + margin-right: 4px; +} + +.task-list-tree-panel .task-list-filter li label span { + float: right; + background-color: #bbb; + padding: 0px 4px; + border-radius: 3px; + min-width: 25px; + text-align: center; + color: var(--white); +} + +.task-list-tree-panel .task-list-filter li.ontime label span { + background-color: #a0c367; +} + +.task-list-tree-panel .task-list-filter li.overdue label span { + background-color: #fc2d2d; +} + +.task-list-header { + border-bottom: 1px solid #b9c1ca; + background-color: #ccd6e0; + height: 30px; + line-height: 30px; + color: #565968; + font-size: var(--size-text-secondary); + padding: 0 12px; +} + +.structure-box { + padding: 15px; +} + +.task-list-workplace { + width: 80%; + padding: 15px 15px 0; + overflow-y: auto; +} +/*--------------task-list end--------------*/ + +/*---------------table-list----------------*/ +.task-tbl { + background: var(--white); + width: 100%; + border-collapse: collapse; +} + +.task-tbl .td, .task-tbl .th { + border: 1px solid #b9c1ca; + padding: 10px 15px; +} + +.task-tbl .th { + color: #565968; +} + +.task-tbl .td { + color: #333; +} + +.task-tbl .thead { + background: #ccd6e0; +} + +.task-tbl > .tr:hover { + cursor: pointer; + background: #e9edf2; +} + +.task-tbl .tr.task-ontime > .td.task, +.task-tbl .tr.task-overdue > .td.task { + position: relative; + padding-left: 20px; +} + +.task-tbl .tr.task-ontime > .td.task::before, +.task-tbl .tr.task-overdue > .td.task::before { + content: ""; + position: absolute; + top: 12px; + left: 5px; + width: 10px; + height: 10px; + background-color: #a0c367; + border-radius: 10px; + z-index: 1; +} + +.task-tbl .tr.task-overdue > .td.task::before { + background-color: #ff0000; +} +/*----------------table-list end----------------*/ + +/*--------------ミ榧コミスミセ ムミセミセミアム禍オミスミクム ミセミア ミセム威クミアミコミオ--------------*/ +.webbpm #toast-container { + font-size: 12px; + bottom: auto; + overflow-y: auto; + overflow-x: hidden; + max-height: 95%; +} + +.webbpm #toast-container .toast:hover { + box-shadow: 0 0 12px #999999; +} + +.webbpm #toast-container .ngx-toastr { + min-width: 540px; + opacity: 0.9; +} + +.webbpm #toast-container .toast-error { + background-color: #d9534f; +} + +.webbpm #toast-container .toast-close-button { + text-shadow: none; +} + +.webbpm .toast-message > div { + display: none; +} + +.webbpm .toast-message > .active { + display: block; +} + +.webbpm .toast-message > .active::after { + display: block; + content: ""; + float: none; + clear: both; +} + +.webbpm .toast-message > .active a { + float: right; + margin: 5px 0; +} + +.webbpm .toast-message > .toast-msg-close.active ~ .toast-msg-text { + display: block; + font-size: 0.8em; +} + +.webbpm .toast-message a:not([href]):not([tabindex]) { + text-decoration: underline; +} +/*------------ミ榧コミスミセ ムミセミセミアム禍オミスミクム ミセミア ミセム威クミアミコミオ end------------*/ + +/*----------------- ミ樮威クミアミコミー 404 -------------------*/ +.webbpm .container .task-not-found-page { + position: relative; + display: table; + width: 100%; + height: 100%; +} + +.webbpm .container .task-not-found-container { + display: table-cell; + color: var(--black); + font-size: 1.8em; + background-color: #c9d4e0; + text-align: center; + vertical-align: middle; +} + +.webbpm .container .task-not-found-container > div { + display: inline-block; +} + +.webbpm .container .task-not-found-container > div:first-child { + color: var(--white); + font-size: 7.8em; + font-weight: bold; +} + +.webbpm .container .task-not-found-container > div:last-child { + text-align: left; + margin-left: 40px; +} + +.webbpm .container .task-not-found-container h2 { + font-size: 2em; + margin-bottom: 10px; +} + + +.webbpm .container .task-not-found-container a { + cursor: pointer; +} +/*--------------- end ミ樮威クミアミコミー 404 -----------------*/ + +/*-------------- MOBILE --------------*/ +.webbpm.mobile .task-list-tree-panel, +.webbpm.mobile footer { + display: none; +} + +.webbpm.mobile .task-list-workplace { + margin-left: 0; +} + +.webbpm.mobile .container { + bottom: 0; +} + +.webbpm.mobile form { + overflow: hidden; +} + +.webbpm.mobile .form-signin { + width: auto; + padding: 20px; + margin: 40px 20px; + border-radius: 4px; +} + +.webbpm.mobile .form-signin h1, +.webbpm.mobile .form-signin h2 { + margin-left: 0; +} + +.webbpm.mobile .form-signin label { + text-align: left; +} + +.webbpm.mobile .form-signin input[type="text"], +.webbpm.mobile .form-signin input[type="password"] { + width: 100%; +} + +.webbpm.mobile .form-signin .login-btn-box { + width: auto; + margin-right: 0; +} +/*-------------- end MOBILE --------------*/ + + +/*-------------- ミ斷榧漬ォミ ミ頒侑厘籍厰 --------------*/ +/*------------------ ミ、ミクミサム袴びム ------------------*/ +.webbpm .task-list { + height: auto; + min-height: auto; +} + +.webbpm .task-list > .task-list-tree-panel { + background: var(--white); + border-right: 0; +} + +.webbpm .task-list > .task-list-tree-panel, +.webbpm .task-list > .task-list-workplace { + font-size: var(--size-text-secondary); + float: none; + width: 100%; + height: auto; + min-height: auto; +} + +.webbpm .task-list-tree-panel .task-list-filter { + font-family: Corbel; + margin: 0; + box-shadow: 0px 4px 10px -5px rgba(40, 40, 40, 0.3); + + ul { + margin: 0; + } + + li { + display: inline-block; + padding: 12px 0px; + margin: 0; + + &:first-of-type { + font-size: 1.4em; + font-weight: bold; + width: 197px; + padding: 0 15px; + } + + &::before { + display: none; + } + + label { + font-size: 1.3em; + font-weight: normal; + } + + label div { + display: inline-block; + width: 10px; + height: 10px; + border-radius: 10px; + margin-right: 8px; + } + + &.ontime label div { + background-color: #2da6a1; + } + + &.overdue label div { + background-color: #9c5d7a; + } + + label input[type="radio"] { + float: none; + display: none; + } + + label span { + float: none; + color: var(--black); + font-weight: normal; + text-align: left; + min-width: auto; + padding: 5px 15px; + border-radius: 0; + background-color: transparent; + } + + label input[type="radio"].ng-valid-parse ~ span { + background-color: #eaedf2; + + } + } +} +/*-------------- end ミ斷榧漬ォミ ミ頒侑厘籍厰 --------------*/ + +.webbpm .dialog-stack-trace { + overflow-x: auto; + overflow-y: auto; + max-height: 300px; +} +.webbpm .dialog-show-button { + text-decoration: underline; + cursor: pointer; +} +.webbpm .dialog-error-number { + font-size: 1.25rem; +} +.webbpm .dialog-error-title { + font-size: 1rem; +} + +/*-- login --*/ +.webbpm :is(.form-signin, .form-signup, .confirm) { + color: #333; + width: 580px; + padding: 80px 100px; + margin: 20px auto; + border: 1px solid var(--bg-light); + background: var(--white); +} + +.webbpm .form-signin.esia { + width: 450px; + text-align: center; + padding: 45px 55px 35px 55px; +} + +.webbpm .form-signin h1, +.webbpm .form-signin h2, +.webbpm .form-signup h2, +.webbpm .confirm h2 { + text-align: center; + margin-bottom: 20px; +} + +.webbpm .form-signin.esia :is(h1, h2) { + margin-left: 0; +} + +.webbpm .form-signin label, +.webbpm .form-signup label { + margin-bottom: 0; +} + +.webbpm .form-signin input { + width: 240px; + font-size: var(--size-text-secondary); + display: inline-block; +} + +.webbpm .form-signin.esia input { + width: 160px; + margin-top: 40px; +} + +.webbpm :is(.form-signin, .form-signup) .row { + display: flex; + margin: 0 0 20px; +} + +.webbpm .registration-link, +.webbpm .login-link { + margin-right: 20px; + font-size: var(--size-text-secondary); +} + +.webbpm .form-signin .row.registration { + flex-direction: row; +} + +.webbpm .form-signin .login-btn-box { + display: flex; + flex-direction: row; + align-items: center; +} + +.webbpm .form-signin .row.registration > * + *, +.webbpm .form-signin .login-btn-box .password, +.webbpm .form-signin .login-btn-box .btn + .btn { + margin-left: 10px; +} + +.webbpm .input-group > .input-group-append > .input-group-text { + border-radius: 0; +} + +.webbpm .form-signin .register-btn-box, +.webbpm .form-signup .register-btn-box, +.webbpm .form-signup .reset-password-btn-box { + width: 220px; +} + +.webbpm .form-signup .row international-phone-number .flagInput .btn { + border-left: 1px solid #c6cdd3; +} +.webbpm .form-signup .row international-phone-number .flagInput ~ input { + border-left: none; +} + +.webbpm .form-signin .has-error .help-block { + padding-left: 125px; + font-size: var(--size-text-secondary); +} + +.webbpm .form-signup .has-account a { + margin-left: 10px; +} + +/*------------------ ミ、ミセムミシム ムミオミウミクムムびミームミクミク ミク ミソミセミエムひイミオムミカミエミオミスミクム ------------------*/ +.form-signup .has-account { + flex-direction: row; +} + +.form-signup .has-account a span, +.confirm a span { + margin-right: 4px; +} + +.form-signup .dropbtn.btn { + margin-bottom: 0; +} + +.form-signup .input-group-text { + border-left-width: 0; +} + +.form-signup input.ng-invalid.ng-touched, +.form-signup input.ng-invalid.ng-dirty { + border-color: red !important; +} + +.form-signup .msg-alert { + color: red; + font-size: 11px; + padding: 3px 0 0; +} + +.form-signup .consent { + color: #929292; + font-size: 13px; + margin-top: 20px; +} +/*------------------ End - ミ、ミセムミシム ムミオミウミクムムびミームミクミク ミク ミソミセミエムひイミオムミカミエミオミスミクム ------------------*/ + +/*------------------ ミ。ミセミセミアム禍オミスミクム ミセミア ミセム威クミアミコミオ ------------------*/ +.webbpm .error_message { + width: 650px; + margin: 0 auto; + margin-top: 10%; +} + +.webbpm .error_title { + position: relative; + color: #9c5d7a; + font-size: 5.5em; + font-weight: bold; + margin-left: 100px; + line-height: 1; +} +.webbpm .error_title::before { + position: absolute; + content: ""; + left: -100px; + width: 75px; + height: 75px; + border-radius: 40px; + background-color: #9c5d7a; + background-image: url("../img/access_denied.png"); + background-repeat: no-repeat; + background-position: 50% 50%; +} + +.webbpm .error_title_long { + margin-bottom: 20px; + font-size: 2.5em; +} + +.webbpm .error_body { + font-size: 2em; + line-height: 1.2; + margin: 5px 0 0 100px; +} +/*---------------- end ミ。ミセミセミアム禍オミスミクム ミセミア ミセム威クミアミコミオ ---------------*/ +/*-------------- ミ渙セミサミオ ムひオミサミオムミセミスミー ------------ */ +.flag { + background-image: url('./../img/country-flags.jpg') !important; +} +/*-------------- end ミ渙セミサミオ ムひオミサミオムミセミスミー ------------ */ + diff --git a/frontend/src/resources/css/style.css b/frontend/src/resources/css/style.css new file mode 100644 index 0000000..03ed56d --- /dev/null +++ b/frontend/src/resources/css/style.css @@ -0,0 +1,10 @@ +@import "../../../node_modules/angular-calendar/css/angular-calendar.css"; +@import "../../../node_modules/bootstrap/dist/css/bootstrap-grid.css"; +@import "../../../node_modules/bootstrap/dist/css/bootstrap-reboot.css"; +@import "../../../node_modules/bootstrap/dist/css/bootstrap.css"; +@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 "structure.css"; +@import "inbox-dashboard.css"; +@import "components-dashboard.css"; \ No newline at end of file diff --git a/frontend/src/resources/fonts/gilroy-extrabold.otf b/frontend/src/resources/fonts/gilroy-extrabold.otf new file mode 100644 index 0000000000000000000000000000000000000000..7413e3d4a08d7583a1b5846b8ac1168ea15c0321 GIT binary patch literal 54956 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 literal 0 HcmV?d00001 diff --git a/frontend/src/resources/fonts/gilroy-medium.ttf b/frontend/src/resources/fonts/gilroy-medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c9ebeb55f68ef3ba693ff2d3b2f1fb4e57e76298 GIT binary patch literal 84564 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�{aw>VvQbunlm`QRsP&16u6#@>HceXVR3^e`es&}@T3&qTB=C|~!otF)KY4JqN2&<4m7B9SH-~SM zaVe^UTBNg?Kr4rd9I#wFs=zPS z@2#)j(7t6(Q*3*2RZrAgZ$){Wwl(G!yR&`Eo5)`dGW7p>dYiW1|MT^FNN!~C+!>0~JZs$dlnferNez$x4oRYUKz>h6Fa|s%mxlAy zmE4D~mmr5{!=W1A;keuy{d`aJjGc|ZhaGf|0+J&G-pfu zhWdI}{Ra1z6t||$=JXH?^;8wNAIvVVZ)#q@sj?7(mRP5MEbvCpW--Z6ko2MtE@o{ zW5QXCuWxSX?QQtO<6PeuzR;ANlYSxQcU{?ucfN4ppsG_<(TXXOH={O_?|1!w%)JSGRn@gW{$2arA=6E6W(ZS4msugM-sdWIHHBu2lD(3Fr zXRW=@y(b}vzW4s0&wt&|J!hYD_Pp2Ld+oK?UTfcx+S((v=jRU{ntwhGpFd^t{MTNi z&;I;p8=tY&_J4Rj%+Ozg)0Ri?_h*t?~{unveob7Vunk3&W`$%kH zPb}soQogEY1-?htyYfu;-oDboCVGV!ohIJVm33P({ZD}l@EAj-6x z6+m@{LmAu!}Qrs`QbxdQQ<1dP)xqcy(|yxK6p@ z^_!_5qqmf`bGiG>9jtm-yF=D8;hs~3nIeDk8Y}EVrb)Czcd%f{X&V_aqu=MWX?GAp zqp7E)9qLfZF0|J4?NsW{`ckv=2l}IeWWBi^E29ciFMrA-jOFPEytmB#AUl5`=P%k1 zj?PGK9l0rJ)Up(wEsdax8Fw6)A+Nb z4VI?4mF+k`ZS6OYpl7g0&fCZdLblzm{^Wk^(yqJW_~=}TPjuc@${9V5b(4wtsDxJ> zH=Se8@<{Bib@=}_sYLzhRys%Q#|MoCd9S}U?2YY0gMMv!h%o`+QtEl_wYAq>SF7?C zMoMY#!drOWbN%veh?V^{HhRq5PQSiZ0-0cMEWG6wxfpu52!|<^{w6laSh-52Xjc0q zcg2LfycM~5l#(}LMQ&bR?g}_;!(Po58}@Q;CT7RJG3L7?GXt+Q(tTINWw@M<@C{X3NC=t}h0N?T|WV&xsaBHcp}IMKWSHhfmi>)p+$Z z%Rw8OY5*H%Vzox)rNaCYgFsAJiNPr$ujuIPUK?j_xHfJ2M4B`sr$?_`k33C192HB!pXZ}O^^J?y7Sho{l%Tn-4I+D zi7X7J(9J2dA|>VVq~Mae_@vN1Q(Dghbvh0X;DYB^_g zZhwbhG8WNFbW(B}%boYtxkkD?p7Ja6vbh++JhiEnD56_mZolT0)`%u*eMN0n=SCtC z{mLsur1qOU>hGyhPNjs;9GF_ksb;4J%SnxT`Q?a?L|%TGl&aupUN+IZq*`8TC6cr! zsOf5<)E@;Ybzo{<_LFqk*vLim>7MyYMJ^gkmqmWc54JvH{wwoRgQ+x-=JHqZsMP$( z;`wx*JXrq=)pS+Q@%K;7PR$#bN0sz>)Yl*F8^$nIYKd6%TxdsS>`7&Ixoy9J!L40)f`WJ85xNOw?vp2}S{pAJJGIi!OJIx6W=1&U9gDu6fLTWoU^Fr+uIgI#6oIK@3hP=0*9**4q z$~(02sd;oEtvPF9WJlymwmDAa^ghMx*}c!^<*0mt=>t%gIJw-0dHGB}uz~cAi!WdP z!z~}2ePH2U^@ypP3Ou4dR(y)9kDR-T?pO|#W-)?)75)-wjf|{3!>0>osmW7|i;9L% zUshYYeERUBqT;E`YilE)j~_Q~eE;FY>B|1YhxZ>hZk%$451%@1cwv2g;qdDVhu7Di zT(qcYR#DNcqD5>xg3l22qKDPX%!|z|=W_#9#MV%QPBIOzj$0evxVU0s+}f0;zb;De zTdW#ZOzl>a*0-qr<`vTnK2@SsrK>a~vt%a~lC?@|EJ3k>(%!OxIB-CKdKOpr4Nc0q zc*V@>l$qTxIytlZcUBZn=o^|;`S|n+bXCu|p1D1j4k;U$G9rJ;(3|p?6qNM}_RQ_M zYu$hpPK*0|H62jjwlq1@U%`B)$>d)eqysz3|9*V@nDOV^JAJ(1f(6%ICl{teDp5l( zs&&>*QUA;kW%lQ>sgiDuJWFMfRdg%=>6zPCoVRYp&m*r}8+jeWmHRXO<^7p5;&7{| ztdRq$q!qW%|M`k_k>4AdhY^o;=K7h3mzU3WR`aqe2hxZ+yLQdl6}jc|%Pyl8v?6ln z@#Dw2Y^+1#Z=zGc?m4+u!AncBGo>d!M&a5=YUj=SXTj(R{U?tTPW0`(m9a48$T2n?0#Mo1IK&aEx-Pa3~=ZSA~y>gkmBDQc@4InK2={-n@stV-}c zk^fHiY6KTG;P*uj%dq+G=oy)Img}`;Q47?oa?ajk9uOuVSOY|of-HLMA;A@uHS0^QmqKA>I@*)G{(=NM0kHCkcxoYa^b{j0-9 zRSlk86|1+7X?W{U_mgy3<5pf&tH;+!jTya^bu1q*bD|aa7=>4^s3`4#be+oL z!99g+y-jpf8H<8U=o=Zr^lT@OZhU^q@<{Ho$uE@MO{}R�S;trbvS1iS9 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 E3()|*$^ZZW literal 0 HcmV?d00001 diff --git a/frontend/src/resources/fonts/gilroy-regular.ttf b/frontend/src/resources/fonts/gilroy-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..586e79a40a2a5de35dbae1887c981cb99696ae45 GIT binary patch literal 84300 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 literal 0 HcmV?d00001 diff --git a/frontend/src/resources/fonts/gilroy-semibold.ttf b/frontend/src/resources/fonts/gilroy-semibold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..30b5d25e6b8fc8598428202bc5c3054cac89e322 GIT binary patch literal 80716 zcmd4434Bvk_BejdeQi<-UD75EbWdN~bf?YIbT2I>T_~mOw9v9cD4|6Hh-@;IO+*$& zMMfQUTv1UON5!d%8v`mM3Nj8lisOcgD;05uzWhGtzLzv<3(j}`^Zk7PX!^Rmcka3O zp6#CP0Rli6tOo&>*zFU?toiPl`vHq{0U)-zYLq=VVeqE_uO0`0%Ie0k6QI6i5Wuky z02WWIo-nC0{oYf90AAAq1RWVWVYq40zU$5b;7S0PIcM>#B@^bXUIGxj1t6ed!7SGj zw;Ke2SC0Td&;sW*^IwgB>P~=23&5T09rI?*9i%;34*-_{Am8DbH%m1o;1U2@03g}1 zc-hLm>q-v+;Clc;PdGc~%=)nCnKb~R?*RlfFP^n>30n#E05}x@65D4jo_DJyx*Fh# zrvL)3ThifLHg|{Zd4N9_0EBG^nmYpQ|8n)v8DS+q!C>Jm0Kkd+k2H9$Ql}dO(uCIu zUtsiG`59rK8);0b)4ePpjYIPJ$Fk@*EDLHOnE#rdM1I!@uO zRxn`}-J|xxW4+%3z@*Vr8ejw@{)-8T?gDs8*az-JfZOPA*v-0V<{)4laU0lJD%fxkSWyByJ;OpkWGf&Imq7^A zKpcyOVXO-D%mDGs0K@Pr2xEC5()WCfA^aH=ivSY~0TWAtG$9;BwgUp$Y_PKrKxA)# zokf71slYBofXMFRW7(MnL^ciV_!-!R46w7`gI$OPku`u_Fo4MBft`&41B-<)wgbx9 zDhL$504FoIas*4pO-Zuc+Xh9Ypg-v_t*GxjA6 z^Q<+kx9+Sm~0u%q4*4y_J1c7V?l=Caio5t>YC0e7k?|UWsI|(A6_gWD7+7OPk zMgv?qjjn)xSM~>&`j zOqvSiEE>{;LMRu;Kshr5us=dMp5?y}6VjlZA;j~sDj|@MO)}^h#B+K0rTa9=L?Hlz zg(xVZdpHh614U3yYemm^=%eq|OD|i&&b|dZ4gw3;Eu>%m02cfMzgqDOnD}QRWV6S> z8qf?ToCX#2fg|o^tOX+2WC#mTgB|}0qL2vjLMj9b>mW>63SmMm1PUo&VqIYJTmy2z z#8!Zbb@us;f@~of(%5>ivrI@MIm>S6&sjO`R`}>H(qE~N%@ROQANUf6v#FpLOuZle zx8tDYx`_6JXy<^k-}L(et}{~k9=`)&UKvJv83KXC_gvS^0;@0qtim;5#j{{#WdO84 zcsmS3gg~4IdTfR;oC_h?01-F=A}|dCu?eE+dsYr1tQ-ui98y_1=#`&iSvmh(JS&Hx ztQ=xFyg&%V8KB1&1>QIa>kIF{eIF|aGb`tK5N^X*IRq;|2jE1A2OztUe_~~8idBKY zzl((cmIeTuU_Gcn1?%8pcod$5XHkuj7=t1jF%$F9hGkfTV{jTSz(u$YZ(=d*&+P9) zfDj}M5h8>%VYl$Ga429%z}SH40W$)2#czy1pQufYPK-}XN=!}6O)N^RN_;f&c|(*T z$&h1cHQb)Wk^+;$k|L6#lj4&ylWLM?Ce2HE{a?)O=2q4{@CfXOr{GT*j8PbmshEK| zn2&{6fpyr3t=NX`coQ4S4zu?J5L8025Fw;0cwj(iz_@_cfSvK{<9|$yOdOgRo0!P) zDD=Z)nqjAchsFnwxhb#z3*Bz_C+?Trhukl^pLhSsebD`k`;YEFxSw=C?ta9*&;5}5 zLHGUc-@ET||IWS5t(ID(F;b?KA*D;nlBVZ@o|}5s^px}z_Z0OM_6+(Y<{yuLyz}E5 zKi>B74Igj$_}Y)J{qiC};v5Fr^-AQg;|2I-IinUDq9kORXZ7xKUa zX0U)2^1%iLPzXg(3?)zsWl#Xn|Ik0W)D109*^}p%XU1HrNHX!5#2hxD$Q{cfs9oFWd*ehx_3H zcnBVZhhZN)3j5(PcpRRDC*Y6p6g&;j;3Lohb6_qw@G)?~URVrm_%vJv3-K-Z4cv@x z!V)}=Z^L|8iihzi9>EekMhl05p=;u{!`e*u6+umbl3z-m|rJK<-zh`-1C z@F9E{@5cw=0KNmyp&k$5AMgo$5>Mbsd=!@9gSZbLhqbT~*1#sX4z|GcuoX7LcGv*` zH^MD&E9{0dC}KLaV+y9C5td^HreQMQ!BUO>~+N17`I;9WQkJr!FuhQS7e_DTT zXwuNSp-YDD9eRA2YFNgwxx=;&dt%t>=5^BV*+9dV&=x|jd?xhpRqZy zb7S|!z8QNlE;+6tZcW@BamV8>#OK6Mj=wejx%eLwvJ#vL_a&T3j7Y3YT#~pa@zKOX zi60t*xCCxAv>P@V_8OirylOaY_%L+y(!QiOlP-u+VwpHs+$ugT{v$ae zd3y5JAC4s(^sY6o&IL}R~f2|jEwq>_KfWr&t_c8%+GAhT#>mYb8qGonXhJ^&0<-J zS(dEItj4U_S?ja5XWf_eY}To)e`befCuZklmt;@OZqMG3eIWbw?29>xIR!cMbMDP~ zBIjhzx5E>M*AH(WzH|72;ja(>G&d->Ah#yBEw?lGf!z0Uzt0QJOUtXuo0+#VZ%^K% zd4I{fU4%_ZhG^B(gH=1(ojmPX4=OQ&VOl9BZCYE2t<|>G_LS{(L3}}d!R&(V z1&0bw7f6Nih4qCi3hyfHDm+top(wa0wy3gbe$lp~CyG8VjxH`JZZ4i*ytH_I@%G|7 ziVqYYDgLmyyCk9{tz>-3QzeH>PL+IG8e3Xd+F5#U>6x;OvaMxj%Pr+~=K#iWrqPs%TX6sI8+8jQWQ?+CIYW zu-{}qV1LzqwmP&rwYsi)Y4wKcuIf)~R5h_Rl{M`(TWX%Dd9UVNZE9_Ot+RGr?cKG9 zYd@@Gbs2Rfb<67RsOzfxOWlv7hmJOlo;-Tp=$)fqAN^x}M1697O?`X)mikBQPu71v zCUH#7m@Q*YHiS16HOz0=-f*Dd5C8;2i@N~#3W*><80cUah>#9eD1=g|0YHsGqZf5% zov1TgMXOoOuST6{_5POr=DEYH6Rpbko_o~vpv{bXrB}YczoPPi%F4>Q4^$=@Ha<{U zIk(cV@qxKXhPj3Z9(ceocjE(g`vddsi9+I~p~Bgbh7^M#Wu_x3IXQWjA;n;isZ5G0 z&<}6Cs^qH1;lmdgh8qmSfq~WC4R5e62!v1on_xBT1XWV1CEsj{(oTx%)DJGp%1lhi z`T&O>IU=1sn^l&TRR+Ky8_!@q>jHt?Q;|lq+H5qdOTre0O$u8WhG#zb;DZluJj-aVc5my&fgdQFe8XKEt#pHxE z?S563R1uV0nH~v&U~+e}gX|~-ffj~B6662?t*t3ar&XKst(H_VNu|?938=?F&!Vf0 zK7Ya3ZLO`_TJB3sOG`{hORL3W`H~r3_SRPWsMc1y@@u@lWmC)as*!;i@d+6j3Go@y zCWZ+;(u9^xEiIc`rh0x&`(bi_!#1*`AVMZUirT0WlTvAc=!@ADrB~-5M=Bl@FyE$E zsRK136DEWl#=66YrKcx% z{@B_1V<+Jj0)XkP3seA+W{s#(8(*92x-ph@^;EHnwAp;U;{fm+I|@1gv(+Zkui99K zW+Lb?H0Tn#n@WdI&6s6aSv!5h)puc1^Dj*m=E5n3_L^mL7hQ8#hrC9^+~@HZ)&)ZW zFdlVUqCulA%1jt%qS0os8g$rDKV$oX#%p6|C$yE=?IqDUw@L5ge!MGU;n;;M>#7Tz zOC2Sn{_LC$2zmf!W?dw~QuzKDtdVAcwuqS7i{`)bAH~~^{p+x`EYniX-;-oX--j1O;K@84LS?2 zn%U7YGruXua%kbgLtUof*%nLoaFY~J=qN076moeEEQlS2Aw&hJRSTj`lx13=Hj0Kx zQn8?nzi+sE$l@DrIK5TcFnU>C-Llbmy0KLH!`FPeMKv^2ukJw@1Q7rc9D7nbtPc-l z$*h2jvJw(Av&y6vnI}khEra(MLJ$n`Ja3B94n{HZQR3z-!QPzaed=SG3u*67;KKJ= zEzvsaLQt1t#rLJRakw;v)h@l}nxzNl5}h(I!E1O1FDg3DYS0B*4LTFr&BJZ+8QHm61=VBbH)qsZ@(SWSsu>uF?w#x# zHWzZBfapoAg$*PAgM}tboiWn@&*#J_Ng??Y_pTm2;v~D=H^Xt}IHOUYcq9 z{!2n!1+zPQSg~kd3PF$A16&REs4%&1OqG zh>M0!v`t>hx;iFId-7RpgH?(x9AEe<(F5_)3+yOyZ(vetxQ`yx5(C-vp@_TgI)41F z8TVw*ja^i^%wij@kES&xviXYTv$NSOTKCDU zi&K_}d~h@)n|!@=&gH`3>!r_djPwWAB^|~h=@Bo^c#7M<@;aLjVw|+ZMN8{hS4PV= zgsgc{BZvaQjY0OQ>)p_IU29I9{DwT5F#mJhfBdiwO!JgFz5=qRhf7btKA6EaJPnx43X< z>vdzwekaYpKWD^<9B{i?*LAHUJBCT$v&OHgW>?Yr8ri8xP5rb;_)>Fvxlb{vxkL*#KvaiC(Y=Pbu$a$@{4Riji?c=EaWxUVb;~&bAUCp z6K>`1^K2aX{{aG$QaRa1nPl?C=fB$R8hz_%SIEXCcv3QtsIMP^$E2(!^c=~?<+9#4 z3+5O!3m4C?d+twb&$F(cw^&|J71_K1!U>rk<$LHhaWI}fe9g_jYrE^_YYuPReGBXA z`8yN&rwZK?-O%w?t`~Fw{O4ht)3oq;KVP#lpd9N zgYcQjkS=cDuT-dt@K$lA5KjFbW@#UdMd-{!{?`S*CfCSym)N?vGe04aXws z7{1)zJ_EmNpTYTxZ2Y0J?T(_xtP?e69J+k@#~-t2d+Hrz*!tPLfoMkjgS5nkJLd`; zF0J7($o~IHh7qX|t!9mA{psW7%Z0>CYaHw;2frr`*YI2j()E#i;#lI-fGZ^`0_p6HrFyMeC|1?i2BbPJKLCb^JXv4+89D8w<2kH zMTweCdZw^0zTtG1E?scbO$(Nm{$opX^Ok1pmWI?!y1l()&qV35XA2VMz9MpvS6G4tBi? zE%U0|Zo8^>WqgZfRCZ-kQ)O0lL`&kzkUbqsZnGEXC#N@WYR(X?C3Y?s&NG`Aw|{q@ zB;xwdljK|~Lx_ZE09!noO*XxE)#zNDV&Esx-9sjqP0nnp+qLS}-OJi<43MtE)WKt| zC5>+umX=u--?DVcZF}1_u~SRSD)~N>Hf_r^?3To(tFFl(Q(I9w<+f9|O_82$-qhT@iQ`rdz*MZuBbha#Mn3s- z4V91f$!*ROOQGHA%wyO-Q#yue1trzBQa9_8E{*{Pl!Nsg*A0WYol71Bt)MY$b`_+j z6{W3qvhwtT^z?$BJw#hvmb-s&$HFoGOt}9uTB9{8|311seYNwLX}IUv4J@eV;_)y? zV1@^0enulJjXYKwv&Lpt<1fEC=5)Ti;e#)}U|rI*zyIX97an1!iFeEzv!>k1PWPme z90U;J8S<4iMfuIUcL8*?!1-*}B!|&~Q$X4^FC754&Zy@7>$par^C0 zZfI`a&>XVo!##UG+_SKmSda66xx0W(@bbThXK7b;SK?Wj^?zVpHIqC%OS-qfUzTXR zT+vH@1IUt|Dh!**rGT{G!~f;P3)n+@7nyI?rK;jc#6FUKRoQf>6Yp+W9x!suB_yTK z&%yW@LofhDYU2g(VccZ3_^Z;pZDSj49TV%?hPFiSqwg0sl+B8s7G0H)fo;R$bg?7N zHRH={`85SY<8`qWrco1ZdFDbgF(JbJ15Re^`96s{Z9Lj^s?<^>?zHL5IC)L1Eq#r1 z`gG?S-1dD!jKF4v)z1Fj;Y{2n>lLf}JQBWS*?6T78H4sKS`S2ap&*Q{OFbzrT_weG+p zk074E>#lCPKhT}SC^wJnO0%FMrYuLoY^Uo`&752Hm0a(yFh{;L`c?YtTNQ9M52KZ^UszAxYUlRVi9h)z+x| zQnctfIcU{Uaj1>5;kY9i+1VLKa>^Rqv8nedkJRT_vR+59APhc$9|cg(SKqhzQ+Ah`cO2c@?)|-Dj$zFM{k@~KSI+Sy}5ZzDL$Fm zYR)wdvGGd?=S!=*0N!Afrx^+mp?G&JdUK>sw9YEaA~!L-7jH`*HU74%Vsvq~ zq)BNl+U%KOVOiDEkLhA-U~pveh~g^^Hqz3z)VrX-s~mR{E=u;mWGfVlp<9 z-UeVr>?qfaWIyqkf#+yOV{yIqIZo{PvazCK{ggUq%sfoovs^u_sp- z){QQ-Cy&aOE=?~jonDHq^ka2aRyEyLUpOk+o|$P+wii8J+FDxLs@Sk(Gm>vlFzZA$ zkABE5Q=@3*HY=NXc*$>tyY6y5`J}M_y2G+H`Eac&tM;CIYO_?eIK^XAG9Q|wID^Kl zA-!jJI-S^xOQr2Sr|B#A1?|Ld*-^-cQGBla(Cs-mT5_ADXMlB*gSk%YQ>b6RQLl;7k}PKqBKsR;=W)&$0lt*FmSFRGn9q9m{05Em2{ zIyfXKL>(%`k5MINXi{-#sv$j+#RNskd!}VMSjQd!HCgNtvS&@py~3s_?Lw0%n#AAo zuPjI8SN@frC7)n7`&=mpLmp zD!Mp5tt2lu%gpJn0@mPP@LLGv9&@!`G};XOD@M1sFKTbc1o`sqLFFIk_dnuSxQk?U zq(LWI4JLfnDLsX|K3D+&0e*8!ApVRBS7H3btzO3<2Y0+^ucI2cyc`4B|E!;XQHSKmv5{Hv)Iif z`^Xch#i6XIsY&58{0bKe8M418QrR<#Jv=!N-~|!5_6H=88Lr;QFYvVtV?>& zR$5($gQc6pA~?KwZtL(ft#aZ=OG8_3A0CYv!d7gyc&f;F&d(r>-JA ztf+xE@Ilg7y&hgAxPcnkqs!;wj)AWMNFVCSzh|^YSuIAZ`Oc)Qzg|<@l%q;dbcBoz z7Gs3*{b?*xuNG}a1ONKyWk?JJqAekjpRa>yT_P#UVKW=dD9T|2(MrKct6BHv^hr@y zH)3g{w4{+enAP;s<~bXtHDMN-hSg{GRPC8qRWn4B2fv`IBB zgG;~hoht*II}`uO^=c9Tc=amzt-a?;9!@M1tcbF+dgB0oY>(m{(2p&zDcdS+009P* z21n6oj_mam3GwgO2D_?q4eq&Ic8sXc{bq60si8g!nhwmuNN0(&!j>0bZ zD3(iK_>JLNlXeJ)SUT6q9(=`rtkbF^(Kqbmb?aZq9BHwR%=k%qUaQw@b$b1E+{b@^ zVnJ@jh&-F2XPRKtM@H!N5s~_ycevYM&d(FZaG4VUkU|!bs1{}Kw$2b})-W?hOUutq z?8M*W{nFQnl3V)Z(e`#ix&7(ICRBXsqC1BB_mcrqWOu$==Obej`_7{jwNbc>y!)w} z$8*`U{g1wm|2d_W!m263$-VNZI_%Bud%Zyb!khc>u$P+%)^e=6NdeE?zW~4+e2sYih^SYaHR2nMoo#V07wg%)xq=4*7*Mjn z5bu3vn@IN+Iodj__HtXU^d)#*~$QjRbP?#}=)Mwwe= z|GDu|eCG77%jGwd7G+%0BkVBu#}4!O-9-a;Mtb5s+yKU_<(SXt(Mr_ksi)+)52iS9 zxE%U<$?=SAPmnLah06-kQa)0`n5xq0z0rinJVGMF5dWz+u;A_$5F{r?_Eh=A8RWR} zFT(X)wnhS=QPf8$83W!^z~34>+y3YuaS+(%&6j@Y8+I4~p4le$gID8d>)hTC-laBw zaJ{&ZyrsCjyo)Nu&;yTKW}CdFugfuz6UcZ>M5wOYw#{-v9!6R$M@Bp_cXGL#(0?`i z;`*)6nts#=^*phB`X#-Pivu^7Cf|mea*Gk*6^?R;rjLVYp=EQuOL9C`@DecC`3RsX>g1RCugU8 z9F&iOsMRAK6(Y%WHewXJ-Em@%Yg%q;fpYCRR*Ds+wF`G#T)3lDda;zXI;7(#$_vHH zwp;hmReE7|HC~&tL%My3b9S}#n-s;jJ&yCRhvNE1MQ(2FY`aN`j1c!$yYeb4OuJYWMF&^1u9Zr7kYZZjGoqaofIu?M zbC}iQ$zUUgHpSd@+ECPK;~B-*AJ?Vo7$mw$M60ee@)cOrdy#z$uk$P?CBBMOUtMv~}LmH^RcKn~(I5 zvB)){or=d;`R;R^ukps`3bVzx*TYeEWYOTgTAV6+qRN^;Jxr) zfiQ^YF}6OoF>}kKETEL0WQvUHR5Wss;2L*w=5- z(tlXbxB|c+&_OcL@mq0QXjQ&hO_!Uu#WIqt&5>5c*6i$uLc)ld6(eSs@Aa6RuML2P zyzatZxNkg-VlXM*XccAW_PXb-Jci*DyYgr%Ryt%-$<)lIx(!#CFYp8b7nEPszAivo ziYdVj*3w4lULMJlqgqqylz>@v-IUv|(!@5EmR3lYlo%n!^9bY*ja1(#`>0UC1Qt59BrN3 zE*G|A1)HUifkJl*efy3>7Vj0td9uyX_}j~l^Wx^q3?%a@jiZ8Sigze{dZnR6nO9%A z>}YH2wr!JcA8=kW|D>{qxji7#iM=oX;N@rekq-|^CoemGo{y0rtsD>!=I#NC&v|pT zMSY~GF+Z5Sw$kZzvfORkdX7^th*8`KzVhB@wuxjwk8o73&7s?Rs^sV*bAJqglUm5V zm-_(Yc>XE3UOX9(db3e&wNbo9r)Ffh4CgkCPK)2=?0#qWJ&Uk%b)$Vv^76X*YbFfE zw6P<`Wxi#Kju?A)Z8R?(O_Gq0@CCD^L^vHavV~oOEY^31PI|-m9#@%iRX<*uAsw_Uqq4>ZQk5-uuoXB zKRmvZ{osA(XzL8_3$DlH53LtB6@+u2zO38S9_LSQoHJc!6;sFUw|BJf-J8W@rtDfW z%4L|+G&yqWfk|sSjK>}OoN)Tj{RSVayxJe<5`Uw-=NZ2V$UJCfk8s-KqxI#%0anI` z^?vI=n%S2w@AMlA1Tev57Q_~S8U_=cd%Q1{HOlikO;K7bDN9c;%aGp0Q*ZL`@KkzP zMn>7m`Sai9-}LSuo)%I>*u0xz;DzDjQmT;;nsQ`B_=Lutt+S}%6 z?DUEF@>TE;`ciHX3&~lqbw(EJmx|tRv;LG16!PUNIHvR zKRfT{rl#NZGwnRMt>Iis)Si@THEYc#a>V+2NNYw zn2}c%>%qMQrEMQ}Y(#ZUXqK_8N=CjUI~LcGx0Q6OoCg(4)}=wEQ<;5W`x(1l>(*9+ zaq=)Df;`r(Q#!!yS%S=mDys3Aw9K&bVCG^=ML317=>TzN zrKcCA+XtKl`&T;s_0n4d%tT(NA?!H_A}tBr;-jH=+R5=U z^2W*IMDkRN0k-IzJkEH^u;@1{mP_MEtE?q_rNZ;6koCkWV_iU*%Sg&*tdr~?Zc-ceHtxZi*{=jD+ z1X zH$xEF1Dw*SH1CQNez+(-BQ`D_;|89utm-8D0Mqr(_eHK#jlI0}t8=a64Ay+vnVLC+ zIW99%nkOo?P*k6Og=#3lW>#OOA}Tw0LHs~fQ9ZZ4@Pc=4f*J(nJV&_*zm{n}H+VsO z*X3p9n`>kT!4KnW{mjW`5{9(K6|*3@M8#8s)&9r}omUBQKHqgZrGU zsI|4{uP2RTzbDf5wJ;^wC1R}(fRX$G=AivZxT&4IW$|ICl8NccW?eYpB?2sqEgQm3NQ$JOWG*0I1f|2b#42J02fHN_m;O^ z8bzeX&yJ|%@lz&^-kZwLVdy@U)A^+@gBQeu+pT2v_k_^Hvb;XUV@_06NK{K|(~Qw= zjz$A7lk=t?@Ucn(Fw8erPkUDCXzOfn@)R9j79h_{skx&pW)3sbW>(9UcgevE;;H(M z&wxRp8C9eqpj^p(T z3d~3jbBh9##d4s?ttRq^hR9f2)m9soLFm-SX!0c`u3fv@+doXcDj63`f1P~QWZKIx z0QjDrrnqdRPECdM{GsoQoW;dXJhLE8dK}eh3)0XjeW>8gTKJk#1-{wF!$!Pz5mD`E z>%7?;*zcia2cK9z_t!EN_ZuqFa(y2TCBNiTZH`8*k3aII&6^MTGADOJ%CsieD{?$M z6^nvRRQFabuA>#A8cwBhQA&K_1)0W}iq~Nf9{q8k&GoHv2@hTn?=K+;i5~FTOTH%L za|GoqLWgK&St4X@zQDUOva#Na7OksX8}gFuHSs*Lf0+xPD z#O*N)Un9bbt3(i@ z@~wWwFtkqd=H%q~76cufGf(XZOt)f*To>f)H~vMK>CNS^8v5lkAj6?U{1XcVbyL%& zbN=}R9-l19TkeCV9M}Gy(cj_FZT=3?@}{Pqr~Lh(o;(Q3-=i#My?h4O50Dx1t#jPc zsm^IjNBCn%833Cvb@-#`_2tTO3=PR_I@=T6{+QmNK%VN4u66TfI@bFY@^D*6xQZQx zNUAQUJTo$asSI2%S6z#04f$HhYrvXtsI)xWdfV%--)7CmP0}~ucDvFG9h){etnKX~ z@1W_OkoKn+AH?^%0ys)jy7yYNQ$i&%sw|q~VRHQN9ZwmKB6dDWW*y z&e2yTCbZj^+y z_6|*KQ%PBcByksfvz*(-Ch$GtE6Jt%z!kaAwmBMq*RLv9&X*jhHkb1rRXBsdbq+=I zdaIDIuFcUHCzm3Tvs3!iryPm!a-+9Km@=v&MIWp@Rl;P8;Zwg`=fO()Gp`gLPiin+ z`reBb8mV0P(vw`UFeq}PQWq8KR~bd%lOT(FQ$qXJLAMYA=#q#i%CNCN+`oznFo9tJt7AL&o z-7&njE~`IYRI%Q##7?J;7x1yhN{-Og+5PJ5Xqj#-Z5Zqqx1ZCu;x3x67SR;1kr%E9 z6-gcMDVfUQy$yE;B#zHzVjHFu#&=wnLS$E;w8vW@e>p1grwtXPdGHCtE0V{fGA3)U zKpd@2_o zCc)9CdeLJ?Q|)~S_j{1sk)?-TDNsHk&+sU<5RmN{Pagro;RjsJPJqC1Fsnr)KW+IH zP@;B0{Dj;!o)SuS;_>O*9KJ=AK0OO~HZp-w4uhiAz(QWT_FC8a^@mYn4KF#Q_c6us zQoB#hCY}4_o^*c0(%Db0-JCp`S8tY<%JrMGr`S9doVF>mJvE$iefv0m?u(QwX!>Tx zb>UFGk`G4*!An2%O@s5q0;vXv_QWq5<~nbbux!kbxvA3-WTI%HgDd%`IWwfx?~?`^1c~~vVE-%MYY!FP|sbH9JDFl ziXXa~3bRphNEQy#Ea!bSSeKM_jon%vAI;?WldT+kC%}8HW%63$#LGpwytr%3c*!Ti z1K`%VLFFd?fhWDm#jj|{7-M3D;H;+`srGXMp_ok8#mtplN$)r>gP~x9WN^|tY zv{n8%`4llT8BVirz?i2u_6ZcrvDleP{_N0RFN~++(Tm#GK5^*XGJ1Y#vn_sTGPxIt z_gt;iP{y~IUJYo#Q_1_33!mb z$GwoLsxYc-6he{CytYWuYPOZ39uKCCQtRg|E77c)oHj~b*wP-YSv8qWiZtYGbV&Ei ztsA;1(vX70-Z*>2e5WgV!-{=7JqsK=P??$C>Ldvgo zP9RI;3f&W8$a1(s2Zf%so-zM#?HH;z&BZ2850oK9vICpiEyU_9x2}$wHTc~VNfwJ) z|1~d>v$C#j+o&A_zb6gH@>~h3mi6Xd98kg*p7aOh-W<4_J?CFPdbP|(9>OQO(6R&+ z6x}M<;8MK8Pn+N1(V~j-_GnJ8(&o6iGvOcrS!#OXJe%1QAL~drRn6kDws*6PC3Ypi z=9%+Eo}b;XT1V@XxyEe%xoTXN(weSQbg9>$p;a_7%iYXd4FS5Nnbm!c%OnttqF&qE zhsghLW}EoAPaUxIAj{>?sQ?6d&$Rwq1}Htra@{}3_+y`3Jn6|RP5`BotjK*%u8SuB zlXTKs7)@}~+~?$drlbW=j?I$;?6Z3&%Wf~!G+dqoW)+S1weKyU1?PXr*?8^)8 z)xr?>IpKBk{R?WdZ9)8kVBvMn@aSIcM)x^4EeNL{IR{NZH z&9nL8v2VRJx+~q8?k{AzR{PWSoXgO)Y%8qiG{?JV86pLPfLkv1Z2V;k7TiIOVAj?1 z1hxC;zH-*hj*@=_wJJ4fi8AEv;&j?5Jw=^pQxl_D_lQEL^v#%=JKotbvq3uNyoTI- z=&0|^YH!zfPI2zo;hfT`Z*OnCWA`!nMFQjpVyoreD!sMmqLr;~bbjWXgx&L{rMR6w z)QOw}tCK@Wfd3I*QfdZ`&M=&q`-q!gZTB|Cx@2 z6k<_&dv(dZ8s&HKih36{zVd}&qQh!J_K@ZpuyTUN3L>HX=~mPG|D8Z==U-XeV?y;3-{ z;B79GXzs#;yf>HCkEPNptc%)- z_Cl8X{Sloi6<-wg=trV1KLVA$!C+tFZP^4 z5lG%(lX@fn#HxfDy?H``N_MG@njJkOoyELme{1|hac$I>%k~K~T3dhLbMeK&i&VJ< z_?<+r_uz4tRi563)c=XPWAMJBr(8!|M_d?3l4#Q=>YysGDbGFqAN81(=SnqlJab#_ z;VdWFcy<`a&RV~Imh?03mtMPdczOBoTXFxY=T@<<_PeDQif0y|qOoOP@&9J8S}rf- zex)c&inpb+F4=$8#eH3?*j+qk87X)EAcI%-FOeS^c=u{oWFyw_y4f>EcK;WAjjYhyg#ZSQY$N>Ub7%9_{|TlA39NWsq+ih z7r*%z)=1Ct&wQLLy^Ll2vybm{touCEv7@{;$G?A1Y9?BFmtQeSZInw5ao?gFmK-XZ zldz`JKC*ODS#f1afg^c#)xHJmaglk&bl1Iw9fi5W3my5*))|F2bu`V9X^Cp94aT9cm>SZnJg$^Ys9tRHQN z`(JFH+-JqigM&PCgG5e9Wd*+L`p#H0p>5FkWq3LZxA7?!1MkJ<-Ha3!U~NFsUlm@ zJ-Pd;Tb_LKmaBG4X^ZEdz^ZrN!N2}^^N_~IAvenxsk>q7AZ(44{;1n~2l*lXv)-?E z_bRqqo(J_0vXU+`Xw0m3v`b1M71Z9%B`)JH$fb8A$o+@uJqy(PnVfZ{Xy%P!Z1}v( zRXc9sb*{?738Q!dL5N}btbcx+Uq*#oTn8@ltQn0W|Hm%6F1_#i-1WI)X&xZ*;P<;% z2~W#B;>AsQMp!i3)g#bDy$I5S+}5Hmw|itfIV%l1en=FJ%Bu$+e;ku`@IJ{qSwkW}?0zt4e)f+Qbrac{K0>XHqJi65TKsur zoAhv7X%4QH-hBPx`R6umI#;pmZ_-lCT(L;Dx8!`>|9($jikrQH-6T_Z4_d2Qr0AK| ztfSc7E35al?OXlI!PR%S-M#wY7hin#8MuFX|NRd>_=#kM-hCb)V(6_D_2kR)B_vyd zzk9)JOiXQbwA^N$8q=JSo0?Q@HKb&SqvNI)Y??R+A$h`x$tx|R#klB%83{4bhDy_t zNu{IZygeREpzJu3d9pe2@PsxuOlYGVK5pG~ORp$75to$w8p^JT>wRJu4wWCF)JD6{ zQ#23SzhAK1rw=bp-lq>QcK@BX;iVp=?w|29zL&gLy{Pjf7~yBm2OTqWayU-gp1XSP zpm{<0RTwA3XQfIXQp#2nd0m;_#!46N4B4@;eb+AjQ0-@*O3z~V7hiaAqJFFtO(ikP zJMQVs)QI&nr}Hy<;Lm@??mv5Y^gr*hE6<H+0oa25cr#}RNRVS8@DWLTegM1EE`o{Kk8rgqekJ(H@Anq z_+r?0`64X|nXqy~$gC9;L$H9*`5*VTEqAYCSz3Be4EtfJms8!ZWDHszXp)U zLEp!2C8tgA20Y@5|KqgcNEOEz5UyHRt0{9uM(AGV4;z z8c}vZQX`gO9F`MjI-NiGg6rP5PZ~1I15nPfdW*xOxL_}|UaS;Ien@ru;6%Qx^Y}AE zqM1kz!J8Ih6Rl>i4e`^`ox7HfT^T>!u+Tat^zh-(dTVaArX_JD!<(16c2}2J#+K&I zF_mN{TT4dKnw7iH3xN!k%rd1^T<*)M^VknbDlPUPH4~i937Q)dKsv$8|=_N{iE&i|jG7!(l^78~$9`Jn7KIx!+66}wehVv$!J}LGGdBb*# zCo$BUXfM;pcJ8}Xa<}D#6P(fJXngV$o_cpgHUeaMH&~{FlmSZd)MlMXjVkc*>G3Pa zF5R_rY5mH?7EN`owVtS9jCJ8YOG))^*Rq>Ol~|KAOH6a}O1bWmbHV;MdyD@kz3~P2 zX#fmYVhES%M={(dlJK_EFP6|loxds8|NpVaK7(NQ1@<*|LnQZ_6Q7WK(W|u$z0Ax; zjh;5W?$n)Ji7#)9O-YGu!{UiIO(JbRPc<*lR)ui~Pbb93CD5y;^^wV2j+jh7DTpfIE^a)#Ynk4 zfm=Ac+8m8vDQ_F#f%d8|dTkxbK`=9c+f)3_epDImuQjE!IMn5%IoY1p*8BP@Ps%x2 z?FmmF=K($PLRU0O2$O8sz> z`yPmcy&d&K+8mADekjT9ANt@VDC;Empp5OU3-jcM^uf@FYo!7|O#ND{eK8Qu)NKsd z550X6JoTNPvHa6+ihahK<2Mt(&InT9Df#5!2)vgY?Uy$JXASL@MaggJ>D$W9C-=s? z*LvS>4LH`(*15|!>&CjdPdf=t$Cp@@?|UevOZ;6ocDTeI^7%cRE&twv&%#ML_Du9? zq1Wm?iviLl-rxCIcvt>gr1HK?*2Q17NAI<~+`BLt!Nhg^IW=&o=13W`$qSv2Ky$X@ zvv{rNUK+)qjD$({W@R|}?S7OaxD2o5@849*Z{YO1m%oZrzLob-1l+IqoxDkrW*zR| z;@q;u$ub>MDZb*^wafQjvbN-WNV%uIqN8#DmM!!YeZf~=ckJ5bpf4ng>75N9qY>Yy z^ODUI+tz7Sk6K38SO;@}0HCJ#&<3RWyoWXe@_}A^L^+RS_g(&7w2AU9+Cb&JOjcGR|DL|R z^4n=~$u{bH-t&#;EwxL^($dO)?PayRIlA{nw#u7p0eMgPXx>vE((Wabsk41yecpESP1jaO zMhvQ6y?wiF(%8D{K@pMF4HJl_$+tm%V!1ZI4@D`jMH4(PMVqzb>#tpnjg5`SW^CB- z?T+CU6~n1V<+#ALYAKw!ec4%-=)2u;5)XU$xeUE)`P*YRT;6q_ls0V=%=squm^PHw& z-s6xm<$e0X%V8+W15$EQbXsE)y*tz5^HNpcp6;xj#SM!y zB*n%X4BqDM?<7?fR8$mHB_-tB%FAu}EzLtShDsM=b7Nz3V$h_XvmRejZd$7t0fa{^kxvVDT=qM|M$?hHCA>Q>viV% zgwl24-`x|CF`@zEdH?z=Ab(F;)s)P<7`^qgiItnamF&-go{QD@MLgV3yI=Oy9dPU$3O z?YxLLIWA%rW?hu^8t)MlM7WbbPi;lE^@8&PX5r4A7o=dkaA7BAaouFM|% z(bU#K$f{19pu11}zv{jOysGNj|F`zJ_uMHrxfuu$ASBFVAR{x#JPODpB2yp<1VVyI zK%r=Zv(&1!JnKNI6}3F4YU)tiXhCdhL2~}zT6>>+PbP-G z{=e`4U-!G`>~qeZ_u6Z(z4qE`A7S70<5x~UbwtN>L`{0-W{zE_KS9k`E4U8&1}L?E zYHsITHGfv~?h1OaqWSyR&!SDu-)FbfSKM!UZfYQv`cv+M>}|LBQY)I5R?v#(TW3+V zsk6CizN(V??VOt1KbJ-j{iPz|OD&g&>RHXV>b%7LhbT9Yn>r$u)codKX@&Ntdb!!6 zO*}RXbxx>sv2(~LO1P34(TVGvNBw&RiusscvH#X7BlDB(58t`9takf`izbK47GE%G zWZC3}q0#fk%owd+c=5g;KecW7x~qqjZKK?^eNOMHS~XcmIk!rMFN9`;tz`3c@=<}-P z_n+sZ9j)$PzOTpg0nSJ{S3AOIGN!Y!09HZkG~k`z(X-9JeDNr)ets2gqNS_XH}7xW zqtAOBL4)aUbc=gV%Lsac2Fo$creA#9%Hej)<>9?^dLdETS4+RQsiCI%(KRYnvAE9H3m{FL0|r*Ii1;RFmecT{~y##TQ>Pd+plUmt1^tb8~S? zNpa7C18GaofdhLMmz1dBs@bzvuUN5q*6dX)R(v*N=D-~Ok~457pED09n|`idW8R>X zC`peeKCUZZCDVXOfwI(X%Z5w|l%-zr(#G_hVQNm<%+4FrdJa4NSefY6@_E&FsT9=< zDI!tIqh#VGz|NU+g0VQWN!b@#}SeFn>n%NHdSbA6O)O<1X zM}gkVGs(X&P)P6Io%hl|$4who{l*REO9JWc{>oqCov z_*ouSXr&jXTm47$4}5gsz|sQ;hSb(xMk{G$^WNsY*T44KYx+!idQZJzq>ZxfAPiw) zLFZ1q_}PQ#y{dgxbLKP@k1ifPcC^TwZ`3DCz7$;>95Ny-^~1tyjz^@&ol|@BPU05F zQ_|Gwi>qQeTUV^8nlneekal{es-!CSkjj_1j)npFh3p6Lo^#H|6?V%;fE`t?CiLka zYS|QVx@xIT1-+NOguBkr_WGbA6;b zoWaLsns`4~N905?T`P&YDRE;>RFe9ay8&&ExB4 zAH3l;%DqLDy;zNcUNG`JbKY=zVLD4^zPRDUmA^P}l_*@~pZ=ZfUEgCBS~;Sd!aY7_ z2RijG&ZAh#h~mOdnLb%nN|zNTtMG|Cs_%G$FU{TRHg5c%jdgV!>GS4SpG~>+(v)Xu zh};{GUXx5;CO4-gUvu=DWSQUdT!?knLS}U)x0Sxy>B|z@YSqS{b z9qX{AqKDuv>t<_R7-J&8Khus8C55~IZOPb?LcDfy_oxXwYBpW9ZQYW}r%T39>X$uv zXpgaz*Danjg>K6%pS6DL*K0nx?An!cr`3?%(sJqvc?O~kHUQ?Dax3jO2*YMqQ>CbYOF6*wEvr2Qh zN2V95;MQ;5xb@dp(vIe9c(q&B#Ercby>8?^Px$QT-b(oYtLO3-JKNQa#MyJj{WRy~ z*;$#Ik*Tr=ZOBhAsc|i@q*XNDlrn6AKDu?pxEV9u!{=Czc*4q{&xNZodraGlk(D~s zgXZkub>8!Yc~Im-gR56iN%QadIAQ9-_sJ6tu57nf)91WrP}YVeza6C@rLal{ZOF?g zC@aq^tZ)-57?M9;N|8MH!g=#*R#0*C?+ZsynoOM~sY%pXAEu{qi`QJ4iLkIWyszJy9wES_Jr;bOYr*5)sYd-WYWr(ZFzPdg`6ANm~0 zW=DccZFq%RPI2K?<%~>Pu4B95^H$NlQQ?U$zIMy@wDfsK+E##Qc*J$T&bD@|o@~A> zv3Scm;0tLdP9wl;H9jMY3dGHuP|m*6(tWER9WZq0fPq7Y{{+~(9h-g=nT;-I|+cir3a zfW0}3bv!A~LYjbM+%h8!?ba3~xFY+@5qp2kD`<0?-t5S@A>PCDB;QeIH7&$39+mw@ zDrOECq=oLGg2DJ%f_zT$LK=-@OmRlIbB+;$)~?9p;S1)r5`!$8dVxpA!DV2(0Sjp& zjv?wTMZe;r2~=psYyGDaFIqf#(&F^1)-2EN-8;KS@7~pF{@8Kz=Z_nZ`v9Qrn8VH!wXyZY+SuI74T18}U{7}oqnaiN?q zNfp07{lzOcb$_C)y1JT<3|PbBJf=0OvwDGBsIYj1Y?bm1({>8wcIwwWYRsfDtMga) z{_6bo-@I`4T{K}?L&3a(g%_+HIeY$&HIwTnUQ@$yb#_jup2kL>%WoKEP@yLMS*+8E zDi^NZy?Nyg*=ti4j-57l?zFDM?rnaGeoyzOZCJ2j+oHLn3Pz1988LR+ud3GQc8>xo zPi);nACQ?_oL*@0>aoh3U*G)w<2#POSO4+GtFGEeN1BH|{4nQ*b@(|iJnwNeKeS#d zcOW((7ofhIZn~vPGO}p=q*=2jz15BOHvcAx9^3lr<&urD8^+KTReLlppHO{-XX9~L zdWDE%(+l-k4?>K(ZQHf$vt2{}`i&nH-8g^#jq~aCZ&dN|4hzT8^bebFm_B~o^l3YE znba2SN)=3 z*wCV)p~DKAeWTWo8nqrubYt_>3r06KBVhF&p{+v|FrO_+sJz1Wul+%)l()HbK9`n` zE}PK&s}H}isp=cw$lEb}`VQW*fUeF7+DUhxBh8JrrMUnO(JrRB=^mO(yW&Jw=1Vkz z?q-@>cuq984awCyNE2w6mr|Vzz5Q#u^cJ9nv`c0|9nssw*{wS55wzFo)cNV_yGN_TtUS?Mh$w@YwE&w?^d-M65(w961&3z^OdnoM{9+vx3?W%{CHKojY1 zT}C<&dP}i(2(Cg`>Pb6Ydh4#VcgPb^&z1;E@Y4_+GX2Ht@trU}+^ZwsFjuKriMxO#{dTFXT{t0P=hWvy}bX&PZI zKR;Z3u033RnkHJy&zGjEH#)@CLzHRSpao5}mM3T`Jx!CXN|&bouW?n~b1t}gh$dQ< z=TBGFTkYa%q2X_`W#vM&IoVQ&IpetVh{8Z-=Rm*y7EdesW@L6wXJIxy%_l7M?vXvB z&(sCqy{ucO9wT}!9Ubg-tGCLRNS;b~g8|R@@wvV^A6(>_V z^Qrw+Ztbdx%f8ZmZQsiLag%elUOMsSqS9{D`WKGt)unmY;KID&-&;Aj@aZKRLzgVI z7tb737I`_f`|#<*maMavUXu3Jk+WjYM?3WyFphF_26cMOKeTytbatuHn5(zwa#*Hld3l(jlKre96g!I$XJb6J=5 zAAhi9=7PAA$Awcy49dGhv^?%B)aiD0a#TO{2cbkA*uYW!3a2FX{`x&DvaVcOI3;Q6 z*Y*s^x^k&noZ3^{z?s>3V`@)r17{|S^?81w`gN!~A~ZFjJ2H9eE3b&|$j7U$x#qR4 z9jlIL8xFS?mR+)R->szWN~7bHk(b1tX#=y09iDiSIz`Rg0(amc+cZY z#;p**Uya*B77a9RA5y5yxcwMQpBlG~6vexH7=lPv+l)JeWVO$@BS=xaO2m+a6w7bi zG1yjb<4#4;8Vd{L3jx?Hvt)L2J^#qOS4hU2#%-YpCyd*NY?@-+eq2HI#%&{84L0r| zx+^|^gX0XLySmP}Bgj@iGwvj0s}GDjh9s+#ai=0?4Z>v9U^BL%7L{0s^{7VDHsoLdN>PRyY(gb!k%L93L^U>|23wJb985$Ns*vM}r%s;AQHOHWVk^o~ zhCE<$&E{>jmFw2m=ln3IV0eB>&YEpG3rfpsHdWTKpv`4i8Uxd z9*RZxrU)Z2f-R#iDX*=otf|h?g_*xFXZUdKTwhbawx)V3f5;m-a?GaEjpa4<6?s*a zYYOs;^Gb?Fj3{nd|L0Q7GocJxHaRy|$N1I8^X2l(LwyS*WQ43h4RHD8m*>@MRI045 z;1}oV-`k+3`Op?65(uF82m#JT5HmxqL1{f31q(j-VIzPbLI@**Bt(&n6vU8j0T_ru7>pqpiaZRH-dcb{6rmU;7=e)( zh0z#;u^5N(n1Bl~5tA?(Q!o|NFdZ{66SFWIb8sQ%Vjkw>A}qi{EW%_Qn{LOGtti})Q5;kP)9k5Pdmcp1OPPq7Zia0_0?t9T9T@mG9;>#+fq z*oaN2LN)G14KBlG)S?bsP>-#+9Dl(T*p6-Z3a-QsJc0Z0Ra}Lg_!=7VDGrcDKJt@I z0Se+YnkhtKI0TAN5=Dt9nNlc5sgy?PltG>F1^!8y)S0?aSIVMp)SY@zHuc0w{DE>P zmwHie>O+00AN5BA{zL<4APu6yG=zpy9u1@6lurdzi2e9aDxzX4p%FBaM$u>*gH!kt z@8bg+OXFxfO`r>CB2A*nG=-+pG@4E`XeP~~*))eP#4l(r&7=8r5kAC6*hdR!AuXcC zIEwf1Cf>r^co+YJKhhGqn3mEdw2UsL<+OrU(kfa_rL>0DQW=#~1@5ACw4N$y18t-# z+CMO<$*L=o@q`eUq-E>*)si z7TriU(arR2+C{g}Zn~AeL;pdy(Rb-~x`XbdyJ!#HP503E=w7;y_R{z1e)<9JqX+0g z`XN0;Kca`}$Mh5WDeb5Kq(|scdW?QXkJEqA6ZCUBK);|T>6i2rJx$NhujpC&H65h? zrswE4^gO*lFVahN2#?@VJdXduK|F?^;lFV;p2auuBRq$v@HC#J-_l|F9d4wT>G$*s z9idn0HF}-?Ku76+=nZ<4-lDhZ9o$ZT#GSYUf5Q*38+-5ozK!qTKk#!rgJ03R^d2?P zpXh!1fIg&;=+E>q{e}KYjr0k9N`Iqcbeuk;6ZAR#oto$$^acHsPSPp*l1@`IISPuD zQkL>5zp_<81yx9eRYWDJs7h8TDyC9Zno3t0s*}o8omCgrRb{Des=Ml;vQw9==+<&+{?hH&d36$%*Jypk1F1PUXxX19ixHD<`+L}$9N_94p)_ER$ zGuD*W`qr;0tqsgHsaKl&Op{Kfz9-H01WVfJd9de{uH8~!Zdb`IX^!VpQkCbyo}+VG zrEha}sA?T*uE%3iwdcW}tG!pt&6--h&ML277no;qS)=dKdF!`SuPd$HvZ<73 z@BYQLmDTI~TlgAX?9Ekli}xw8*wpqGeUDtcwz78ZmQ58^ZH`b8%FB9nfRNx#UXUu4oRGU*qY^ovaT zMJD|slYWs&zsRItWYRA(=@*-Hi%q)4Cf#C_Zm~(X*rZ!*(k(XW7Mpa7O}fP<-C~n& zu}QDkq&LcxcT~Q8v2;KCa(%m4_w38%7P`2svb?suuCgw4x$Cko(H^(S%{O&RZ4IMT z!SG2^w1WKnl2CbFedVUo`tq_+O?7#B<+}Ct>yzr&*OnW1U8JINtLsjxE8kjPtv%I+ zN^5ItF0U%Ds1Jy1%jU4$WzMKSmepKdtzBzs>ep-6md$0=l8O9LQa=UxqojTc@<&Pi z6y%Q@6)fMhxqe$+d3~rduc~Hk)uIKnt%_9@{)$xOfcIq^=i_;K)oQC+*X^2y&As!_S zap}6>vbj#zJv*fCw`{I+>we4TI#c)JlDcPqQupl7)IB>*-Lpqs_ggmC1(+MMO#Ag5=d#MC$6xYpW`&*Ks>+E9b8P;dR%_=68_eK#3GC z36K-{SO!Qm2t%)2lLM;A?8l!KFt7R=6}?(z7j!@RXlG0-N();@w~ z^$|L&kMLQ2M9%6X>8w85k*t)KR@LL$wQDzR#?56_mFw^w?nAhSDiKAD8Qsa(z~=&&&0&Twj&z8{9+iZcS}jH9p*2y=4;`>o}Fqm{#EnCiQ4$3@2ZG z^_ESuG}XG8OTBj#$y`hV<}c+JvQSC?8J50h1+p29>jh;foJd{ zUcnn^z+dngPLl3bgjaRibdRL2)GqaiE|YrI+&?sT-Zuu2;=SSkS)4ZCedZoC_at*) zX6|dueS^7c$v#=z&GS_{W$Rk&LFtEN9W-BF*LR<--}~m6JMZ)Y$akl?KWy%Ng5d@f zsJ`@w>cjJG>Z#>Ds=vq#{z&hhK_+mF{zk`DKQ(~fYj4JnwFuColueJJ40^9w0BKmu zPei0dLX}NRXcd)GnUT?47MIU#rz`1eMjG=?x?bcaZ?-E%Xdy8G;T>e60OK(WORxsj z*p6$l8~5NL?8oCcfT!>*p2Lecj92hF-hiJzQ&}peZ2A&@I-$C$R287p@YCn2yGm0* zYKEWwu6n3+6(R?IYEs!MLxmOKr+=uPs*~7|@zWP7M`fxcrQoN3s$A7sMU@3Vom9P4 z7nQ7h@Y5;PTXj__$`6Hi={2Uj^p4;xVE&W>3B4lU|*S7+xnCdFEO!UYZeXw6!@m6fz?o17Q#H&{ekSZzWLty|? z+m(*D>{~2+V;q3$qXr?Y!>PXQ%I2h>tNz??!FH+w9mLPQG@E;!DP<4}Hj?QmEX>4( z%roFZ$>&TEN`y)?7Vt%@)hjBmADFDl~snT@pV}fxfb8Vb+{fk z;9Iy6H{oV{8@q4|ZWX!mZTK#3#~t_ueu<~?EBqS&jo;t}yoBH4clbSy;5GaK|ARO2 zHvWkB@F#qLkMOaqf&2}}aRPtGKk!eS!f7}}WRaf&6ru=4DTPugojS>yMHY3Zo|Mb0 z4QF3ta90@IwS}{k#P44KK6S%sa!xvL%e~P#=^S>BIqv~ZgN}~R@o-K#CpjPRI}QBa*>M}S@LMfVbjNZ8QJ2wO*cBzGpr`{9C#}@b8g&v>Il54$q6nl$i`O}oWor9_ELAj z8;=I3!8z!Db-_6hckyX4T%V?$G_-tb3ntVtX_pouTY|Kr=R3Q-&k1Nz<~V4-?T0us zxUF%vuxI;zCUDb8fPT~VeaGM&bq+d5*~W;zGlsKo=?e|cLFce@)HxvaeAsDnUJ;iL zp=+0WM1$bPVYxDmV=Uo*f7EGYtaXm?zDcH6+>bR#pXYRh4!LhRUEM+wn)BktdI7F6 z=ZJIMIUufsLSMz4spQ%X&s4S%*^>J`@wcW=G94DIYmhiza1J;JoJQve(^+J+#qai8 z$*pIhNuDw=NW4NZ0Ov#JC{tRlC#Ol*wl0eX@vG~QDNuvSCC{KuOvcs7JxQnJ9Fb5T za@#mZxvcX0&^he9;Jod8ByFc@)j?g?rd>^c(=^Qm$6;zH)V@(@EssBqx;^85xP%$b z+s@lgqq8U8etJA=0bDOK3Yb#rR(B3K*ExrIYyZX6=qcobQf7TB8*e zOMr9I`B;aSoN62p(BY(2qb8q6<=ruNT$Or>w*rICxo6xmBen+ZUzgSO>oiL0(jJ0c z?TsId``p6ZYvUjochK1{?R41L?;Lera2lk~?a{pm+_KE`Fc-r;|A4{bqt0$*a1Rz- zVLHJ0&!G+q*RjXh?;LRUIlDPA$@M{Jzu*RQM9fR^Qxnq_=0E`FY3Vy&2y@?(@VfuB z9cj338<{?E-k6K<25$|VFV2Bn8xo_GJabH(FHdc|>6tuu>g~+nwqQ$OeoSMphK}-T z((%v`-B%MJc@;cLfTne42WbgUZ_+gj!Z*)GS=Ww1H zoIOs1P)bRid!EKf@xgt8OVr@(5x-nkrohar?sG>$4bpSVC(SQv=JAtV}!Hilv-Qjo{;0t~}21Vum5W=mrTp%8@# z%d9YjViY5S5|kiGv{a*_)0!gMi!qGB7^Gq>#v%>lFb?VX8omY#SL13Zd>z-q!Z&dP zYYCkhC6TvlJP723JSjlpUCjv_-`ou2ERcF zFW?1)@Dg5vh2P@0u<$#u^^@P@_popTN8rb6cnyC10e^rWZ{khZcpGoS#vk!V*mw`` zA%H*OPYB`ze1IT6!bb?=V|O`H8MxCiM(x?k{K{{no7SgFZbw@h&q@GBkT*^h1#?TmqXdI1$MHkQoP&APyB8jyW zVbc_vf)tuTGZ3IzGz&IeNEd==KFxnb8d8)yS;x{K~YjP9np5u@+X_YkA|=su*; zZ|FA&(ev~?Y+K3wdw5flma1d#yqd%s*Q z%)v;hdB&X4=zUZTr;p3Q)Hcw{q&U9>?|P}k9wOr z<@#{{TrcTj>8=N|&_k|iBF)c2SHVQ^+OV!^MELV1Q!Z;Mc zmfD$vap;SlQcji|E*3rXg>ih##9|O``F~7Wdw#OojwH1#r%mXA&k+6Z3t8`5>wCA6 z$*va7?h2#P?Mh);L;5Xx8_K?#Wu)pms!^XXBD@Pr{CF;5=49?%rF{^Nh35>KKV(i) zxJk{2vxfN(N0cVr(LG*`&baSC4Wa!Ford7~EZ;v8*j5dMgH zIS**gDZxo4Kzz%*H34pJTgL&&*dsGO4>x5}GBcO~P6PYU^&};CzkBMjBjDEQ=vzy0 z>)U;6%3)g8ed~hx+JY->AH2ELwZ@!r+nSTOc=a@ZfKWT$^U@oVfp-?iS!xd7Kz;@>iS;ytg? zxqm+MTF$*jNY;*6@5=r2I-QM(v|19<%wLDqVa^Y9jk{}^3>sVb4eQ#l=1fPR!?L~& z`(zz04PJ>o*F0m6Tl4JJrPi3lSB4;B@%I|nH1Jo~kH$m}&7fo9`f&eTFaIuR9}|HT zktFj~|G0))`b}V%E(alIc;wz%zXj{D0h=gWcK`g89;Kf_1*C=5oz_Z3*}|B!zl zmB`UVy44}&PJl~+&kaOEE7EF_in{c+h4if@I1M~Y*VNe^%VZ=qtA#Cnw+7D$*FuKX z5)#zbI~tvNgyvOzkl7?C)UuTQrUj+lMAp3D8(aIJr7aqmi!iP;taxcTn32#Nl#;QG zCBtbnt0tVE4&}lIJd(Utppawet=19X*%S9S{w2#e#{IxX3^7Pdc)?f{M*oZ0wuo;^XKt1ZAuoYVoz;1TeYbyRpv()&@p5JIMzEp`%jrf6jFzSPbLnSU55=puCyk(uhb0@Kfy;Es5F z*Lqz#=kAsF#kwP*9vd>uk9Bt3oVxSd#68pebdKHkJkq%H+Eir9NX!xh{rAZ@#A8ti z=?Eds+}Z8^y?z)t4;}sW_s&T7{Jr75?_Ju?_avmqpQ&&Ly0rL5h03zVl6TDJH9sBh ze1YpU9Z6EleyMdH5%n9svmPn`*saUsKDpTC6OB^9Homl9Hw4!_V~*yeAZ~tgv59et zA%sZ$z5c4lW&X;3!qT2R_Ht;(BVDgtAMRi5Oa7aHdr5o1^VdwzTvl^xTszu-SaQrb zrt`?Vx%H28&1V5=EvK+YLs{?e9*;>_iBhZ)n!%PCc%Soj?8YN)_S5oSTHZzu61p?`nZbX#VJC!H_isMnFt z9dkMFt!wt&Lrbnb^KjSAr7#(5BTG0lx0wjVtGbCNqv;X<&gGT7v;KsxNxd$_x?}C~ zv(6V1hF1{dEpm2X&dTV~9hcTUX4U~&dqZn1FxT~#$bU@S@w|O1y@`7i%brBH!3)l( z`YDkg(+}DO=|@~6*$C^9-Z~bDYH3OwJS*Y%@voSzWxUsDanUJpJ> zNl&`?qvs-K-MZE~g8JVjeK?CBrzwsTH7ayW|9#2SPG9-dbBLdjn| z#JPaesMq5)xVl5maks4);%_y^9e1DGLd!31El3<@6p-4~`iV?!_vzef4HubtxNFdE zn`n8WU)PuMt=DklJy}Yv^X8$N#;?p)+?uxGg&QY?inc4CroDK13{mV+$? zuD}Y!a3}7B4|m~S*tie(LE-z@2Zaal5N!MiKSBr(<6#8xWBeyVcodH!gvan-u<-<* zKr()gpCg0=IDlk42|kbODLe%m&)^x@cplG#a0rK>a2SW7@G@S8!YgTf{0R> z!bqYdN`g(vlnk3<6oXA^lm?qJCPFoVqaM@)G0LGFM5q__LK1DH zjj*YTst}^hv>A%`48f)?v;}_JN>{+9ZL|#`+D_YH(^u##2+>t^6_V+z^i_mtC+$QE z+j@ab*V47H+13j}bOYT0o4!Tgf}$JgMg-~G^le0F7wv{k|3UwOAl*i{!B5|%?;@FQ zr`uuE9@>Lsx`*yTGTlq}BANEmUL?~IdJQ(cPOrnFKhPVn=}+`0MCg5bA2!=qflYs= zKf}*~}6mpS-Au{VIL1&CYF@|Cc^3Wfn(NA;;a^)Ar zAhxL-=gl;a)+62<`I-N`V(fxf#+8n~2qVi#0eXr%3n647OY{}O7$N@{x?#AiS!JMi zTnf#`)3rq?-V0L%V6fzBut+iaYnH6kLEIX;dwz+0w*=O^(7)Vx$#@pR@o9NQ+bido ze>%tR_gsXHF|^_6jV$y=cZB2r0SL$cynCd*e@j0MS!eh&jA-$189wnX8?pG`yP^nL zA?Hb|>z_9^8$4@IBm%`>+?^$Nl&L_Td3Mh#%r1{0I-@$M^|;%GS8>s920* z+fh&8=Qw~T@f4oHvp9(7@H`ITFkZ$hconbXDBi$Zcn9yI0q^5O{8?;?9m8j0)9eeJ z#FuC$kRl)16r?aEQ8L9SjWQ^cx>7glK{?b*>}_q1@8a}Y+0r()*uvJe9@|<8%UZ5g ztvz%P-AjAh*s)^URN68X+ok%1jzjrZ@~od8qfZg$9w3}M>m{3cS^HYH4B|s`F{}-J zR{5#$QBBSZ23b6uX9Ap~qHW6iNJRQAI?6oX6P_vIuO+nM>RSM7v&svTqUMoY?Ow^Z z=$A7{I(jb2GZT-7F^AH;p>ZWR!n4kfoJOMq84u&~`kI&1U?k$Ay(wCRte@RpnUzQs zS*FPHq@c*Q0wNPrA}!(_uU%nFFZausVBrc}0Us20iw+T=Akhyo(Y%X^&YdM1b}`Wk ziiuWTNP3)4^y&PfPiKohT|o5dBElm^g-1-sG|WI$xWiQ84x?fpFdY}-LZpe6z;rCY z0z`!)j0!K9EWBWbhyM!-{})CrYLSkwU?)hl_LOMt#Y9stNp$pLqN5iR?Yw~Si|M!v z`w$f#FWo-!&rfHC1LqoN5I6aF$P z+J7P8DU(G9FeIF1vS9m`6BTYEbbkP>{i?*O&v<3a5Eyz1Y_aZ1dgE6u8kt)_c(#6_GD!oN-fkcZi zCR}N-9gd|Lr`?TNY1+;M^@?~`!sk*qvpgEF7WhHCB2l- ztt{Y^?@0OrTIa{@_Se~9>d3u87 z=?Rw6edV5D84XzO36{}=<(^wMZ0ZaOT)`rz{EKB-;l0INbA5hW< zEWvCgm~9DWE5U3_Fk1;`TY^K%=$a;QMHwAY#t%#I!xH?k1V1dn4@+>u5}dH4b(N&)HAF!k;-4Q9uh-fhM*TD`-Ak=<7!gKTu=p(Yj9p7Oh6s+-qy0a+zK>g;h|a1J}iWq+04EhpeKIQ34wl%R=g z!Z|3rW<>WNVW$BZBBweodvCY~_DCN0IBz5D{HR5(vIgBA{x0R+qw^}eYmT#oi}!sw z`(^jjk7Ngr@HVm=ma&gRedN3?lEFC4d)$4oE?$_DXqlG2 zCUC~Xg}6M-`PAP32BfCAPFSmgcYPgkQx+W7{37q%<{j9~x9;XX$2G3GCt3MF!Z;#5 z@n?c}FF1!q7ow%KTx&TbxIa@D&MAXgr?~IPehlt4qIck~jS1(-eTpUDW?za6?hdi@ z20n9zM@gF|&;|U! zPUY~^I$8%m-9dN2M{lxy2zrO!1<`x-o>=T)UHE*_OYekYs0@>#-9tEQ}4e$7%O4jHa#EE7{VbFxWXEX{6<@v(!g2;$$V;9#ITigZKW(`a2ux4Bl3Z$Hj zU+jxZ&TjstV+31868quWYWPf=BbGcCi0yB-A5~84=nl4}WUO*1Y7*JN09t|ouQ1Da zd&Zf#1~VdSodI48=e@lmAJ9CKn|f_MzY;PBU$SrYyD$| zESgGF5f&P*gn9>L7gRbep(O|l4Oc?LL$rq0z!vIFw4T-@RdzTQJh*2%o zB8|4vRz&Gax)MH-)cfgbx*C>9yB#(>Mt@@x5DBCezgah`)ltDgXZSM#dxOEXB`>MTbmVr{p779 z@xz*u9_K(rM7qNNxR zEk(aaOVKY{ineGe+M=asiC%UM z(ubnbhy2oq0@8=lqz{Fq4+W(U#iS3VN*~IkZ_qaok)9Nio)naxlqx-`lk_CbLv^AC zYCwkcr!?tLDRhjEAp*icIlrTQ%`HBKr7Etqbsjofft^gDt(Df}2=Puo>5XE<IGc z-(p;E5*s<};<>7x_qn^TnclW5jXg6MsfF%;+Tu)tI&&{GyQLZDo&C-};n6$nMePFf zUOa1IJzb7PcE6yjP!3sl)9EC_ip>L_1-0mDZNbdVbbg;V7M&VcHf=Pdxv#Lsa#KPd zLFz4T6GGQz+n6;tP0WWl4U%^~p6T7x9@{DmUb-VTrnGKTe6(o~gv!V+Y?+a8z3`u9 z=6shqqiJQ26$L$8a^sWScbE#t!{FAU&ZV1INkzi4Mt3~McwI3E_7SR^B--MAM2gs5^!&Pt)PJZ*{h531jD8~Z&l9PCf06q0 z=|A0N4`(jYWNkTHc$1LG6^964s`uUdM6SrZV-bA9<@!b9@5=gFGrh0uckV1w$CyYR zVTl!?|NE7L$&&c{&${!OMW=v$5F&SCXM3Na39gqx>XATj`eoW+J!<4U*x4jM7Hh|d8toi>weE@ zspSQh$Wdc5PWBLKYE1gTVCe&yGFtW)`D#q$t1;;n=`wP55?O0ZWbuP!6b(ynNv7-Q zIz$au%6cL(k;KMCI-e_}Yi}7{JBeK07P-7Fa(Uax<$13|lI(TpDO^M!;Uanp7tu#{ zIrNczf2qPnq|xK_xRK-ggri6kjv`GsiZqe^4iP!NPkL-Gk>=-$95^Pucd%%hWJn(# zNR9M2WXPz_ymBUL;}%qF#ojKTee_MbNlrPslN#s)`j{H^`9DxG$xHw(yft;U|^wle&k* zgr5uwKWPa+nJ)aKPx?tndPtJ=jj;5GH0cik!Twai`-ot9Sg<@GJY=$mhfEfnOY(4! zsbZ1UyN<*wK%9SVgP3`@0Zt>rj-RgGlOL77)tWMk^^4hAUYs1rCl*w2SVc{cLB`X@V`5qB=Rpk?DMdF3u@rIgO|g%bbrQ0}-S< zO(J{EbehoFIgTz)6S_Lb#a}n)6uLX7u-0iph10|`1?MQ+7qt0P%x^(9Y6Bp;KNmAwfc6S=$zQSxX%jEr(#L0QfavH=J zr|8C)gn-k8bg?n#M<*%CL3D8%(A7DLZcZa6BaF391InC6demWUKenL7J~N%;Chk+{ z$~s@BtU*)G26T2B(Zy**SEo_FmKh&h!^|VZVzN! z4M@M^JwLopnXS+B?rz@gX=DwwOY;3XZIzupyywBIWfuoMgKZ7%%L%-B_kwF>$qU{U z85e}!@w&`DS?Af$vkX`J&rqHHZhmA2A{HBYzHK!7*l9ACTW1?Ti zLBEWHei;Y(3|gj^3`&CbgQip4VO@mBuYh189=$kYu?8j|eR! zH7=O3MJRgfR&@3`Y->xmMF$|`VZ9zZU2w-9_qjF5_XEyBXM@PO;(3#ClI`A!PLdAA zeias>iKfGJ9ZMppfj& z=N;B8vxy331w6BdfSd%XcbrCLHei|A0CV?#!L_LL+^}F=RQU9;@aZJj7ZtpV3O^nd zjEj1>FrRQ?0l_$*aA5)I`w_vofbe2U@GdI67zy@81^c3ceNh>cjeU95pl*gzjYz@( z?8Srl2_C}%JcH+O2(REM-og9$3yz@)Uy`CAB~u1vQ4aN^AyhykX*^A#Su~%P&~jQs z>#3URX*=ztYw1SXO}EoMbU!^r`{{9dlAfjK=`g)YZ_vB+AvMxx^aV95p9-s(%2eG| zFEv2rsUkI6U7)6^IckAgs#dBpwLxuGTh$H_J;d!qUDcDa_QmcL^$QU3>KRe4`jz`0 zI}?7in|Nh~Xej%aRwo+FZpG4jq8SPQCQeUUw1B_1b8Q>v&723iUE;h&+`JQ#DA^Og zq-*j}M4!9)!I6ZU`qDq#_teAl-s|>z-VdgKf{0g@i28fp`x0(7G2!;cZ_@po!{Q^3 zN9PS&JpR3DdE(S{W&C^dKUDIQ?wkTq7mlZ;Thd}6>MPd)lI{Q+M-$A6t9;VxY?@2+ zjg_5C%-N|MsXDH)xs7(vRdg+Vi*BNC(=Bq&DW7s0*Sut0my?8ehc3zf?OtVMOLhXd7Ql@Fc7vSzxD?K6xz3U6MV>eF#J$h+zE<45F4w($O?oEs4ph>MNWw2wllsz9R?teeGOR2s$LePdu?nn_)_7}*HOrcB zEwPqcYpnHFwN-Czw{}|BS~ps|t=p}8toyBpto_#G)|1w=*7Me3>s9Lw>s{+ZtI_(* z`oe1V`Fvqt%$Mow?(5|n;LGzB`9}LL@J;j0@h$Kz^{w=k`8N1A`?mUa_^$R{=eybW z9p9b4dwu(S5BnbRJ>h%GchL8u?`7ZXzPEf0zCZgu^?mL;>4)F;C;8L-UHsYpKK?=e z;rnZ@_%V7J7_1{8FrSPWB0R%*ah}Td%Qixo@LLsm)OhgHTHVD z+OD^^+dJ)R?Hldg_U-mP_Wkxl_I~?u`$_v*`+57Y{i^+j{jU9?-DrPie_=NVe1UKv z7RU^A5A+HQ2;>Ed0;2;L1f~V%1QrCA237{j0viIG16u<-0#^sF3)~#|PT_@N(ewz*~Waz@G!320jm*3?gU;lY(i%F2U?zpWvY2@L)-BY;aO= zMsRL$QE*vsb+95>6|4d?xr@@KErT;L+ea z!S{oI2_6eJ1-}fbP%xAn$_QnJazgz=LqY|ik)iRSDWO@R`JpAD<)Jm9^`YueeQ0}V zXXx6{jiKG4+e7z+?hic_+8=s6^knGS(DR|gp;tq1gx(E(7-|fC7WyL89QK97;aE5` z+&$bYJRqDGE((thUl5)ao)caWUK(B*E(>o6Zw_w_?+9NVzAk)o_&eb{!}o^wg&z(- z5`H55RQO={#qi7F*TZjx8^V7Me;WQgd@_QF9Z8C$MY=??BYh%+BEuskk+G3Ukr|P> zkwuYZk=2okNL8dZaz*5-$Tg80BD*5DMfODYMjnj(B=T6~K;)UobCE+WX|R`e8Va#U zsIQkE-z_xb#@6&+(_<5gcXbnP)|6ZPU+AI1noduZ_d~>wXAEhFW_!j574XE9?{Rx+ zywLS_=&_fs8yYG36k3Q{aerO%P-{YddbA`90N2U3JjDro7VD=i$CBfmhykKPR^rA3S6G zzvey*{&;bz1Gje!Z|m+5#~56EJ5RS4_s+#_;`iXBc6;&A_>uZN-}fzW(!(E}?|YL6 zp+&~6anFO#=DoDVzwLb+T4(6SdA`?qYtg?v{9TLpUfx;!w4kdVdgZ0DEohgA_MX#w zwp&TqE41`Vakrt{UR?F|_w#*k+Q>^2gm>=fy?2c8(%$oa?-^gbbo;#Dd*>5gn%}{D zQ!W|5y#4Xt`@Y4P=pAdk^w8VKz3)BarXG(>-p=`bhjnMge*jHP_hA44 literal 0 HcmV?d00001 diff --git a/frontend/src/resources/img/access_denied.png b/frontend/src/resources/img/access_denied.png new file mode 100644 index 0000000000000000000000000000000000000000..463c9ca0ced88d050bcc37e41b17cdc61f628c81 GIT binary patch literal 855 zcmV-d1E~CoP)Q72H4xxOQw#R$Y^WDQkj!L<(!YT?2g>%v z7Eba|wh{x0fQf+;fFoUD12O1fLypZqp!8BwG;;v)4y3@0VIe{DY$Uc7EWqxO=lEEI1(9X1;~j6Ab`+Q7!#B(2jU0lDGD7UbK;<;&j;c^P_`Tpe+S|{*fb-Dwm6iQ zL@I%Vp`q-ID~0`s;!oJp5GiE<{nGZ}(EJ-q`G+eUTwp1TSOAOP9w>hszS0j{L5m!H z!K7+70OIq+6|I1IOJ0Xp~$#JtGKniS2*QOZVcBAEdXK{9L>1mX`c zo6nM<@h40p%w`aMmx$`-I}mdr3jhQduJVZsi2H!}JP>aJVkIC}0pd?c$@K{kOF-4j z1F;qma}p}|a21{~T!EG+b^@^_5dT6Fdk@4qKztlcZ5S~YgTh)Ci01?Gejsi_%h|}q z;D0P)pvsCBO`MIGNCRnH0K`sEz5_HqUNO)ZFu@ws=nZUoSUezL)M5}&hW49~0jQPW zil!cvdOd(xh{&S)0W>E(0b(~&nw%We*@w&a{4orf<{~oY+8bAK-`9& zkN?rZ;v#4(0>$D*G`4gu5bwm*PqzW$4>X9^GF%M-MzjW-2oNVi^PU>C1NEQCEc6%J hsXPkJGMDjb000Rxdz;Z7^2h)H002ovPDHLkV1nKXQuzP? literal 0 HcmV?d00001 diff --git a/frontend/src/resources/img/admin.png b/frontend/src/resources/img/admin.png new file mode 100644 index 0000000000000000000000000000000000000000..875b0957dc3845fa9a995b45084500ab80907604 GIT binary patch literal 811 zcmV+`1JwM9P)9D_JApHRcFg&TuL7}4}Qhv$!*XLev7dypvvYzSDd_@ zk~Y;C7y&O*$;mjl=Zb-4;C=!-{{Y%md%7%`0N)bWJ*8=09gH+5VF!3@Oq+Rm23~<# z&_$TV8HbX?m8Z24s6k^YXw7&wO>HSmIYbPS(7{m^@g*f#ASyQovH&BUIJHVUs|N2Zdd{*fvROq7F7TuI1STyDZwTYPn)&NuzQ>}cz_!Td z9lH6UXBr)1)`PR$fM71sm4vkhJx9{7yB$w9Ia;4nq`(5BeqsD>#A-Y1p4Hs#~ pszVfoejOJ%z$%qsEnEHyFaSi1)ojjfx*Y%j002ovPDHLkV1kh_ZzBKz literal 0 HcmV?d00001 diff --git a/frontend/src/resources/img/bg_image.png b/frontend/src/resources/img/bg_image.png new file mode 100644 index 0000000000000000000000000000000000000000..0c133ba44997106da288f5e37d8fcd37b7d80497 GIT binary patch literal 1728793 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�q450b|%cXkC94ZYv@K-nCD`q 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